
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Prometheus exporter for pgBackRest。
指标基于pgbackrest info --output json命令的结果收集。默认情况下,会为该命令返回的所有备份集(stanza)收集指标。你可以指定需要收集指标的备份集。需在安装了pgBackRest的主机上或Docker容器内运行exporter。
如需可视化收集的指标,可使用现成的仪表盘https://grafana.com/grafana/dashboards/***-pgbackrest-exporter-dashboard/%E6%88%96%E8%87%AA%E8%A1%8C%E5%88%9B%E5%BB%BA%E3%80%82
| 指标 | 描述 | 标签 | 补充说明 |
|---|---|---|---|
pgbackrest_stanza_backup_compete_bytes | 进行中备份的已完成大小 | stanza | |
pgbackrest_stanza_backup_total_bytes | 进行中备份的总大小 | stanza | |
pgbackrest_stanza_lock_status | 当前备份集锁定状态 | stanza | 取值说明:0 - 无备份集活动操作,1 - 备份集正在运行以下命令之一:backup、expire或stanza-*。 |
pgbackrest_stanza_status | 当前备份集状态 | stanza | 取值说明:0 - 正常,1 - 备份集路径不存在,2 - 无有效备份,3 - 备份集数据缺失,4 - 仓库间不一致,5 - 仓库间数据库不匹配,6 - 请求的备份不存在,99 - 其他。 |
| 指标 | 描述 | 标签 | 补充说明 |
|---|---|---|---|
pgbackrest_repo_status | 当前仓库状态 | cipher, repo_key, stanza | 取值说明:0 - 正常,1 - 备份集路径不存在,2 - 无有效备份,3 - 备份集数据缺失,4 - 仓库间不一致,5 - 仓库间数据库不匹配,6 - 请求的备份不存在,99 - 其他 |
| 指标 | 描述 | 标签 | 补充说明 |
|---|---|---|---|
pgbackrest_backup_annotations | 备份中的注释数量 | backup_name, backup_type, database_id, block_incr, repo_key, stanza | |
pgbackrest_backup_databases | 备份中的数据库数量 | backup_name, backup_type, block_incr, database_id, repo_key, stanza | |
pgbackrest_backup_references | 引用其他备份的数量(备份引用列表) | backup_name, backup_type, block_incr, database_id, ref_backup, repo_key, stanza | |
pgbackrest_backup_duration_seconds | 备份持续时间(秒) | backup_name, backup_type, block_incr, database_id, repo_key, stanza, start_time, stop_time | |
pgbackrest_backup_error_status | 备份错误状态 | backup_name, backup_type, block_incr, database_id, repo_key, stanza | 取值说明:0 - 备份无页面校验和错误,1 - 备份包含一个或多个页面校验和错误。需手动运行命令(如pgbackrest info --stanza stanza --set backup_name --repo repo_key)查看错误列表。 |
pgbackrest_backup_info | 备份信息 | backrest_ver, backup_name, backup_type, block_incr, database_id, lsn_start, lsn_stop, pg_version, prior, repo_key, stanza, wal_start, wal_stop | 取值说明:1 - 备份信息存在。 |
pgbackrest_backup_delta_bytes | 实际需备份的数据库数据量 | backup_name, backup_type, block_incr, database_id, repo_key, stanza | |
pgbackrest_backup_size_bytes | 数据库的完整未压缩大小 | backup_name, backup_type, block_incr, database_id, repo_key, stanza | |
pgbackrest_backup_repo_delta_bytes | 备份中压缩文件的大小 | backup_name, backup_type, block_incr, database_id, repo_key, stanza | |
pgbackrest_backup_repo_size_bytes | 从备份恢复数据库所需的完整压缩文件大小 | backup_name, backup_type, block_incr, database_id, repo_key, stanza | |
pgbackrest_backup_repo_delta_map_bytes | 块增量差异映射的大小 | backup_name, backup_type, block_incr, database_id, repo_key, stanza | |
pgbackrest_backup_repo_size_map_bytes | 块增量映射的大小 | backup_name, backup_type, block_incr, database_id, repo_key, stanza |
| 指标 | 描述 | 标签 | 补充说明 |
|---|---|---|---|
pgbackrest_backup_since_last_completion_seconds | 距离最近一次完整、差异或增量备份完成的秒数 | backup_type, block_incr, stanza | |
pgbackrest_backup_last_annotations | 最近一次完整、差异或增量备份中的注释数量 | backup_type, block_incr, stanza | |
pgbackrest_backup_last_databases | 最近一次完整、差异或增量备份中的数据库数量 | backup_type, block_incr, stanza | |
pgbackrest_backup_last_references | 最近一次完整、差异或增量备份引用其他备份的数量 | backup_type, block_incr, ref_backup, stanza | |
pgbackrest_backup_last_duration_seconds | 最近一次完整、差异或增量备份的持续时间(秒) | backup_type, block_incr, stanza | |
pgbackrest_backup_last_error_status | 最近一次完整、差异或增量备份的错误状态 | backup_type, block_incr, stanza | |
pgbackrest_backup_last_delta_bytes | 最近一次完整、差异或增量备份中实际需备份的数据库数据量 | backup_type, block_incr, stanza | |
pgbackrest_backup_last_size_bytes | 最近一次完整、差异或增量备份中数据库的完整未压缩大小 | backup_type, block_incr, stanza | |
pgbackrest_backup_last_repo_delta_bytes | 最近一次完整、差异或增量备份中压缩文件的大小 | backup_type, block_incr, stanza | |
pgbackrest_backup_last_repo_size_bytes | 从最近一次完整、差异或增量备份恢复数据库所需的完整压缩文件大小 | backup_type, block_incr, stanza | |
pgbackrest_backup_last_repo_size_map_bytes | 最近一次完整、差异或增量备份中块增量映射的大小 | backup_type, block_incr, stanza | |
pgbackrest_backup_last_repo_delta_map_bytes | 最近一次完整、差异或增量备份中块增量差异映射的大小 | backup_type, block_incr, stanza |
| 指标 | 描述 | 标签 | 补充说明 |
|---|---|---|---|
pgbackrest_wal_archive_status | 当前WAL归档状态 | database_id, pg_version, repo_key, stanza, wal_max, wal_min | 取值说明:0 - WALMin或WALMax为空,无有效WAL归档信息,1 - WALMin和WALMax均非空,有有效WAL归档信息。 |
| 指标 | 描述 | 标签 | 补充说明 |
|---|---|---|---|
pgbackrest_exporter_build_info | pgBackRest Exporter构建信息 | branch, goarch, goos, goversion, revision, tags, version | |
pgbackrest_exporter_status | pgBackRest Exporter数据获取状态 | stanza | 取值说明:0 - 从pgBackRest获取信息时出错,1 - 成功从pgBackRest获取信息。 |
对于差异备份(backup_type="diff")的pgbackrest_*_last_*指标,应用以下逻辑:
对于增量备份(backup_type="incr")的pgbackrest_*_last_*指标,应用以下逻辑:
对于pgbackrest_exporter_status指标,应用以下逻辑:
stanza标签值为all-stanzas;若pgbackrest_stanza_lock_status指标为1,表示备份集正在运行以下命令之一:backup、expire或stanza-*,极有可能是backup/expire。
对于pgBackRest >= v2.48,可判断是否有备份正在运行:
pgbackrest_stanza_backup_compete_bytes和pgbackrest_stanza_backup_total_bytes指标非0且pgbackrest_stanza_lock_status指标为1,则有备份正在运行;0且pgbackrest_stanza_lock_status指标为1,则备份集正在运行expire或stanza-*命令,极有可能是expire。收集的指标数量可能因pgBackRest版本而异。不同版本下,部分指标可能无法收集或标签值无意义:
pgBackRest < v2.48
以下指标恒为0:
pgbackrest_stanza_backup_compete_bytes,pgbackrest_stanza_backup_total_bytes。pgBackRest >= v2.45
pgbackrest_backup_repo_size_bytes指标对于块增量备份的值为0。
pgBackRest < v2.44
以下指标恒为0:
pgbackrest_backup_repo_size_map_bytes,pgbackrest_backup_repo_delta_map_bytes。pgbackrest_backup_*指标的block_incr标签值为"n"。
pgBackRest < v2.41
以下指标恒为0:
pgbackrest_backup_databases,pgbackrest_backup_last_databases,pgbackrest_backup_annotations,pgbackrest_backup_last_annotations。pgBackRest < v2.38
pgbackrest_backup_info指标的lsn_start和lsn_stop标签值为"-"。
pgBackRest < v2.36
以下指标恒为0:
pgbackrest_backup_error_status。pgBackRest < v2.32
以下指标恒为0:
pgbackrest_repo_status。所有指标的repo_key标签值为"0"。
bashgit clone https://github.com/woblerr/pgbackrest_exporter.git cd pgbackrest_exporter make build ./pgbackrest_exporter <flags>
可用配置参数:
bash./pgbackrest_exporter --help usage: pgbackrest_exporter [<flags>] Flags: -h, --[no-]help 显示上下文相关帮助(也可尝试 --help-long 和 --help-man)。 --web.telemetry-path="/metrics" 暴露指标的路径。 --web.listen-address=:9854 ... 暴露指标和Web界面的地址。可重复指定多个地址。示例:`:9100` 或 `[::1]:9100`(HTTP),`vsock://:9100`(vsock) --web.config.file="" 启用TLS或认证的配置文件路径。详见: https://github.com/prometheus/exporter-toolkit/blob/master/docs/web-configuration.md --collect.interval=600 指标收集间隔(秒)。 --backrest.config="" pgBackRest配置文件的完整路径。 --backrest.config-include-path="" 额外pgBackRest配置文件的完整路径。 --backrest.stanza-include="" ... 指定收集指标的备份集。可多次指定。 --backrest.stanza-exclude="" ... 指定排除收集指标的备份集。可多次指定。 --backrest.backup-type="" 指定收集指标的备份类型。可选值:[full, incr, diff]。 --[no-]backrest.database-count 暴露备份中的数据库数量。 --backrest.database-parallel-processes=1 收集数据库信息的并行进程数。 --[no-]backrest.database-count-latest 暴露最近备份中的数据库数量。 --[no-]backrest.reference-count 暴露引用其他备份的数量(备份引用列表)。 --[no-]backrest.verbose-wal 为WAL指标暴露额外标签。 --log.level=info 仅记录指定级别及以上的日志。可选值:[debug, info, warn, error] --log.format=logfmt 日志输出格式。可选值:[logfmt, json] --[no-]version 显示应用版本。
参数补充说明
可通过--backrest.config和--backrest.config-include-path参数指定pgBackRest的自定义配置文件和额外配置路径,需提供完整路径。例如:--backrest.config=/tmp/pgbackrest.conf和/或--backrest.config-include-path=/tmp/pgbackrest/conf.d。
通过--backrest.stanza-include参数指定收集指标的备份集,可多次指定。例如:--backrest.stanza-include=demo1 --backrest.stanza-include=demo2,此时仅为demo1和demo2备份集收集指标。
通过--backrest.stanza-exclude参数指定排除收集指标的备份集,可多次指定。例如:--backrest.stanza-exclude=demo1 --backrest.stanza-exclude=demo2,此时不为demo1和demo2备份集收集指标。若同一备份集同时指定包含和排除,则排除优先。例如:--backrest.stanza-include=demo1 --backrest.stanza-exclude=demo1,此时不为demo1备份集收集指标。
指定--backrest.verbose-wal参数后,WALMin和WALMax将作为指标标签添加,这会在每次WAL归档时创建新的时间序列。
指定--log.level=debug参数后,指标的取值和标签信息将打印到日志中。
--web.config.file参数可指定TLS和/或基本认证的配置文件路径,TLS配置和基本认证说明详见https://github.com/prometheus/exporter-toolkit/blob/v0.11.0/docs/web-configuration.md%E3%80%82
通过--backrest.backup-type参数指定收集指标的备份类型,有效值为full、incr或diff。例如:--backrest.backup-type=full,此时仅为完整备份收集指标。该参数适用于pgBackRest >= v2.38。当值为incr或diff时,所有pgbackrest_backup_last_*指标将不收集;当值为full时,指标将如同最近备份为完整备份(即差异和增量备份的指标取值与完整备份相同)。对于早期pgBackRest版本,会出现类似option 'type' not valid for command 'info'的错误。
指定--backrest.database-count参数后,将收集备份中的数据库数量信息。该参数适用于pgBackRest >= v2.41。对于早期版本,会出现类似option 'set' is currently only valid for text output的错误。对于大量备份集和备份,可能需要更多时间收集指标,每个备份集需执行pgBackRest命令获取数据。
--backrest.database-parallel-processes参数可增加收集数据库信息的并行进程数,仅在指定--backrest.database-count时有效。
默认pgBackRest版本为2.55.1,可通过参数指定其他版本。基础镜像使用[docker-pgbackrest](https://github.com
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务