我使用Postgres的TimescaleDB扩展名部署了一个Docker容器,作为Prometheus收集的指标的永久存储。这包括将Prometheus Postgres适配器部署在单独的容器中。然后我将grafana部署在第三个容器中。
在TimescaleDB容器中,我可以执行查询:
$e
并从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
grafana容器的运行方式为:
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)
当我启动浏览器访问docker run \
-d \
-p 3000:3000 \
--name=grafana \
-v grafana-storage:/var/lib/grafana \
-e "GF_INSTALL_PLUGINS=grafana-kubernetes-app" \
grafana/grafana
时,我可以登录Web-ui并将数据源定义为postgres,但是我收到了错误“度量标准请求错误”。
我在其容器中查找了grafana日志,并且路径http://104.XX.XX.XX:3000
为空。这是我执行/var/log/grafana
命令时指示的日志位置。
使用Chrome,我能够检查控制台,并且它报告服务器响应,并显示内部错误500。
在主机上,我可以确认docker-proxy正在侦听端口5432。
docker inspect
如何获取grafana以获取存储在postgres数据库中的指标?