prometheus - 备份和恢复 prometheus 指标
问题描述
所以,我的情况是我正在部署一个产品,我正在使用 prometheus/grafana 作为指标。可能会发生奇怪的事情,我想获得用于调查的指标。我想指导客户支持团队如何获取它们并将它们交给调查,但我无法让它发挥作用。
因此,按照这些页面:
- https://prometheus.io/docs/prometheus/latest/querying/api/#snapshot
- https://groups.google.com/g/prometheus-users/c/0ZkYVj_8X8Q
- https://devopstales.github.io/home/backup-and-retore-prometheus/
我在服务器上生成了快照,它保存在一个名为XXXXX-XXXX/XXXXX
. 我在本地复制了这个文件。
没有商品,我创建了一个像这样的 docker compose:
version: '3.8'
services:
prometheus:
image: prom/prometheus:v2.16.0
restart: always
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- ./prometheus/data:/data:rw
command:
- '--storage.tsdb.path=/data'
- '--web.enable-admin-api'
- '--config.file=/etc/prometheus/prometheus.yml'
port:
- 9090:9090
配置文件 - 没什么特别的,但它是:
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
# comment
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
- job_name: app
scrape_interval: 5s
static_configs:
- targets: ['phony-host:port']
这是一个虚拟配置,那些主机甚至不存在,只是其中的一些东西。
现在,在我复制./prometheus/data
目录中的快照文件并启动 docker(通过docker-compose
)后,我看不到任何我希望在快照中具有的指标。难道我做错了什么?配置中是否缺少某些内容?需要明确的是,我不是在复制XXX-XXX/XXXX
目录,我只是复制文件。
此外,还有一些其他评论:
- 普罗米修斯日志中没有错误;
- 我可以看到 TSDB 正在启动(一行日志);
- 我没有看到对现有快照的任何引用。
解决方案
解决了。我的错误——这是真的,文档也不是 100% 清楚的。
所以,我将快照存储在一个像{DATA}\{XXXX-XXXX}\{YYYY}
. 我的错误是我正在复制目录的内容{XXXX-XXXX}\{YYYY}
。我应该复制目录的内容{XXXX-XXXX}
。做到了,它的工作原理。
另外值得注意的是,这些指标可能需要一段时间才能可见。
推荐阅读
- javascript - 仅切换 Reactjs 中单击的菜单
- python - 如何从 msg 文件中提取数据并将它们插入(附加)到 csv 文件?
- entity-framework-core - Entity Core 和 SaveChanges 只工作一次
- python-3.x - 如何使用交叉验证和预测标签测试看不见的测试数据?
- android - 如果你想用它来保护整个应用程序(例如银行应用程序),你如何正确配置 local_auth?
- javascript - 检查 HTML 元素是否在视口中
- amp-html - amp-script:innerHTML 按原样呈现与符号转义的序列
- aspnetboilerplate - 获取 ABP .NET 核心框架中的所有父表行和所有子表行
- javascript - Javscript Math.Pow 乘法
- linux - 我们可以在 azure 管道 yaml 文件中编写用户定义函数吗?