Ruka
2 min readFeb 12, 2023

[Grafana][ADX] “no float64 value column found in frame” Error in alert and solution

Finally solve it after got this error in work and investing for solution.

This error happens when the query before calculation returns no rows (No data) from database. Thus the grafana is trying to perform a calculate from a No Data object and thought the reason not getting value is because the table has no float64 value column.

To fix this error, the easiest way to do that is to add at least a row in your return query no matter how the table is.

As an example, assume this is the table of your azure adx.

table01
| logtime | errorMessage |
| | |

The table is currently empty.

And here is your KQL in Grafana alert rule:

table01
| where $__timefilter(logtime)
| summarize count() by logtime

And you are using a Condition “sum()” to trigger alert setting in grafana.

But since your table is empty, this KQL will return the No Data and this will break your alert rule, triggers DatasourceNoData or DatasourceErroralert in Grafana Dashboard and annoy your slack.

To fix this, change your KQL to the following.

let defaultRow = union(print logtime=now(), logcounts=0)
table01
| where $__timefilter(logtime)
| summarize count() by logtime
| project logcounts=count_, logtime
| union defaultRow

The concept of this solution is to add a defaultRow no matter what data the table has. So that you could avoid No Data be returned. In this case the KQL will return data as following


| logtime | logcounts |
| 2023-02-13 10:00:00.0000 | 0 |

Then after you send the result to Condition SUM. The result will not be affect by the defaultRow you append since the value for this row is 0.

I’ve spent a sprint to try to figure out the solution. It was ChatGPT’s help to provide the concept of solution for me then I find the correct KQL to implement the concept and solve it. Thank you OpenAI.

Ruka
Ruka

Written by Ruka

HI I’m Ruka. Now a SWE in Taiwan. Contact via email: nayzi9999@gmail.com

No responses yet