1
0
mirror of https://github.com/pavel-v-sobolev/pg_probackup_exporter.git synced 2026-06-18 21:35:20 +02:00

minio storage support

This commit is contained in:
ilya.povyshev
2025-11-21 10:04:10 +03:00
parent 9b3723eeb0
commit 42743ea8a0
2 changed files with 11 additions and 1 deletions
+3
View File
@@ -17,6 +17,8 @@ It exports pg_probackup metrics as a web service in prometheus format.
PG_PROBACKUP_EXPORTER_PORT = '9899'
3) path to backup folder e.g.
PG_PROBACKUP_PATH = '/mnt/backup'
4) path to minio config (optionally)
PG_PROBACKUP_S3_MINIO_CONFIG = '/etc/pg_probackup/s3.config'
Metrics are available under _http://your_host:port/metrics_<br />
@@ -29,6 +31,7 @@ User=postgres
Group=postgres
Environment=PG_PROBACKUP_COMMAND='/usr/bin/pg_probackup-17'
Environment=PG_PROBACKUP_PATH='/mnt/backup'
Environment=PG_PROBACKUP_S3_MINIO_CONFIG='/etc/pg_probackup/s3.config'
ExecStart=/usr/bin/python3 /usr/local/bin/pg_probackup_exporter.py
KillMode=control-group
TimeoutSec=5
+8 -1
View File
@@ -15,7 +15,8 @@ To use this program, you need to set 3 environment vars:
PG_PROBACKUP_EXPORTER_PORT = '9899'
3) path to backup folder e.g.
PG_PROBACKUP_PATH = '/mnt/backup'
4) path to S3 configuration file (optionally)
PG_PROBACKUP_S3_MINIO_CONFIG = '/etc/pg_probackup/s3.config'
Metrics are available under http://your_host:port/metrics
"""
@@ -34,6 +35,8 @@ cmd = os.environ.get('PG_PROBACKUP_COMMAND')
backup_path = os.environ.get('PG_PROBACKUP_PATH')
minio_config_path = os.environ.get('PG_PROBACKUP_S3_MINIO_CONFIG')
if cmd is None:
print('ERROR: Need PG_PROBACKUP_COMMAND environment varible')
sys.exit()
@@ -73,6 +76,8 @@ def metrics_folder():
# call pg_probackup_command
show_cmd = f"""{cmd} show --backup-path="{backup_path}" --format=json"""
if minio_config_path:
show_cmd = f"{show_cmd} --s3=minio --s3-config-file={minio_config_path}"
cmd_result = os.popen(show_cmd).read()
try:
@@ -93,6 +98,8 @@ def metrics_folder():
instance = d['instance']
config_cmd = f"""{cmd} show-config --backup-path="{backup_path}" --format=json --instance={instance}"""
if minio_config_path:
config_cmd = f"{config_cmd} --s3=minio --s3-config-file={minio_config_path}"
cmd_result = os.popen(config_cmd).read()
try:
config_data = json.loads(cmd_result)