Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Grafana / Influxdb: Sum of value recorded by different clients

I'm recording series such as memory_used with a couple of clients using the influxdb-java client into an InfluxDB database. The data look like this:

1449433668 19292838 client=clientA
1449433999 24448880 client=clientB

I can easily graph the memory usage grouped by tag using grafana, however I couldn't find a way to sum up the total memory consumption by all clients. When using avg(memory_used) or sum(memory_used) the values are way to large and fluctuate. I think this is because values for the same client may be summed up multiple times depending on the reported interval (which is not exactly the same).

How can I sum up the total memory consumption in this case? Should I code my clients to eg. always report values every 5 seconds and truncate the milliseconds?

like image 765
schneida Avatar asked Oct 31 '22 14:10

schneida


1 Answers

You need to wrap the query with a sum() and group by client. for example:

SELECT SUM("memory_used") FROM ( 
  SELECT mean("memory") AS "memory_used" 
  FROM "clients"."autogen"."memory" 
  WHERE time > now() - 1h 
  AND (“client"='clientA' OR "client"='clientA') 
  GROUP BY time(:interval:), "client" FILL(null) 
) GROUP BY time(:interval:)
like image 68
oori Avatar answered Nov 09 '22 06:11

oori