#!/bin/bash set -e # Construct DATABASE_URL from individual vars if not set directly if [[ -z "${DATABASE_URL}" ]]; then if [[ -z "${PG_USER}" || -z "${PG_PASSWORD}" || -z "${PG_HOST}" || -z "${PG_DBNAME}" ]]; then echo "ERROR: DATABASE_URL not set and one of PG_USER/PG_PASSWORD/PG_HOST/PG_DBNAME missing" exit 1 fi export DATABASE_URL="postgresql://${PG_USER}:${PG_PASSWORD}@${PG_HOST}:${PG_PORT:-5432}/${PG_DBNAME}?sslmode=${PG_SSLMODE:-disable}" echo "Constructed DATABASE_URL: ${DATABASE_URL}" fi # Strip single quotes from defaults (Alpine bash keeps them) adapter_send_timeout=$(echo "${adapter_send_timeout:-'30s'}" | tr -d "'") web_listen_address=$(echo "${web_listen_address:-':9201'}" | tr -d "'") web_telemetry_path=$(echo "${web_telemetry_path:-'/metrics'}" | tr -d "'") log_level=$(echo "${log_level:-'info'}" | tr -d "'") log_format=$(echo "${log_format:-'logfmt'}" | tr -d "'") pg_partition=$(echo "${pg_partition:-'hourly'}" | tr -d "'") pg_commit_secs=${pg_commit_secs:-30} pg_commit_rows=${pg_commit_rows:-20000} pg_threads="${pg_threads:-1}" parser_threads="${parser_threads:-5}" echo "/usr/local/bin/postgresql-prometheus-adapter \ --adapter-send-timeout=${adapter_send_timeout} \ --web-listen-address=${web_listen_address} \ --web-telemetry-path=${web_telemetry_path} \ --log.level=${log_level} \ --log.format=${log_format} \ --pg-partition=${pg_partition} \ --pg-commit-secs=${pg_commit_secs} \ --pg-commit-rows=${pg_commit_rows} \ --pg-threads=${pg_threads} \ --parser-threads=${parser_threads}" /usr/local/bin/postgresql-prometheus-adapter \ --adapter-send-timeout=${adapter_send_timeout} \ --web-listen-address=${web_listen_address} \ --web-telemetry-path=${web_telemetry_path} \ --log.level=${log_level} \ --log.format=${log_format} \ --pg-partition=${pg_partition} \ --pg-commit-secs=${pg_commit_secs} \ --pg-commit-rows=${pg_commit_rows} \ --pg-threads=${pg_threads} \ --parser-threads=${parser_threads}