【问题标题】:Grafana & MYSQL - Visualise data in a table tracking weightsGrafana 和 MYSQL - 可视化表中的数据跟踪权重
【发布时间】:2022-12-10 05:21:08
【问题描述】:

我有一个非常简单的 MYSQL 表,它跟踪一些动物的重量:

id name weight date
1 Brillo 400 2022-12-01
2 Barli 200 2022-12-01
3 Bueno 350 2022-12-01
4 Brillo 410 2022-12-10
5 Barli 197 2022-12-10
6 Bueno 362 2022-12-10

所以在上面的例子中,我在 1 号称重我的 3 只动物,然后在 10 号称重。

我想使用时间序列面板在 Grafana 中可视化这些数据。如果我对每只宠物查询一次数据库,我就会得到我想要的确切数据:

SELECT name, weight as 'Brillo', date FROM animal.weights WHERE name='Brillo'
SELECT name, weight as 'Bueno', date FROM animal.weights WHERE name='Bueno'
SELECT name, weight as 'Barli', date FROM animal.weights WHERE name='Barli'

这给了我以下面板:

虽然这可行,但对每只动物进行 1 次查询感觉是错误的方法。我最终会在这里有 20+,所以每次对数据库进行 20 次查询感觉不正确。

我的问题是这样的;有没有一种方法可以在单个查询中将表中的相同结果输入到 Grafana 时间序列面板中?

SELECT name, weight, date FROM animals.weights

【问题讨论】:

  • 是的,只需旋转您的表格以将名称作为列,然后选择所有内容

标签: mysql grafana


【解决方案1】:

您需要根据 namedate 进行聚合 + 还需要时间过滤器(否则数据库中的大量记录会出现问题)。

这是一个好的开始:

SELECT 
  $__timeGroup(date, '1d', NULL),
  name AS "metric", 
  AVG(weight) AS "value"
FROM animals.weights
WHERE
  $__time(date)
ORDER BY 1

有关使用过的宏,请参阅Grafana MySQL doc

【讨论】:

    猜你喜欢
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    • 1970-01-01
    • 2011-07-10
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多