OpenTelemetry integration#
モニタリング情報とトレースを OpenTelemetry コレクターに報告するようにEDB Postgres分散を構成できます。
EDB Postgres分散OTELコレクターは、いくつかのリソース属性を埋めます。これらはすべてのメトリックとトレースにアタッチされます。
service.nameは、bdr.otel_service_name構成設定で構成できます。 -service.namespaceは常にedb_postgres_distributedに設定されます。 -service.instance.idは、常にPostgresインスタンスのシステム識別子に設定されます。 -service.versionは、PostgresqlインスタンスにロードされたBDR拡張機能の現在のバージョンに設定されます。
OTELとOLTPの互換性#
OTEL接続の場合、統合は、HTTPまたはHTTPSを介してOLTP/HTTPバージョン1.0.0のみをサポートします。 OLTP/gRPCはサポートされていません。
メトリック収集#
構成オプションbdr.metrics_otel_http_url
を空以外のURLに設定すると、メトリック収集が有効になります。
以下の表に示すように、さまざまな種類のメトリックが収集されます。
汎用メトリック#
Metric name |
Type |
Labels |
Description |
|---|---|---|---|
pg_backends_by_state |
gauge |
conn_state - idle, active, idle in transaction, fastpath functioncall, idle in transaction (aborted), disabled, undefined |
特定の状態のバックエンドの数 |
pg_oldest_xact_start |
gauge |
最も古いトランザクション開始時刻 |
|
pg_oldest_activity_start |
gauge |
最も古いクエリ開始時刻 |
|
pg_waiting_backends |
gauge |
wait_type - LWLock, Lock, BufferPin, Activity, Client, Extension, IPC, Timeout, IO, ??? (for unknown) |
待機タイプ別の現在待機しているバックエンドの数 |
pg_start_time |
gauge |
サーバーが起動したタイムスタンプ |
|
pg_reload_time |
gauge |
サーバーが最後に構成をリロードしたタイムスタンプ |
レプリケーションメトリック#
Metric name |
Type |
Labels |
Description |
|---|---|---|---|
bdr_slot_sent_lag |
gauge |
slot_name - name of a slot |
各レプリケーションスロットの現在の送信遅延バイト単位 |
bdr_slot_write_lag |
gauge |
slot_name - name of a slot |
各レプリケーションスロットの現在のバイト単位の書き込み遅延 |
bdr_slot_flush_lag |
gauge |
slot_name - name of a slot |
各レプリケーションスロットのバイト単位の現在のフラッシュラグ |
bdr_slot_apply_lag |
gauge |
slot_name - name of a slot |
各レプリケーションスロットのバイト単位の現在の適用ラグ |
bdr_subscription_receive_lsn |
gauge |
sub_name - name of subscription |
各サブスクリプションの現在受信したLSN |
bdr_subscription_flush_lsn |
gauge |
sub_name - name of subscription |
各サブスクリプションの現在フラッシュされたLSN |
bdr_subscription_apply_lsn |
gauge |
sub_name - name of subscription |
各サブスクリプションに現在適用されているLSN |
bdr_subscription_receiver |
gauge |
sub_name - name of subscription |
サブスクリプションレシーバーが現在実行されているかどうか1かどうか0 |
コンセンサスメトリック#
Metric name |
Type |
Labels |
Description |
|---|---|---|---|
bdr_raft_state |
gauge |
state_str - RAFT_FOLLOWER, RAFT_CANDIDATE, RAFT_LEADER, RAFT_STOPPED |
このノードのコンセンサスのRaft状態 |
bdr_raft_protocol_version |
gauge |
このノードで使用されるコンセンサスプロトコルバージョン |
|
bdr_raft_leader_node |
gauge |
このノードが現在のリーダーと見なすノードのID |
|
bdr_raft_nodes |
gauge |
コンセンサスに参加するノードの合計数学習者/非投票ノードを含む |
|
bdr_raft_voting_nodes |
gauge |
コンセンサスにおける実際の投票ノードの数 |
|
bdr_raft_term |
gauge |
このノードが存在する現在のraft |
|
bdr_raft_commit_index |
gauge |
このノードによってコミットされたRaftコミットインデックス |
|
bdr_raft_apply_index |
gauge |
このノードによって適用されるRaftコミットインデックス |
トレース#
OpenTelemetryへのトレース収集には、bdr.trace_otel_http_url
を構成し、bdr.trace_enable
を使用してトレースを有効にする必要があります。
トレースは、現時点では一部のサブシステム、主にクラスター管理機能に制限されています。トレースには次のスパンが表示されます。
Span name |
Description |
|---|---|
create_node_group |
グループの作成 |
alter_node_group_config |
グループ構成オプションの変更 |
alter_node_config |
ノード構成オプションの変更 |
join_node_group |
グループに参加するノード |
join_send_remote_request |
参加ノードに代わって参加要求を送信する参加ソース |
add_camo_pair |
CAMOペアを追加 |
alter_camo_pair |
CAMOペアを変更する |
remove_camo_pair |
CAMOペアの削除 |
alter_commit_scope |
コミットスコープ定義の変更新規作成または既存の更新のいずれか |
alter_proxy_config |
PGD-プロキシインスタンスの構成を変更します新規作成または既存の更新のいずれか |
walmsg_global_lock_send |
グローバルロックWALメッセージを送信する |
walmsg_global_lock_recv |
受信したグローバルロックWALメッセージ |
ddl_epoch_apply |
グローバルロックエポック適用新しいエポックを開始するためにクラスターが十分に同期していることを確認します |
walmsg_catchup |
ノードの削除中のキャッチアップ WALメッセージ |
raft_send_appendentries |
内部Raftブックキーピングメッセージ |
raft_recv_appendentries |
内部Raftブックキーピングメッセージ |
raft_request |
Raftリクエストの実行 |
raft_query |
Raftクエリーの実行 |
msgb_send |
コンセンサスメッセージングレイヤーメッセージ |
msgb_recv_receive |
コンセンサスメッセージングレイヤーメッセージ |
msgb_recv_deliver |
コンセンサスメッセージングレイヤーのメッセージ配信 |
preprocess_ddl |
DDLコマンドの前処理 |
TLSサポート#
メトリックとトレースエンドポイントは、HTTPまたはHTTPSです。
bdr.otel_https_ca_path 、bdr.otel_https_key_path
、およびbdr.otel_https_cert_path
構成オプションを使用して、CAバンドル、クライアントキー、およびクライアント証明書へのパスを構成できます。