既存の PostgreSQL とのインテグレーション
このセクションでは、ClickStack OTel collector に PostgreSQL レシーバーを設定し、既存の PostgreSQL 環境から ClickStack にメトリクスを送信する方法を説明します。
既存の環境を構成する前に PostgreSQL メトリクスのインテグレーションを試したい場合は、次のセクションにある事前設定済みのデモデータセットでテストできます。
前提条件
- ClickStack インスタンスが稼働していること
- PostgreSQL がインストール済みであること (バージョン 9.6 以降)
- ClickStack から PostgreSQL へネットワーク接続できること (デフォルトポート 5432)
- 適切な権限を持つ PostgreSQL の監視ユーザー
監視ユーザーに必要な権限があることを確認する
PostgreSQL レシーバーでは、統計ビューへの読み取り権限を持つユーザーが必要です。監視ユーザーに pg_monitor ロールを付与してください。
GRANT pg_monitor TO your_monitoring_user;カスタム OTel collector 設定を作成する
ClickStack では、カスタム設定ファイルをマウントし、環境変数を設定することで、ベースの OpenTelemetry collector 設定を拡張できます。
postgres-metrics.yaml を作成します。
receivers:
postgresql:
endpoint: postgres-host:5432
transport: tcp
username: otel_monitor
password: ${env:POSTGRES_PASSWORD}
databases:
- postgres
- your_application_db # 実際のデータベース名に置き換えてください
collection_interval: 30s
tls:
insecure: true
processors:
resourcedetection:
detectors: [env, system, docker]
timeout: 5s
batch:
timeout: 10s
send_batch_size: 10000
exporters:
clickhouse:
endpoint: tcp://localhost:9000
database: default
ttl: 96h
service:
pipelines:
metrics/postgres:
receivers: [postgresql]
processors: [resourcedetection, batch]
exporters: [clickhouse]カスタム設定で ClickStack をデプロイする
カスタム設定をマウントします。
docker run -d \
--name clickstack-postgres \
-p 8123:8123 -p 9000:9000 -p 4317:4317 -p 4318:4318 \
-e HYPERDX_API_KEY=your-api-key \
-e CLICKHOUSE_PASSWORD=your-clickhouse-password \
-e POSTGRES_PASSWORD=secure_password_here \
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/postgres-metrics.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
clickhouse/clickstack:latestメトリクス収集を確認する
設定後、HyperDX にログインして、メトリクスが取り込まれていることを確認します。
- Metrics explorer に移動します
postgresql.で始まるメトリクスを検索します (例:postgresql.backends、postgresql.commits)- 設定した収集間隔でメトリクスのデータポイントが表示されるはずです
メトリクスが流れ始めたら、ダッシュボードと可視化 セクションに進み、あらかじめ用意されたダッシュボードをインポートしてください。
デモデータセット
本番システムを構成する前に PostgreSQL メトリクスのインテグレーションを試したい方向けに、実際の PostgreSQL メトリクスの傾向を再現した、事前生成済みのデモデータセットを提供しています。
サンプルのメトリクスデータセットをダウンロードする
事前生成済みのメトリクスファイルをダウンロードします (実際の傾向を再現した 24 時間分の PostgreSQL メトリクス) :
# Gauge メトリクスをダウンロード(connections、database size)
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/postgres/postgres-metrics-gauge.csv
# sum メトリクスをダウンロード(commits、rollbacks、operations)
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/postgres/postgres-metrics-sum.csvこのデータセットには、以下のような実際に近いパターンが含まれています:
- 朝の接続急増 (08:00) - ログイン集中
- cache パフォーマンスの問題 (11:00) - Blocks_read が急増
- アプリケーションのバグ (14:00-14:30) - rollback 率が 15% まで急上昇
- deadlock の発生 (14:15、16:30) - まれに発生する deadlock
ClickStack を起動する
ClickStack インスタンスを起動します:
docker run -d --name clickstack-postgres-demo \
-p 8080:8080 -p 4317:4317 -p 4318:4318 \
clickhouse/clickstack-all-in-one:latestClickStack が完全に起動するまで約 30 秒待ちます。
メトリクスを ClickStack に読み込む
メトリクスを ClickHouse に直接読み込みます:
# Gauge メトリクスを読み込む
cat postgres-metrics-gauge.csv | docker exec -i clickstack-postgres-demo \
clickhouse-client --query "INSERT INTO otel_metrics_gauge FORMAT CSVWithNames"
# sum メトリクスを読み込む
cat postgres-metrics-sum.csv | docker exec -i clickstack-postgres-demo \
clickhouse-client --query "INSERT INTO otel_metrics_sum FORMAT CSVWithNames"HyperDX でメトリクスを確認する
読み込み後、メトリクスをすばやく確認するには、あらかじめ用意されたダッシュボードを使うのが最も簡単です。
ダッシュボードと可視化 セクションに進み、ダッシュボードをインポートして、多くの PostgreSQL メトリクスを一度に確認してください。
ダッシュボードと可視化
ClickStack で PostgreSQL の監視を始める際に役立つよう、PostgreSQL のメトリクス向けの基本的な可視化を用意しています。
ダッシュボード設定をダウンロードする
あらかじめ用意されたダッシュボードをインポートする
- HyperDX を開き、Dashboards セクションに移動します
- 右上の三点メニュー内にある Import Dashboard をクリックします

postgres-metrics-dashboard.jsonファイルをアップロードし、Finish Import をクリックします

ダッシュボードを表示する
ダッシュボードは、すべての可視化が事前設定された状態で作成されます。

トラブルシューティング
カスタム設定が読み込まれない
環境変数が設定されていることを確認してください:
docker exec <container-name> printenv CUSTOM_OTELCOL_CONFIG_FILEカスタム設定ファイルがマウントされていることを確認してください。
docker exec <container-name> cat /etc/otelcol-contrib/custom.config.yamlHyperDX にメトリクスが表示されない
PostgreSQL にアクセスできることを確認してください。
docker exec <clickstack-container> psql -h postgres-host -U otel_monitor -d postgres -c "SELECT 1"OTel collectorのログを確認します。
docker exec <container> cat /etc/otel/supervisor-data/agent.log | grep -i postgres認証エラー
パスワードが正しく設定されているか確認してください:
docker exec <clickstack-container> printenv POSTGRES_PASSWORD認証情報を直接テストする:
psql -h postgres-host -U otel_monitor -d postgres -c "SELECT version();"次のステップ
- 重要な閾値 (接続数の上限、ロールバック率の高さ、キャッシュヒット率の低さ) に対するアラートを設定します
pg_stat_statements拡張機能でクエリレベルの監視を有効にします- 異なる endpoint と service name を使用して receiver の設定を複製し、複数の PostgreSQL インスタンスを監視します
本番環境への移行
このガイドでは、素早くセットアップできるよう、ClickStack に組み込まれている OpenTelemetry Collector を拡張して利用します。本番環境でデプロイする場合は、独自の OTel Collector を実行し、ClickStack の OTLP エンドポイントにデータを送信することを推奨します。本番環境向けの構成については、OpenTelemetry データの送信 を参照してください。