diff --git a/scripts/backup-db.sh b/scripts/backup-db.sh new file mode 100755 index 0000000..7d4ef28 --- /dev/null +++ b/scripts/backup-db.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +set -euo pipefail + +timestamp="$(date -u +%Y%m%dT%H%M%SZ)" +backup_dir="${BACKUP_DIR:-backups}" +mkdir -p "$backup_dir" + +output_path="${backup_dir}/vortex-backup-${timestamp}.sql.gz" +pg_dump "${DATABASE_URL:?DATABASE_URL must be set}" | gzip -9 > "$output_path" + +echo "wrote ${output_path}" diff --git a/src/common/metrics.ts b/src/common/metrics.ts index 890f4df..93b0cbe 100644 --- a/src/common/metrics.ts +++ b/src/common/metrics.ts @@ -78,6 +78,10 @@ export class Histogram { /** Singleton registry — import and use from any module. */ export const MetricsRegistry = { + health: { + databaseChecksTotal: new Counter(), + sorobanRpcChecksTotal: new Counter(), + }, sweeper: { /** Total number of intents expired across all sweeps. */ expiredTotal: new Counter(), diff --git a/src/tracing.ts b/src/tracing.ts index a426a4c..686c0be 100644 --- a/src/tracing.ts +++ b/src/tracing.ts @@ -24,12 +24,18 @@ const sdk = new NodeSDK({ "@opentelemetry/instrumentation-http": { enabled: true, }, + "@opentelemetry/instrumentation-undici": { + enabled: true, + }, "@opentelemetry/instrumentation-express": { enabled: true, }, "@opentelemetry/instrumentation-nestjs-core": { enabled: true, }, + "@opentelemetry/instrumentation-pg": { + enabled: true, + }, }), ], });