我已经使用 Postgres 的 TimescaleDB 扩展部署了一个 docker 容器,作为 Prometheus 收集的指标的持久存储。这包括在单独的容器中部署 Prometheus Postgres 适配器。然后我在第三个容器中部署了 grafana。
在 TimescaleDB 容器中,我可以执行查询:
SELECT time_bucket('5 minutes', time) AS five_min_bucket, name, avg(value)
FROM metrics
WHERE (name='node_load5' OR name='node_memory_Active_bytes') AND
time > NOW() - interval '1 day'
GROUP BY five_min_bucket,name
ORDER BY five_min_bucket;
它从表中返回这些行metrics
:
five_min_bucket | name | avg
------------------------+--------------------------+-------------------
2019-07-13 16:15:00+00 | node_load5 | 1.84263157894737
2019-07-13 16:15:00+00 | node_memory_Active_bytes | 1055776552.42105
2019-07-13 16:20:00+00 | node_load5 | 1.62533333333333
2019-07-13 16:20:00+00 | node_memory_Active_bytes | 1070225817.6
2019-07-13 16:25:00+00 | node_load5 | 1.06166666666667
2019-07-13 16:25:00+00 | node_memory_Active_bytes | 1084650018.13333
2019-07-13 16:30:00+00 | node_load5 | 0.593333333333333
2019-07-13 16:30:00+00 | node_memory_Active_bytes | 1093145668.26667
2019-07-13 16:35:00+00 | node_load5 | 0.322333333333333
2019-07-13 16:35:00+00 | node_memory_Active_bytes | 1108816145.06667
2019-07-13 16:40:00+00 | node_load5 | 0.180666666666667
2019-07-13 16:40:00+00 | node_memory_Active_bytes | 1125213388.8
2019-07-13 16:45:00+00 | node_load5 | 0.126
2019-07-13 16:45:00+00 | node_memory_Active_bytes | 1134488098.13333
2019-07-13 16:50:00+00 | node_load5 | 0.133333333333333
2019-07-13 16:50:00+00 | node_memory_Active_bytes | 1162440704
(16 rows)
grafana 容器运行为:
docker run \
-d \
-p 3000:3000 \
--name=grafana \
-v grafana-storage:/var/lib/grafana \
-e "GF_INSTALL_PLUGINS=grafana-kubernetes-app" \
grafana/grafana
当我启动浏览器时,http://104.XX.XX.XX:3000
我可以登录到 web-ui 并将数据源定义为 postgres,但我收到错误“度量请求错误”。
我在其容器中查找了 grafana 日志,路径/var/log/grafana
为空。这是我执行docker inspect
命令时指示的日志位置。
使用 Chrome,我可以检查控制台,它报告服务器响应内部错误 500。
在主机上,我可以确认 docker-proxy 正在侦听端口 5432。
sudo netstat -antp | grep "5432"
tcp 0 0 172.17.0.1:49486 172.17.0.2:5432 ESTABLISHED 60631/docker-proxy
tcp6 0 0 :::5432 :::* LISTEN 60631/docker-proxy
tcp6 0 0 10.0.0.4:5432 172.18.0.2:38568 ESTABLISHED 60631/docker-proxy
如何让 grafana 获取存储在 postgres 数据库中的指标?