Service Mesh ASM インスタンスで Prometheus メトリック収集を有効にすると、その Envoy プロキシはデフォルトのメトリックセットの出力を開始します。ASM では、メッシュ、Service Mesh、または Service Mesh レベルでこれらのメトリックをカスタマイズして、よりターゲットを絞った可観測性を実現できます。このトピックでは、Service MeshASM でメトリックをカスタマイズする方法について説明します。
前提条件
クラスターが ASM インスタンスに追加されていること。詳細については、「ASM インスタンスへのクラスターの追加」をご参照ください。
背景情報
Istio は次のメトリックを生成します:
-
HTTP、HTTP/2、および gRPC トラフィックの場合、Istio は次のメトリックを生成します:
リクエスト数 (istio_requests_total): Istio プロキシによって処理されるすべてのリクエストに対してインクリメントされるカウンター。 リクエスト期間 (istio_request_duration_milliseconds): リクエストの期間を測定するディストリビューション。 リクエストサイズ (istio_request_bytes): HTTP リクエストボディのサイズを測定するディストリビューション。 レスポンスサイズ (istio_response_bytes): HTTP レスポンスボディのサイズを測定するディストリビューション。 gRPC リクエストメッセージ数 (istio_request_messages_total): クライアントから送信されるすべての gRPC メッセージに対してインクリメントされるカウンター。 gRPC レスポンスメッセージ数 (istio_response_messages_total): サーバーから送信されるすべての gRPC メッセージに対してインクリメントされるカウンター。 -
TCP トラフィックの場合、Istio は次のメトリックを生成します:
TCP 送信バイト数 (istio_tcp_sent_bytes_total): TCP レスポンスで送信された合計バイト数を測定するカウンター。 TCP 受信バイト数 (istio_tcp_received_bytes_total): TCP リクエストで受信された合計バイト数を測定するカウンター。 TCP オープン接続数 (istio_tcp_connections_opened_total): オープンされたすべての接続に対してインクリメントされるカウンター。 TCP クローズ接続数 (istio_tcp_connections_closed_total): クローズされたすべての接続に対してインクリメントされるカウンター。
各 Istio メトリックには、次のデフォルトのラベルが含まれています:
DefaultStatTags=["reporter","source_namespace","source_workload","source_workload_namespace","source_principal","source_app","source_version","source_cluster","destination_namespace","destination_principal","destination_app","destination_version","destination_service","destination_service_name","destination_service_namespace","destination_port","destination_cluster","request_protocol","request_operation","response_flags","grpc_response_status","connection_security_policy","source_canonical_service","destination_canonical_service","source_canonical_revision","destination_canonical_revision"]
ラベルリファレンス
|
ラベル |
説明 |
|
reporter |
リクエストをレポートするエンティティ。このラベルの値は、レポーターによって異なります:
|
|
source_workload |
ソースワークロードの名前。値が収集できない場合は、デフォルトで |
|
source_workload_namespace |
ソースワークロードの名前空間。値が収集できない場合は、デフォルトで |
|
source_principal |
トラフィックソースのピアプリンシパル。この値は、ピア認証が設定されている場合にのみ収集されます。 |
|
source_app |
ソースワークロードのアプリケーションラベルによって識別されるソースアプリケーション。値が収集できない場合は、デフォルトで |
|
source_version |
ソースワークロードのバージョン。値が収集できない場合は、デフォルトで |
|
source_cluster |
ソースワークロードのクラスター。 |
|
destination_namespace |
宛先ワークロードの名前空間。値が収集できない場合は、デフォルトで |
|
destination_workload |
宛先ワークロードの名前。値が収集できない場合は、デフォルトで |
|
destination_workload_namespace |
宛先ワークロードの名前空間。値が収集できない場合は、デフォルトで |
|
destination_principal |
トラフィックの宛先のピアプリンシパル。この値は、ピア認証が設定されている場合にのみ収集されます。 |
|
destination_app |
宛先ワークロードのアプリケーションラベルによって識別される宛先アプリケーション。値が収集できない場合は、デフォルトで |
|
destination_version |
宛先ワークロードのバージョン。値が収集できない場合は、デフォルトで |
|
destination_service |
リクエストを処理する宛先サービスのホスト。 |
|
destination_service_name |
宛先サービスの名前。 |
|
destination_service_namespace |
宛先サービスの名前空間。 |
|
destination_port |
宛先ポート。 |
|
destination_cluster |
宛先ワークロードのクラスター。 |
|
request_protocol |
リクエストのプロトコル。 |
|
request_operation |
リクエストの操作。 |
|
response_flags |
プロキシからのレスポンスまたは接続に関する追加の詳細。 |
|
grpc_response_status |
gRPC レスポンスのステータス。 |
|
connection_security_policy |
リクエストのサービス認証ポリシー。 |
操作手順
v1.15.3.65 以前
-
任意: Prometheus モニタリングを有効にします。
説明すでに Prometheus モニタリングを有効にしている場合は、このステップをスキップしてください。
-
ASM コンソールにログインします。左側のナビゲーションウィンドウで、を選択します。
-
[メッシュ管理] ページで ASM インスタンスの名前をクリックし、左側のナビゲーションウィンドウで を選択します。
-
Basic Information ページで、右上隅にある Settings をクリックします。
-
Settings Update パネルで、[Prometheus モニタリングの有効化] を選択し、必要に応じてオプションを選択して、OK をクリックします。
-
-
メトリックをカスタマイズします。
-
左側のナビゲーションウィンドウで、を選択し、Create をクリックします。
-
Create ページで、パラメーターを設定し、Create をクリックします。
パラメーター
説明
Match Label
Name にラベル名を、Value にアプリケーション名を設定します。 カスタムメトリックは、このラベルに一致するアプリケーションにのみ適用されます。
inboundSidecar
[inboundSidecar] をクリックし、次に Add Metrics をクリックしてインバウンドトラフィックのカスタムラベルを設定します。
-
Metric Name: すべてのメトリックに構成を適用する場合は、空白のままにします。
-
Metric Dimension: Add Dimension をクリックして、Tag と Expression を設定します。
-
Tags_to_remove: 削除するディメンションラベルを指定します。
outboundSidecar
[アウトバウンドサイドカー] をクリックし、次に Add Metrics をクリックして、アウトバウンドトラフィックのカスタムラベルを設定します。
-
Metric Name: 空白のままにすると、構成がすべてのメトリックに適用されます。
-
Metric Dimension:Add Dimension をクリックして、Tag と Expression を設定します。
-
Tags_to_remove: 削除するディメンションラベルを指定します。
gateway
[ゲートウェイ] をクリックし、次に Add Metrics をクリックして、ゲートウェイのカスタムラベルを設定します。
-
Metric Name:空白のままにすると、すべてのメトリックに構成が適用されます。
-
Metric Dimension: Add Dimension をクリックして、Tag と Expression を設定します。
-
Tags_to_remove:削除するディメンションラベルを指定します。
説明[inboundSidecar] のみ設定し、[outboundSidecar] と [gateway] を設定しない場合、カスタムラベルはインバウンドトラフィックにのみ適用されます。デフォルトメトリックは、アウトバウンドトラフィックとゲートウェイトラフィックに対して生成されます。
-
-
v1.15.3.65 から v1.17.2.35
ASM は Customized Metrics ページを Monitoring metrics ページに置き換えました。新しい UI では構成が簡素化されています。この機能を使用するには、ASM インスタンスが v1.15.3.65-g97cc18dd-aliyun 以降である必要があります。インスタンスをスペックアップする方法については、「ASM インスタンスをスペックアップする」をご参照ください。
-
ASM コンソールにログインします。左側のナビゲーションウィンドウで、を選択します。
-
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
-
Monitoring metrics ページで、Metric setting タブをクリックして、必要に応じて Global または custom メトリックを設定します。
-
グローバルメトリックの設定
ASM は、デフォルトで有効になっている一連のデフォルトのグローバルメトリックを提供します。必要に応じて、関連するメトリックを有効または無効にしたり、そのディメンションを変更したりできます。メトリックの詳細については、「メトリックリファレンス」をご参照ください。
アクション
説明
グローバルメトリックの有効化または無効化
-
グローバルメトリックを有効にするには、Global タブをクリックします。対象のメトリックを探し、[クライアント側メトリック] または [サーバー側メトリック] 列で Enabled チェックボックスを選択してから、preserve をクリックします。
-
グローバルメトリックを無効にするには、Global タブをクリックして対象のメトリックを探し、[クライアント側のメトリック] または [サーバー側のメトリック] 列の Enabled チェックボックスの選択を解除してから、preserve をクリックします。
メトリックディメンションの変更
-
Global タブをクリックします。対象のメトリックを見つけ、[クライアント側メトリック] または [サーバー側メトリック] 列で Edit dimension をクリックします。
-
Customize CLIENT dimension configuration ダイアログボックスで、対象のディメンションを選択して Confirm をクリックし、次に preserve をクリックします。
グローバルメトリックには、
ALL_METRICS、REQUEST_COUNT、REQUEST_DURATION、REQUEST_SIZE、およびRESPONSE_SIZEが含まれます。削除されたディメンション (例:source_app、source_version) は、対応するメトリック行に表示されます。 -
-
カスタムメトリックの設定
custom タブをクリックし、Create をクリックします。パラメーターを設定し、ページ下部にある Create をクリックします。メトリックの詳細については、「メトリックリファレンス」をご参照ください。
パラメーター
説明
Namespaces
カスタムメトリックが適用される名前空間を選択します。
Name
カスタムメトリック設定の名前を入力します。
Workload selection
Add Matching Label をクリックして、ラベル名とワークロード名を設定します。 ASM はこの構成に基づいてアプリケーションを照合し、カスタムメトリックは照合されたアプリケーションにのみ適用されます。
Metric setting
ASM は、デフォルトで有効になっている一連のデフォルトのグローバルメトリックを提供します。関連するメトリックを有効または無効にしたり、そのディメンションを変更したりできます。
-
グローバルメトリックの有効化または無効化:
-
グローバルメトリックを有効にするには、対象のメトリックを見つけ、[クライアント側メトリック] または [サーバー側メトリック] 列にある Enabled チェックボックスを選択します。
-
グローバルメトリックを無効にするには、対象のメトリックを探し、[クライアント側のメトリック] または [サーバー側のメトリック] 列の Enabledチェックボックスの選択を解除します。
-
-
ディメンションの変更:
-
対象のメトリックを見つけ、[クライアント側メトリック] または [サーバー側メトリック] 列で Edit dimension をクリックします。
-
Customize CLIENT dimension configuration ダイアログボックスで、対象のディメンションを選択し、Confirm をクリックします。
-
-
-
-
セレクターを使用して、名前空間内の特定のワークロードのメトリックを設定できます。セレクターを使用すると、ラベルに基づいてワークロードを選択できます。
-
同じ名前空間では、次の設定は無効です:
-
セレクターを使用して、同じワークロードに対して複数のカスタムメトリック (Telemetry CR) を作成する。
-
セレクターを指定せずに複数のカスタムメトリックを作成する。
-
詳細については、「Workload selection」をご参照ください。
v1.17.2.35 以降
詳細については、「可観測性設定の構成」をご参照ください。
メトリックリファレンス
次の表に、ASM のメトリックについて説明します。詳細については、「MetricSelector.IstioMetric」をご参照ください。
ASM ゲートウェイはクライアント側のメトリックのみをエクスポートします。サイドカーは、クライアント側とサーバー側の両方のメトリックをエクスポートできます。
|
メトリック |
説明 |
Prometheus メトリック |
|
ALL_METRICS |
すべてのデフォルト Istio メトリックを表します。 |
- |
REQUEST_COUNT |
HTTP、HTTP/2、および gRPC トラフィック用のアプリケーションリクエストカウンターです。 |
|
REQUEST_DURATION |
HTTP、HTTP/2、gRPC トラフィックのリクエスト持続時間を示すヒストグラムです。 |
|
リクエストサイズ |
HTTP、HTTP/2、および gRPC トラフィックにおけるリクエストボディサイズのヒストグラムです。 |
|
RESPONSE_SIZE |
HTTP、HTTP/2、および gRPC トラフィックにおけるレスポンスボディサイズのヒストグラム。 |
|
TCP_OPENED_CONNECTIONS |
ワークロードのライフタイムにわたってオープンされた TCP 接続のカウンターです。 |
|
TCP_CLOSED_CONNECTIONS |
ワークロードのライフタイムにわたってクローズされた TCP 接続のカウンターです。 |
|
TCP_SENT_BYTES |
TCP 接続上の応答で送信されたバイト数のカウンターです。 |
|
TCP_RECEIVED_BYTES |
TCP 接続を介したリクエストで受信したバイトのカウンターです。 |
|
GRPC_REQUEST_MESSAGES |
クライアントが gRPC メッセージを送信するたびにインクリメントされるカウンターです。 |
|
GRPC_RESPONSE_MESSAGES |
サーバーが送信する gRPC メッセージごとにインクリメントされるカウンター。 |
|