使用 PostgresQL 作为数据源在 Grafana 中进行一个查询的多个系列
Multiple series with one query in Grafana using PostgresQL as datasource
我在 Postgres table 中有大致这种形式的数据:
CREATE TABLE jobs
(
id BIGINT PRIMARY KEY,
started_at TIMESTAMPTZ,
duration NUMERIC,
project_id BIGINT
)
我还提出了一个符合我要求的查询:
SELECT
$__timeGroupAlias(started_at,$__interval),
avg(duration) AS "durations"
FROM jobs
WHERE
project_id = 720
GROUP BY 1
ORDER BY 1
此查询筛选出一个 project_id
。我真正想要的是在图表 中为每个 项目在 table 中有一个条目的一行,而不是只有一个。
我找不到办法做到这一点。我尝试了我能想到的所有不同风格的 group by
子句,还尝试了我在网上找到的示例,但其中 none 行得通。
试试这个 Grafana PostgreSQL 查询:
SELECT
$__timeGroupAlias(started_at, $__interval),
project_id::text AS "metric",
AVG(duration) AS "durations"
FROM jobs
WHERE $__timeFilter(started_at)
GROUP BY 1,2
ORDER BY 1
我在 Postgres table 中有大致这种形式的数据:
CREATE TABLE jobs
(
id BIGINT PRIMARY KEY,
started_at TIMESTAMPTZ,
duration NUMERIC,
project_id BIGINT
)
我还提出了一个符合我要求的查询:
SELECT
$__timeGroupAlias(started_at,$__interval),
avg(duration) AS "durations"
FROM jobs
WHERE
project_id = 720
GROUP BY 1
ORDER BY 1
此查询筛选出一个 project_id
。我真正想要的是在图表 中为每个 项目在 table 中有一个条目的一行,而不是只有一个。
我找不到办法做到这一点。我尝试了我能想到的所有不同风格的 group by
子句,还尝试了我在网上找到的示例,但其中 none 行得通。
试试这个 Grafana PostgreSQL 查询:
SELECT
$__timeGroupAlias(started_at, $__interval),
project_id::text AS "metric",
AVG(duration) AS "durations"
FROM jobs
WHERE $__timeFilter(started_at)
GROUP BY 1,2
ORDER BY 1