这是通过grafana使用它的正确方法吗?
Posted
技术标签:
【中文标题】这是通过grafana使用它的正确方法吗?【英文标题】:Is this the correct way to use it via grafana? 【发布时间】:2021-08-07 13:58:10 【问题描述】:ClickHouse:
┌─name──────────┬─type──────────┬
│ FieldUUID │ UUID │
│ EventDate │ Date │
│ EventDateTime │ DateTime │
│ Metric │ String │
│ LabelNames │ Array(String) │
│ LabelValues │ Array(String) │
│ Value │ Float64 │
└───────────────┴───────────────┴
Row 1:
──────
FieldUUID: 499ca963-2bd4-4c94-bc60-e60757ccaf6b
EventDate: 2021-05-13
EventDateTime: 2021-05-13 09:24:18
Metric: cluster_cm_agent_physical_memory_used
LabelNames: ['host']
LabelValues: ['test01']
Value: 104189952
格拉法纳:
SELECT
EventDateTime,
Value AS cluster_cm_agent_physical_memory_used
FROM
$table
WHERE
Metric = 'cluster_cm_agent_physical_memory_used'
AND $timeFilter
ORDER BY
EventDateTime
没有数据点。
问题:这是通过 grafana 使用它的正确方法吗?
示例: cluster_cm_agent_physical_memory_usedhost='test01' 104189952
【问题讨论】:
【参考方案1】:Grafana 期望您的 SQL 将针对大部分可视化返回时间序列数据格式。
一栏DateTime\Date\DateTime64 or UInt32
描述
时间戳
一列或多列数字类型(Float、Int*、
UInt*) 与度量值(列名称将用作时间序列名称)
可选的一列带有可以描述多次的字符串
系列名称
或高级“时间序列”格式,当第一列将timestamp
,第二列将Array(tuple(String, Numeric))
其中String
列将时间序列名称(通常与
所以,在query editor
的下拉列表中选择表metrics.shell
作为表并选择EventDateTime
作为字段,您的查询可以更改为
SELECT
EventDateTime,
Value AS cluster_cm_agent_physical_memory_used
FROM
$table
WHERE
Metric = 'cluster_cm_agent_physical_memory_used'
AND $timeFilter
ORDER BY
EventDateTime
您帖子中的 SQL 查询,只需使用 Table
插件即可在不进行更改的情况下进行可视化,您应将“时间序列”更改为“表格”格式,以便在 grafana 端进行正确的数据转换
【讨论】:
你能分享你从查询编辑器中生成的 SQL 吗? 我已经努力了一个星期了,但还是解决不了。看来我自己解决不了。 @Slach 我再次问您请分享您从 grafana clickhouse 查询编辑器中生成的“生成的 SQL” Generated SQL【参考方案2】:promQL 查询的模拟
cluster_cm_agent_physical_memory_usedhost='test01' 104189952
应该是这样的
SELECT
EventDateTime,
Value AS cluster_cm_agent_physical_memory_used
FROM
$table
WHERE
Metric = 'cluster_cm_agent_physical_memory_used'
AND LabelValues[indexOf(LabelNames,'host')] = 'test01'
AND $timeFilter
ORDER BY
EventDateTime
【讨论】:
Generated SQL image 如果我将$timeFilter替换为EventDateTime = '2021-05-26 09:10:29',我可以得到数据,但是没有时间序列。 仅设置一秒时,您期望什么时间序列?您可以尝试在 clickhouse-client 中运行生成的 SQL 并检查返回了哪些数据 是的,我设置为一秒,因为$timeFilter
不返回任何数据点。
找到原因:Clickhouse最新数据时间:EventDateTime: 2021-05-27 06:56:01
,生成SQL最新数据时间:1622076908 (2021-05-27 08:55:08)
检查您的摄取过程,也许您在尝试将数据插入 clickhouse 时丢失了时区?以上是关于这是通过grafana使用它的正确方法吗?的主要内容,如果未能解决你的问题,请参考以下文章