diff --git a/README.md b/README.md index 1367672..3890def 100644 --- a/README.md +++ b/README.md @@ -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_
@@ -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 diff --git a/pg_probackup_exporter.py b/pg_probackup_exporter.py index 47d1fc7..cb83327 100644 --- a/pg_probackup_exporter.py +++ b/pg_probackup_exporter.py @@ -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)