grafana / timestream-datasource

Amazon Timestream in Grafana
https://grafana.com/grafana/plugins/grafana-timestream-datasource
Apache License 2.0
24 stars 19 forks source link

Timestream: More than one query causes flickering as each query result is rendered as they complete #108

Closed farzadpanahi closed 2 years ago

farzadpanahi commented 3 years ago

Peek 2021-10-13 16-09

What happened: If I have more than one query set up in a panel (say time series), when I hit refresh, the graph jumps/flickers before plotting finishes. Graph works fine if I disable any of the two queries.

What you expected to happen: When I hit refresh I am expecting the graph NOT to jump or flicker and transition smoothly.

I can see the expected result, if I consolidate the two queries A and B into query C as:

with union_data as (
  (
    SELECT time, measure_value::double as temperature, 'Channel PCB' as channel
    FROM $__database.$__table
    WHERE measure_name='ftx.pcb_temp_c' AND $__timeFilter AND serial_number='93765436'
    ORDER BY time
  ) union (
    SELECT time, measure_value::double as temperature, 'Channel A' as channel
    FROM $__database.$__table
    WHERE measure_name='ftx.temperature_c' AND $__timeFilter AND channel = 'A' AND serial_number='93765436'
    ORDER BY time
  )
)

select CREATE_TIME_SERIES(time, temperature) as ts, channel from union_data
group  by channel
order by channel

The graph can refresh without flickering (Query A and Query B disabled; Query C enabled):

Peek 2021-10-13 16-58

How to reproduce it (as minimally and precisely as possible):

  1. I created a brand new dashboard and a new time series panel. No configuration is modified. Everything is the default settings as it comes in 8.2.1
  2. Added a simple query A against Amazon Timestream as:
    SELECT time, measure_value::double as temperature 
    FROM $__database.$__table
    WHERE measure_name='ftx.pcb_temp_c' AND $__timeFilter AND serial_number='93765436'
    ORDER BY time
  3. Started refreshing the graph. Everything looks good so far. Graph updates with new data and moves to the left smoothly.
  4. Added another simple query B:
    SELECT time, measure_value::double as temperature 
    FROM $__database.$__table
    WHERE measure_name='ftx.temperature_c' AND $__timeFilter AND channel = 'A' AND serial_number='93765436'
    ORDER BY time
  5. Started refreshing the graph. The graph refreshes but as you can see it looks like that it is flashing with one of the graphs first and then re-scales the graph and draws both graphs properly.

Anything else we need to know?: Same behaviour happens in Stat Panel. I can confirm that it is correlated with having more than one query. If I consolidate all queries into one query the issue won't happen.

Environment:

Panel JSON

Click to expand! ``` { "id": 23763571993, "gridPos": { "x": 0, "y": 0, "w": 12, "h": 9 }, "type": "timeseries", "title": "Panel Title", "options": { "tooltip": { "mode": "single" }, "legend": { "displayMode": "list", "placement": "bottom", "calcs": [] } }, "fieldConfig": { "defaults": { "custom": { "drawStyle": "line", "lineInterpolation": "linear", "barAlignment": 0, "lineWidth": 1, "fillOpacity": 0, "gradientMode": "none", "spanNulls": false, "showPoints": "auto", "pointSize": 5, "stacking": { "mode": "none", "group": "A" }, "axisPlacement": "auto", "axisLabel": "", "scaleDistribution": { "type": "linear" }, "hideFrom": { "tooltip": false, "viz": false, "legend": false }, "thresholdsStyle": { "mode": "off" } }, "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 80, "color": "red" } ] }, "mappings": [] }, "overrides": [] }, "targets": [ { "refId": "A", "rawQuery": "SELECT time, measure_value::double as temperature \nFROM $__database.$__table\nWHERE measure_name='ftx.pcb_temp_c' AND $__timeFilter AND serial_number='93765436'\nORDER BY time", "queryType": "raw", "hide": false }, { "refId": "B", "hide": false, "rawQuery": "SELECT time, measure_value::double as temperature \nFROM $__database.$__table\nWHERE measure_name='ftx.temperature_c' AND $__timeFilter AND channel = 'A' AND serial_number='93765436'\nORDER BY time", "queryType": "raw" } ], "datasource": null } ```

Data JSON

Click to expand! ``` { "state": "Done", "series": [ { "refId": "A", "meta": { "custom": { "executionFinishTime": 1634166549396, "executionStartTime": 1634166549279, "queryId": "AEBQEAM7S4G36AT7ZBC3GKAY4DPWBNPU2NI6O5NILIEIYAJDOREOQEFCIWJP3LI", "status": { "CumulativeBytesMetered": 10000000, "CumulativeBytesScanned": 31968, "ProgressPercentage": 100 }, "fetchStartTime": 1634166549228, "fetchEndTime": 1634166549443, "fetchTime": 215 }, "executedQueryString": "SELECT time, measure_value::double as temperature \nFROM \"xxx\".\"xxx-ftx\"\nWHERE measure_name='ftx.pcb_temp_c' AND time BETWEEN from_milliseconds(1634166249228) AND from_milliseconds(1634166549228) AND serial_number='93765436'\nORDER BY time", "stats": [ { "displayName": "Execution time (Grafana server ⇆ Timestream)", "value": 117, "unit": "ms", "decimals": 2 }, { "displayName": "Fetch time (Browser ⇆ Grafana server w/o Timestream)", "value": 98, "unit": "ms", "decimals": 2 }, { "displayName": "Fetch overhead", "value": 45.58139534883721, "unit": "percent" } ] }, "fields": [ { "name": "time", "type": "time", "typeInfo": { "frame": "time.Time" }, "config": { "custom": { "drawStyle": "line", "lineInterpolation": "linear", "barAlignment": 0, "lineWidth": 1, "fillOpacity": 0, "gradientMode": "none", "showPoints": "auto", "pointSize": 5, "axisPlacement": "auto", "axisLabel": "", "hideFrom": { "tooltip": false, "viz": false, "legend": false }, "thresholdsStyle": { "mode": "off" } }, "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 80, "color": "red" } ] }, "mappings": [] }, "values": [ 1634166250110, 1634166251107, 1634166252110, 1634166253117, 1634166254115, 1634166255115, 1634166256115, 1634166257119, 1634166258117, 1634166259122, 1634166260122, 1634166261124, 1634166262124, 1634166263129, 1634166264128, 1634166265128, 1634166266131, 1634166267133, 1634166268138, 1634166269135, 1634166270136, 1634166271142, 1634166272140, 1634166273139, 1634166274142, 1634166275143, 1634166276145, 1634166277146, 1634166278150, 1634166279149, 1634166280162, 1634166281154, 1634166282156, 1634166283154, 1634166284160, 1634166285159, 1634166286160, 1634166287162, 1634166288162, 1634166289174, 1634166290166, 1634166291166, 1634166292172, 1634166293174, 1634166294171, 1634166295173, 1634166296175, 1634166297184, 1634166298178, 1634166299177, 1634166300183, 1634166301182, 1634166302183, 1634166303185, 1634166304185, 1634166305188, 1634166306192, 1634166307191, 1634166308191, 1634166309193, 1634166310194, 1634166311202, 1634166312198, 1634166313197, 1634166314201, 1634166315204, 1634166316204, 1634166317204, 1634166318205, 1634166319212, 1634166320208, 1634166321208, 1634166322211, 1634166323214, 1634166324214, 1634166325216, 1634166326217, 1634166327221, 1634166328219, 1634166329220, 1634166330227, 1634166331223, 1634166332223, 1634166333226, 1634166334226, 1634166335227, 1634166336233, 1634166337230, 1634166338232, 1634166339235, 1634166340242, 1634166341237, 1634166342238, 1634166343242, 1634166344240, 1634166345245, 1634166346247, 1634166347250, 1634166348249, 1634166349254, 1634166350252, 1634166351252, 1634166352254, 1634166353254, 1634166354258, 1634166355259, 1634166356259, 1634166357263, 1634166358265, 1634166359264, 1634166360265, 1634166361268, 1634166362269, 1634166363272, 1634166364271, 1634166365280, 1634166366276, 1634166367278, 1634166368281, 1634166369280, 1634166370280, 1634166371285, 1634166372285, 1634166373285, 1634166374289, 1634166375288, 1634166376289, 1634166377296, 1634166378293, 1634166379293, 1634166380296, 1634166381297, 1634166382299, 1634166383301, 1634166384302, 1634166385302, 1634166386307, 1634166387305, 1634166388314, 1634166389308, 1634166390310, 1634166391313, 1634166392316, 1634166393312, 1634166394326, 1634166395316, 1634166396316, 1634166397318, 1634166398319, 1634166399321, 1634166400321, 1634166401328, 1634166402328, 1634166403327, 1634166404329, 1634166405331, 1634166406335, 1634166407336, 1634166408337, 1634166409336, 1634166410338, 1634166411340, 1634166412343, 1634166413342, 1634166414343, 1634166415345, 1634166416346, 1634166417347, 1634166418350, 1634166419349, 1634166420351, 1634166421353, 1634166422353, 1634166423355, 1634166424357, 1634166425358, 1634166426363, 1634166427363, 1634166428363, 1634166429365, 1634166430368, 1634166431370, 1634166432371, 1634166433377, 1634166434373, 1634166435378, 1634166436375, 1634166437386, 1634166438380, 1634166439380, 1634166440382, 1634166441384, 1634166442383, 1634166443387, 1634166444391, 1634166445389, 1634166446397, 1634166447393, 1634166448408, 1634166449396, 1634166450395, 1634166451399, 1634166452398, 1634166453404, 1634166454403, 1634166455402, 1634166456409, 1634166457406, 1634166458407, 1634166459409, 1634166460409, 1634166461411, 1634166462412, 1634166463412, 1634166464419, 1634166465416, 1634166466416, 1634166467420, 1634166468421, 1634166469422, 1634166470423, 1634166471424, 1634166472430, 1634166473429, 1634166474428, 1634166475444, 1634166476431, 1634166477433, 1634166478440, 1634166479435, 1634166480437, 1634166481439, 1634166482439, 1634166483440, 1634166484442, 1634166485442, 1634166486448, 1634166487446, 1634166488449, 1634166489452, 1634166490453, 1634166491456, 1634166492455, 1634166493465, 1634166494457, 1634166495458, 1634166496462, 1634166497466, 1634166498464, 1634166499466, 1634166500473, 1634166501469, 1634166502472, 1634166503479, 1634166504478, 1634166505478, 1634166506479, 1634166507481, 1634166508480, 1634166509485, 1634166510486, 1634166511485, 1634166512488, 1634166513489, 1634166514493, 1634166515492, 1634166516495, 1634166517505, 1634166518502, 1634166519509, 1634166520500, 1634166521500, 1634166522503, 1634166523505, 1634166524506, 1634166525512, 1634166526512, 1634166527513, 1634166528515, 1634166529516, 1634166530523, 1634166531515, 1634166532517, 1634166533517, 1634166534520, 1634166535520, 1634166536522, 1634166537524 ], "entities": {}, "state": { "scopedVars": { "__series": { "text": "Series", "value": { "name": "Series (A)" } }, "__field": { "text": "Field", "value": {} } }, "seriesIndex": 0 } }, { "name": "temperature", "type": "number", "typeInfo": { "frame": "float64", "nullable": true }, "config": { "custom": { "drawStyle": "line", "lineInterpolation": "linear", "barAlignment": 0, "lineWidth": 1, "fillOpacity": 0, "gradientMode": "none", "spanNulls": false, "showPoints": "auto", "pointSize": 5, "stacking": { "mode": "none", "group": "A" }, "axisPlacement": "auto", "axisLabel": "", "scaleDistribution": { "type": "linear" }, "hideFrom": { "tooltip": false, "viz": false, "legend": false }, "thresholdsStyle": { "mode": "off" } }, "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 80, "color": "red" } ] }, "mappings": [] }, "values": [ 30.7, 30.8, 30.8, 30.8, 30.8, 30.8, 30.8, 30.8, 30.8, 30.8, 30.7, 30.7, 30.8, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.6, 30.7, 30.7, 30.7, 30.7, 30.7, 30.7, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.6, 30.5, 30.5, 30.6, 30.6, 30.6, 30.6, 30.6 ], "entities": {}, "state": { "calcs": { "sum": 8818.300000000048, "max": 30.8, "min": 30.5, "logmin": 30.5, "mean": 30.61909722222239, "last": 30.6, "first": 30.7, "lastNotNull": 30.6, "firstNotNull": 30.7, "count": 288, "nonNullCount": 288, "allIsNull": false, "allIsZero": false, "range": 0.3000000000000007, "diff": -0.09999999999999787, "delta": 153.5, "step": -0.10000000000000142, "diffperc": -0.003257328990227944, "previousDeltaUp": true }, "scopedVars": { "__series": { "text": "Series", "value": { "name": "Series (A)" } }, "__field": { "text": "Field", "value": {} } }, "seriesIndex": 0, "range": { "min": 30.5, "max": 131.4, "delta": 100.9 }, "displayName": "temperature" } } ], "length": 288 }, { "refId": "B", "meta": { "custom": { "executionFinishTime": 1634166549402, "executionStartTime": 1634166549279, "queryId": "AEBQEAM7S4GZJ6KUALLRFUTRYELDBVIDSVOUOOP2G624QXLRIKJIWTUNDZZSFZY", "status": { "CumulativeBytesMetered": 10000000, "CumulativeBytesScanned": 35136, "ProgressPercentage": 100 }, "fetchStartTime": 1634166549229, "fetchEndTime": 1634166549461, "fetchTime": 232 }, "executedQueryString": "SELECT time, measure_value::double as temperature \nFROM \"xxx\".\"xxx-ftx\"\nWHERE measure_name='ftx.temperature_c' AND time BETWEEN from_milliseconds(1634166249228) AND from_milliseconds(1634166549228) AND channel = 'A' AND serial_number='93765436'\nORDER BY time", "stats": [ { "displayName": "Execution time (Grafana server ⇆ Timestream)", "value": 123, "unit": "ms", "decimals": 2 }, { "displayName": "Fetch time (Browser ⇆ Grafana server w/o Timestream)", "value": 109, "unit": "ms", "decimals": 2 }, { "displayName": "Fetch overhead", "value": 46.98275862068966, "unit": "percent" } ] }, "fields": [ { "name": "time", "type": "time", "typeInfo": { "frame": "time.Time" }, "config": { "custom": { "drawStyle": "line", "lineInterpolation": "linear", "barAlignment": 0, "lineWidth": 1, "fillOpacity": 0, "gradientMode": "none", "showPoints": "auto", "pointSize": 5, "axisPlacement": "auto", "axisLabel": "", "hideFrom": { "tooltip": false, "viz": false, "legend": false }, "thresholdsStyle": { "mode": "off" } }, "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 80, "color": "red" } ] }, "mappings": [] }, "values": [ 1634166250110, 1634166251107, 1634166252110, 1634166253117, 1634166254115, 1634166255115, 1634166256115, 1634166257119, 1634166258117, 1634166259122, 1634166260122, 1634166261124, 1634166262124, 1634166263129, 1634166264128, 1634166265128, 1634166266131, 1634166267133, 1634166268138, 1634166269135, 1634166270136, 1634166271142, 1634166272140, 1634166273139, 1634166274142, 1634166275143, 1634166276145, 1634166277146, 1634166278150, 1634166279149, 1634166280162, 1634166281154, 1634166282156, 1634166283154, 1634166284160, 1634166285159, 1634166286160, 1634166287162, 1634166288162, 1634166289174, 1634166290166, 1634166291166, 1634166292172, 1634166293174, 1634166294171, 1634166295173, 1634166296175, 1634166297184, 1634166298178, 1634166299177, 1634166300183, 1634166301182, 1634166302183, 1634166303185, 1634166304185, 1634166305188, 1634166306192, 1634166307191, 1634166308191, 1634166309193, 1634166310194, 1634166311202, 1634166312198, 1634166313197, 1634166314201, 1634166315204, 1634166316204, 1634166317204, 1634166318205, 1634166319212, 1634166320208, 1634166321208, 1634166322211, 1634166323214, 1634166324214, 1634166325216, 1634166326217, 1634166327221, 1634166328219, 1634166329220, 1634166330227, 1634166331223, 1634166332223, 1634166333226, 1634166334226, 1634166335227, 1634166336233, 1634166337230, 1634166338232, 1634166339235, 1634166340242, 1634166341237, 1634166342238, 1634166343242, 1634166344240, 1634166345245, 1634166346247, 1634166347250, 1634166348249, 1634166349254, 1634166350252, 1634166351252, 1634166352254, 1634166353254, 1634166354258, 1634166355259, 1634166356259, 1634166357263, 1634166358265, 1634166359264, 1634166360265, 1634166361268, 1634166362269, 1634166363272, 1634166364271, 1634166365280, 1634166366276, 1634166367278, 1634166368281, 1634166369280, 1634166370280, 1634166371285, 1634166372285, 1634166373285, 1634166374289, 1634166375288, 1634166376289, 1634166377296, 1634166378293, 1634166379293, 1634166380296, 1634166381297, 1634166382299, 1634166383301, 1634166384302, 1634166385302, 1634166386307, 1634166387305, 1634166388314, 1634166389308, 1634166390310, 1634166391313, 1634166392316, 1634166393312, 1634166394326, 1634166395316, 1634166396316, 1634166397318, 1634166398319, 1634166399321, 1634166400321, 1634166401328, 1634166402328, 1634166403327, 1634166404329, 1634166405331, 1634166406335, 1634166407336, 1634166408337, 1634166409336, 1634166410338, 1634166411340, 1634166412343, 1634166413342, 1634166414343, 1634166415345, 1634166416346, 1634166417347, 1634166418350, 1634166419349, 1634166420351, 1634166421353, 1634166422353, 1634166423355, 1634166424357, 1634166425358, 1634166426363, 1634166427363, 1634166428363, 1634166429365, 1634166430368, 1634166431370, 1634166432371, 1634166433377, 1634166434373, 1634166435378, 1634166436375, 1634166437386, 1634166438380, 1634166439380, 1634166440382, 1634166441384, 1634166442383, 1634166443387, 1634166444391, 1634166445389, 1634166446397, 1634166447393, 1634166448408, 1634166449396, 1634166450395, 1634166451399, 1634166452398, 1634166453404, 1634166454403, 1634166455402, 1634166456409, 1634166457406, 1634166458407, 1634166459409, 1634166460409, 1634166461411, 1634166462412, 1634166463412, 1634166464419, 1634166465416, 1634166466416, 1634166467420, 1634166468421, 1634166469422, 1634166470423, 1634166471424, 1634166472430, 1634166473429, 1634166474428, 1634166475444, 1634166476431, 1634166477433, 1634166478440, 1634166479435, 1634166480437, 1634166481439, 1634166482439, 1634166483440, 1634166484442, 1634166485442, 1634166486448, 1634166487446, 1634166488449, 1634166489452, 1634166490453, 1634166491456, 1634166492455, 1634166493465, 1634166494457, 1634166495458, 1634166496462, 1634166497466, 1634166498464, 1634166499466, 1634166500473, 1634166501469, 1634166502472, 1634166503479, 1634166504478, 1634166505478, 1634166506479, 1634166507481, 1634166508480, 1634166509485, 1634166510486, 1634166511485, 1634166512488, 1634166513489, 1634166514493, 1634166515492, 1634166516495, 1634166517505, 1634166518502, 1634166519509, 1634166520500, 1634166521500, 1634166522503, 1634166523505, 1634166524506, 1634166525512, 1634166526512, 1634166527513, 1634166528515, 1634166529516, 1634166530523, 1634166531515, 1634166532517, 1634166533517, 1634166534520, 1634166535520, 1634166536522, 1634166537524 ], "entities": {}, "state": { "scopedVars": { "__series": { "text": "Series", "value": { "name": "Series (B)" } }, "__field": { "text": "Field", "value": {} } }, "seriesIndex": 1 } }, { "name": "temperature", "type": "number", "typeInfo": { "frame": "float64", "nullable": true }, "config": { "custom": { "drawStyle": "line", "lineInterpolation": "linear", "barAlignment": 0, "lineWidth": 1, "fillOpacity": 0, "gradientMode": "none", "spanNulls": false, "showPoints": "auto", "pointSize": 5, "stacking": { "mode": "none", "group": "A" }, "axisPlacement": "auto", "axisLabel": "", "scaleDistribution": { "type": "linear" }, "hideFrom": { "tooltip": false, "viz": false, "legend": false }, "thresholdsStyle": { "mode": "off" } }, "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 80, "color": "red" } ] }, "mappings": [] }, "values": [ 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 130.9, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.2, 131.2, 131.1, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.1, 131.2, 131.1, 131.1, 131.2, 131.2, 131.2, 131.2, 131.1, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.3, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.2, 131.3, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.2, 131.3, 131.2, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.3, 131.4, 131.4, 131.3, 131.3, 131.3, 131.3 ], "entities": {}, "state": { "calcs": { "sum": 37779.50000000016, "max": 131.4, "min": 130.9, "logmin": 130.9, "mean": 131.178819444445, "last": 131.3, "first": 130.9, "lastNotNull": 131.3, "firstNotNull": 130.9, "count": 288, "nonNullCount": 288, "allIsNull": false, "allIsZero": false, "range": 0.5, "diff": 0.4000000000000057, "delta": 1313.1, "step": -0.10000000000002274, "diffperc": 0.003055767761650158, "previousDeltaUp": true }, "scopedVars": { "__series": { "text": "Series", "value": { "name": "Series (B)" } }, "__field": { "text": "Field", "value": {} } }, "seriesIndex": 1, "range": { "min": 30.5, "max": 131.4, "delta": 100.9 } } } ], "length": 288 } ], "annotations": [], "request": { "app": "dashboard", "requestId": "Q269", "timezone": "browser", "panelId": 2, "dashboardId": null, "range": { "from": "2021-10-13T23:04:09.228Z", "to": "2021-10-13T23:09:09.228Z", "raw": { "from": "now-5m", "to": "now" } }, "timeInfo": "", "interval": "200ms", "intervalMs": 200, "targets": [ { "refId": "A", "rawQuery": "SELECT time, measure_value::double as temperature \nFROM $__database.$__table\nWHERE measure_name='ftx.pcb_temp_c' AND $__timeFilter AND serial_number='93765436'\nORDER BY time", "queryType": "raw", "hide": false, "datasource": "Amazon Timestream" }, { "refId": "B", "hide": false, "rawQuery": "SELECT time, measure_value::double as temperature \nFROM $__database.$__table\nWHERE measure_name='ftx.temperature_c' AND $__timeFilter AND channel = 'A' AND serial_number='93765436'\nORDER BY time", "queryType": "raw", "datasource": "Amazon Timestream" } ], "maxDataPoints": 1793, "scopedVars": { "__interval": { "text": "200ms", "value": "200ms" }, "__interval_ms": { "text": "200", "value": 200 } }, "startTime": 1634166549228, "rangeRaw": { "from": "now-5m", "to": "now" }, "endTime": 1634166549461 }, "timeRange": { "from": "2021-10-13T23:04:09.228Z", "to": "2021-10-13T23:09:09.228Z", "raw": { "from": "now-5m", "to": "now" } }, "timings": { "dataProcessingTime": 0 }, "structureRev": 2 } ```

Dataframe Structure JSON

Click to expand! ``` [ { "refId": "A", "meta": { "custom": { "executionFinishTime": 1634166549396, "executionStartTime": 1634166549279, "queryId": "AEBQEAM7S4G36AT7ZBC3GKAY4DPWBNPU2NI6O5NILIEIYAJDOREOQEFCIWJP3LI", "status": { "CumulativeBytesMetered": 10000000, "CumulativeBytesScanned": 31968, "ProgressPercentage": 100 }, "fetchStartTime": 1634166549228, "fetchEndTime": 1634166549443, "fetchTime": 215 }, "executedQueryString": "SELECT time, measure_value::double as temperature \nFROM \"xxx\".\"xxx-ftx\"\nWHERE measure_name='ftx.pcb_temp_c' AND time BETWEEN from_milliseconds(1634166249228) AND from_milliseconds(1634166549228) AND serial_number='93765436'\nORDER BY time", "stats": [ { "displayName": "Execution time (Grafana server ⇆ Timestream)", "value": 117, "unit": "ms", "decimals": 2 }, { "displayName": "Fetch time (Browser ⇆ Grafana server w/o Timestream)", "value": 98, "unit": "ms", "decimals": 2 }, { "displayName": "Fetch overhead", "value": 45.58139534883721, "unit": "percent" } ] }, "length": 288, "fields": [ { "name": "time", "type": "time", "typeInfo": { "frame": "time.Time" }, "config": { "custom": { "drawStyle": "line", "lineInterpolation": "linear", "barAlignment": 0, "lineWidth": 1, "fillOpacity": 0, "gradientMode": "none", "showPoints": "auto", "pointSize": 5, "axisPlacement": "auto", "axisLabel": "", "hideFrom": { "tooltip": false, "viz": false, "legend": false }, "thresholdsStyle": { "mode": "off" } }, "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 80, "color": "red" } ] }, "mappings": [] }, "entities": {} }, { "name": "temperature", "type": "number", "typeInfo": { "frame": "float64", "nullable": true }, "config": { "custom": { "drawStyle": "line", "lineInterpolation": "linear", "barAlignment": 0, "lineWidth": 1, "fillOpacity": 0, "gradientMode": "none", "spanNulls": false, "showPoints": "auto", "pointSize": 5, "stacking": { "mode": "none", "group": "A" }, "axisPlacement": "auto", "axisLabel": "", "scaleDistribution": { "type": "linear" }, "hideFrom": { "tooltip": false, "viz": false, "legend": false }, "thresholdsStyle": { "mode": "off" } }, "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 80, "color": "red" } ] }, "mappings": [] }, "entities": {} } ] }, { "refId": "B", "meta": { "custom": { "executionFinishTime": 1634166549402, "executionStartTime": 1634166549279, "queryId": "AEBQEAM7S4GZJ6KUALLRFUTRYELDBVIDSVOUOOP2G624QXLRIKJIWTUNDZZSFZY", "status": { "CumulativeBytesMetered": 10000000, "CumulativeBytesScanned": 35136, "ProgressPercentage": 100 }, "fetchStartTime": 1634166549229, "fetchEndTime": 1634166549461, "fetchTime": 232 }, "executedQueryString": "SELECT time, measure_value::double as temperature \nFROM \"xxx\".\"xxx-ftx\"\nWHERE measure_name='ftx.temperature_c' AND time BETWEEN from_milliseconds(1634166249228) AND from_milliseconds(1634166549228) AND channel = 'A' AND serial_number='93765436'\nORDER BY time", "stats": [ { "displayName": "Execution time (Grafana server ⇆ Timestream)", "value": 123, "unit": "ms", "decimals": 2 }, { "displayName": "Fetch time (Browser ⇆ Grafana server w/o Timestream)", "value": 109, "unit": "ms", "decimals": 2 }, { "displayName": "Fetch overhead", "value": 46.98275862068966, "unit": "percent" } ] }, "length": 288, "fields": [ { "name": "time", "type": "time", "typeInfo": { "frame": "time.Time" }, "config": { "custom": { "drawStyle": "line", "lineInterpolation": "linear", "barAlignment": 0, "lineWidth": 1, "fillOpacity": 0, "gradientMode": "none", "showPoints": "auto", "pointSize": 5, "axisPlacement": "auto", "axisLabel": "", "hideFrom": { "tooltip": false, "viz": false, "legend": false }, "thresholdsStyle": { "mode": "off" } }, "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 80, "color": "red" } ] }, "mappings": [] }, "entities": {} }, { "name": "temperature", "type": "number", "typeInfo": { "frame": "float64", "nullable": true }, "config": { "custom": { "drawStyle": "line", "lineInterpolation": "linear", "barAlignment": 0, "lineWidth": 1, "fillOpacity": 0, "gradientMode": "none", "spanNulls": false, "showPoints": "auto", "pointSize": 5, "stacking": { "mode": "none", "group": "A" }, "axisPlacement": "auto", "axisLabel": "", "scaleDistribution": { "type": "linear" }, "hideFrom": { "tooltip": false, "viz": false, "legend": false }, "thresholdsStyle": { "mode": "off" } }, "color": { "mode": "palette-classic" }, "thresholds": { "mode": "absolute", "steps": [ { "value": null, "color": "green" }, { "value": 80, "color": "red" } ] }, "mappings": [] }, "entities": {} } ] } ] ```
farzadpanahi commented 3 years ago

Based on an StackOverflow answer, this is happening due to the difference in query execution times. Can the team confirm this? If that is the case I think having a toggle for panel like: Render after all Queries Finished can be really helpful.

torkelo commented 3 years ago

I think the data source should probably wait for all queries to complete before returning data to Grafana, that is what other data sources do