Grafana组系列

Grafana group series

我有带有三个变量的 postgres table:日期时间、robot_id 和 energy_percent。现在在图表上我有 energy_percentrobot_id。如何根据 robot_id 对 table 中的记录进行分组?目前在这个 table 我有 3 个不同 robot_id 的记录,所以我想在这个图表上看到 3 条线。

编辑: 我有一个 table 有很多记录,在 robot_id 列我有 ID。我需要一个折线图,每个折线图都是唯一的 robot_id。如果 table 包含 x uniquerobot_id 我希望图表上有 x 行。这是 excel 处的示例:左边是错误的图表,右边是正确的图表: 还有一件事:在 excel 上没有数据我有 0,但我不需要点。

Edit2:我可以用下面的很多系列来做到这一点,但它应该是通用的(idk 有多少独特的 robot_id 将是)并且用一个查询(A)完成而不是很多查询(A、B、C 等)

编辑 3: 当我应用代码时:

SELECT
  $__timeGroupAlias(time_created, $__interval),
  robot_id AS "metric",
  AVG(energy_percent) AS "value"
FROM api_robotlog
WHERE
  $__timeFilter(time_created)
GROUP BY 1,2
ORDER BY 1

我有 2 个地块:energy_percent(time)robot_id(time)。没有很多情节energy_percent(time, robot_id)

编辑 5: 使用@Jan Garaj 解决方案可以正常工作。两个图表,有两个相似的查询: TOP图表查询:

SELECT
  $__timeGroupAlias(time_created, $__interval),
  robot_id AS "metric",
  AVG(energy_percent) AS "value"
FROM api_robotlog
WHERE
  $__timeFilter(time_created)
GROUP BY 1,2
ORDER BY 1

BOTTOM图表查询:

SELECT
  $__timeGroupAlias(time_created, $__interval),
  robot_id::varchar AS "metric",
  AVG(energy_percent) AS "value"
FROM api_robotlog
WHERE
  $__timeFilter(time_created)
GROUP BY 1,2
ORDER BY 1

适当分组即可。我会更多地切换到文本编辑并手动编写 SQL。例如:

SELECT
  $__timeGroupAlias(time_created, $__interval),
  robot_id AS "metric",
  AVG(energy_percent) AS "value"
FROM api_robotlog
WHERE
  $__timeFilter(time_created)
GROUP BY 1,2
ORDER BY 1