オブザーバビリティ
組み込みの監視ツール
ClickHouse BYOC は、さまざまなユースケースに対応する複数のアプローチを提供しています。
オブザーバビリティダッシュボード
ClickHouse Cloud には、メモリ使用量、クエリレート、I/O などのメトリクスを表示する高度なオブザーバビリティダッシュボードが用意されています。ClickHouse Cloud の Web コンソールの Monitoring セクションからアクセスできます。
高度なダッシュボード
system.metrics、system.events、system.asynchronous_metrics などのシステムテーブルからメトリクスを取得してダッシュボードをカスタマイズすることで、サーバーのパフォーマンスやリソース使用状況を詳細に監視できます。
BYOC Prometheus スタックへのアクセス
ClickHouse BYOC は、Prometheus スタックを Kubernetes クラスター上にデプロイします。そこからメトリクスへアクセスしてスクレイプし、お使いの監視スタックと統合できます。
プライベートロードバランサーを有効化し、URL を取得するには ClickHouse サポートにお問い合わせください。この URL はプライベートネットワーク経由でのみアクセス可能であり、認証をサポートしていない点に注意してください。
サンプル URL
https://prometheus-internal.<subdomain>.<region>.aws.clickhouse-byoc.com/query
Prometheus 連携
代わりに、上記セクションの Prometheus スタック連携を使用してください。ClickHouse Server のメトリクスに加え、K8S メトリクスやその他のサービスのメトリクスも取得できます。
ClickHouse Cloud は、監視用にメトリクスをスクレイプできる Prometheus エンドポイントを提供します。これにより、Grafana や Datadog などのツールと連携して可視化できます。
https エンドポイント /metrics_all を利用したリクエスト例
curl --user <username>:<password> https://i6ro4qarho.mhp0y4dmph.us-west-2.aws.byoc.clickhouse.cloud:8443/metrics_all
サンプルレスポンス
# HELP ClickHouse_CustomMetric_StorageSystemTablesS3DiskBytes systemデータベースのディスク`s3disk`に格納されているバイト数
# TYPE ClickHouse_CustomMetric_StorageSystemTablesS3DiskBytes gauge
ClickHouse_CustomMetric_StorageSystemTablesS3DiskBytes{hostname="c-jet-ax-16-server-43d5baj-0"} 62660929
# HELP ClickHouse_CustomMetric_NumberOfBrokenDetachedParts 破損したデタッチ済みパーツの数
# TYPE ClickHouse_CustomMetric_NumberOfBrokenDetachedParts gauge
ClickHouse_CustomMetric_NumberOfBrokenDetachedParts{hostname="c-jet-ax-16-server-43d5baj-0"} 0
# HELP ClickHouse_CustomMetric_LostPartCount 最も古いミューテーションの経過時間(秒)
# TYPE ClickHouse_CustomMetric_LostPartCount gauge
ClickHouse_CustomMetric_LostPartCount{hostname="c-jet-ax-16-server-43d5baj-0"} 0
# HELP ClickHouse_CustomMetric_NumberOfWarnings サーバーが発行した警告の数。通常、設定ミスの可能性を示す
# TYPE ClickHouse_CustomMetric_NumberOfWarnings gauge
ClickHouse_CustomMetric_NumberOfWarnings{hostname="c-jet-ax-16-server-43d5baj-0"} 2
# HELP ClickHouseErrorMetric_FILE_DOESNT_EXIST FILE_DOESNT_EXIST
# TYPE ClickHouseErrorMetric_FILE_DOESNT_EXIST counter
ClickHouseErrorMetric_FILE_DOESNT_EXIST{hostname="c-jet-ax-16-server-43d5baj-0",table="system.errors"} 1
# HELP ClickHouseErrorMetric_UNKNOWN_ACCESS_TYPE UNKNOWN_ACCESS_TYPE
# TYPE ClickHouseErrorMetric_UNKNOWN_ACCESS_TYPE counter
ClickHouseErrorMetric_UNKNOWN_ACCESS_TYPE{hostname="c-jet-ax-16-server-43d5baj-0",table="system.errors"} 8
# HELP ClickHouse_CustomMetric_TotalNumberOfErrors 最後の再起動以降のサーバーエラーの総数
# TYPE ClickHouse_CustomMetric_TotalNumberOfErrors gauge
ClickHouse_CustomMetric_TotalNumberOfErrors{hostname="c-jet-ax-16-server-43d5baj-0"} 9
認証
認証には ClickHouse のユーザー名とパスワードの組み合わせを使用できます。メトリクスのスクレイプ専用で、必要最小限の権限のみを持つユーザーを作成することを推奨します。少なくとも、すべてのレプリカに対する system.custom_metrics テーブルへの READ 権限が必要です。例:
GRANT REMOTE ON *.* TO scrapping_user;
GRANT SELECT ON system._custom_metrics_dictionary_custom_metrics_tables TO scrapping_user;
GRANT SELECT ON system._custom_metrics_dictionary_database_replicated_recovery_time TO scrapping_user;
GRANT SELECT ON system._custom_metrics_dictionary_failed_mutations TO scrapping_user;
GRANT SELECT ON system._custom_metrics_dictionary_group TO scrapping_user;
GRANT SELECT ON system._custom_metrics_dictionary_shared_catalog_recovery_time TO scrapping_user;
GRANT SELECT ON system._custom_metrics_dictionary_table_read_only_duration_seconds TO scrapping_user;
GRANT SELECT ON system._custom_metrics_view_error_metrics TO scrapping_user;
GRANT SELECT ON system._custom_metrics_view_histograms TO scrapping_user;
GRANT SELECT ON system._custom_metrics_view_metrics_and_events TO scrapping_user;
GRANT SELECT(description, metric, value) ON system.asynchronous_metrics TO scrapping_user;
GRANT SELECT ON system.custom_metrics TO scrapping_user;
GRANT SELECT(name, value) ON system.errors TO scrapping_user;
GRANT SELECT(description, event, value) ON system.events TO scrapping_user;
GRANT SELECT(description, labels, metric, value) ON system.histogram_metrics TO scrapping_user;
GRANT SELECT(description, metric, value) ON system.metrics TO scrapping_user;
Prometheus の設定
以下に設定例を示します。targets エンドポイントは、ClickHouse サービスにアクセスする際に使用するものと同じです。
global:
scrape_interval: 15s
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "clickhouse"
static_configs:
- targets: ["<subdomain1>.<subdomain2>.aws.byoc.clickhouse.cloud:8443"]
scheme: https
metrics_path: "/metrics_all"
basic_auth:
username: <KEY_ID>
password: <KEY_SECRET>
honor_labels: true
こちらのブログ記事およびClickHouse 向け Prometheus セットアップドキュメントもあわせてご覧ください。