在服務網格ASM開啟采集Prometheus監控指標后,Envoy會輸出默認的監控指標。ASM支持使用自定義Metric的功能針對性輸出監控指標,支持自定義網格級別、命名空間級別、工作負載級別的監控指標。本文介紹如何在服務網格ASM中自定義監控指標。
前提條件
已添加集群到ASM實例。具體操作,請參見添加集群到ASM實例。
背景信息
Istio會默認生成監控指標,每個監控指標包含標簽。以下介紹Istio會生成的指標:
對于HTTP、HTTP/2和GRPC流量,Istio會生成以下指標:
Request Count (istio_requests_total): This is a COUNTER incremented for every request handled by an Istio proxy. Request Duration (istio_request_duration_milliseconds): This is a DISTRIBUTION which measures the duration of requests. Request Size (istio_request_bytes): This is a DISTRIBUTION which measures HTTP request body sizes. Response Size (istio_response_bytes): This is a DISTRIBUTION which measures HTTP response body sizes. gRPC Request Message Count (istio_request_messages_total): This is a COUNTER incremented for every gRPC message sent from a client. gRPC Response Message Count (istio_response_messages_total): This is a COUNTER incremented for every gRPC message sent from a server.
對于TCP流量,Istio生成以下指標:
Tcp Bytes Sent (istio_tcp_sent_bytes_total): This is a COUNTER which measures the size of total bytes sent during response in case of a TCP connection. Tcp Bytes Received (istio_tcp_received_bytes_total): This is a COUNTER which measures the size of total bytes received during request in case of a TCP connection. Tcp Connections Opened (istio_tcp_connections_opened_total): This is a COUNTER incremented for every opened connection. Tcp Connections Closed (istio_tcp_connections_closed_total): This is a COUNTER incremented for every closed connection.
每個指標都會包含標簽,以下為每個Istio指標默認包含的標簽:
DefaultStatTags=["reporter","source_namespace","source_workload","source_workload_namespace","source_principal","source_app","source_version","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","request_host","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 | 請求的操作。 |
request_host | 請求的主機。 |
response_flags | 有關來自代理的響應或連接的其它詳細信息。 |
grpc_response_status | GRPC返回狀態。 |
connection_security_policy | 請求的服務身份驗證策略。 |
操作步驟
ASM實例版本為1.15.3.65以下
可選:開啟Prometheus監控。
說明如果您已開啟Prometheus監控,無需執行此步驟。
登錄ASM控制臺,在左側導航欄,選擇 。
在網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇 。
在基本信息頁面,單擊右上角的功能設置。
在功能設置更新面板,選中開啟采集 Prometheus 監控指標,按需選擇開啟方式,然后單擊確定。
自定義指標。
在網格管理頁面左側導航欄,選擇 ,然后單擊創建。
在創建頁面,進行相關配置,然后單擊創建。
配置項
說明
匹配標簽
配置名稱為標簽的名稱,值為應用的名稱。ASM將會根據配置的值匹配應用,自定義指標僅對該應用生效。
inboundSidecar
單擊inboundSidecar,然后單擊新增指標,配置入口流量的自定義標簽。
指標名稱:配置為空,表示對所有指標生效。
指標維度:單擊新增指標維度,配置標簽和表達式。
刪除指標緯度的標簽:配置需要刪除指標維度的標簽。
outboundSidecar
單擊outboundSidecar,然后單擊新增指標,配置出口流量的自定義標簽。
指標名稱:配置為空,表示對所有指標生效。
指標維度:單擊新增指標維度,配置標簽和表達式。
刪除指標緯度的標簽:配置需要刪除指標維度的標簽。
gateway
單擊gateway,然后單擊新增指標,配置網關的自定義標簽。
指標名稱:配置為空,表示對所有指標生效。
指標維度:單擊新增指標維度,配置標簽和表達式。
刪除指標緯度的標簽:配置需要刪除指標維度的標簽。
說明如果您只配置了inboundSidecar,沒有配置outboundSidecar和gateway,表示僅入口流量采用自定義標簽,出口流量和網關仍然使用默認的方式生成指標。
ASM實例版本為1.15.3.65及以上,1.17.2.35以下
ASM對原有的自定義Metrics頁面進行了升級,更名為監控指標,提供更便捷的UI界面,提高您的配置效率。使用此功能需要您的ASM實例版本為v1.15.3.65-g97cc18dd-aliyun及以上。關于升級實例的具體操作,請參見升級ASM實例。
登錄ASM控制臺,在左側導航欄,選擇 。
在網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇 。
在監控指標頁面,單擊指標設置頁簽,按需配置全局或自定義指標。
配置全局指標
ASM默認提供了一些全局指標,默認為開啟狀態。您可以按需選擇是否啟用相關指標,或對指標的維度進行修改。關于指標的說明,請參見指標說明。
操作
說明
開啟或關閉全局指標
開啟全局指標:單擊全局頁簽,在目標指標右側,選中CLIENT側指標或SERVER側指標列下的啟用,然后單擊保存。
關閉全局指標:單擊全局頁簽,在目標指標右側,取消選中CLIENT側指標或SERVER側指標列下的啟用,然后單擊保存。
修改指標維度
單擊全局頁簽,在目標指標右側,單擊CLIENT側指標或SERVER側指標列下的編輯維度。
在自定義CLIENT 維度配置對話框,按需選中目標維度,單擊確認,然后單擊保存。
配置自定義指標
單擊自定義頁簽,單擊創建,進行相關配置,然后在頁面下方,單擊創建。關于指標的說明,請參見指標說明。
配置項
說明
命名空間
選擇自定義監控指標生效的命名空間。
名稱
輸入自定義標簽的名稱。
工作負載選擇
單擊新增匹配標簽,配置標簽的名稱和工作負載的名稱。ASM將會根據配置項匹配應用,自定義指標僅對該應用生效。
指標設置
ASM默認提供了一些全局指標,默認為開啟狀態。您可以選擇是否啟用相關指標,或對指標的維度進行修改。
開啟或關閉全局指標:
開啟全局指標:在目標指標右側,選中CLIENT側指標或SERVER側指標列下的啟用。
關閉全局指標:在目標指標右側,取消選中CLIENT側指標或SERVER側指標列下的啟用。
修改維度:
在目標指標右側,單擊CLIENT側指標或SERVER側指標列下的編輯維度。
在自定義CLIENT 維度配置對話框,按需選中目標維度,然后單擊確認。
通過選擇器可以選擇一個命名空間內的單個工作負載的指標配置。該選擇器支持基于標簽選擇工作負載。
同一命名空間下,以下配置無效:
使用選擇器,為同一個工作負載創建多個自定義指標(Telemetry CR)。
創建多個自定義指標,但未指定選擇器。
更多信息,請參見Workload Selection。
ASM實例版本為1.17.2.35及以上
具體操作,請參見可觀測配置。
指標說明
ASM監控指標的說明如下。更多信息,請參見MetricSelector.IstioMetric。
ASM網關僅支持導出CLIENT側指標,Sidecar可以導出CLIENT側和SERVER側指標。
指標 | 說明 | 在Prometheus下對應的指標 |
ALL_METRICS | 表示所有Istio默認指標。 | - |
REQUEST_COUNT | 為HTTP、HTTP/2和GRPC流量生成的應用程序請求計數器。 | istio_requests_total |
REQUEST_DURATION | 為HTTP、HTTP/2和GRPC流量生成的請求持續時間直方圖。 | istio_request_duration_milliseconds |
REQUEST_SIZE | 為HTTP、HTTP/2和GRPC流量生成的請求Body大小的直方圖。 | istio_request_bytes |
RESPONSE_SIZE | 為HTTP、HTTP/2和GRPC流量生成的響應Body大小的直方圖。 | istio_response_bytes |
TCP_OPENED_CONNECTIONS | 在工作負載的生命周期內打開的TCP連接計數器。 | istio_tcp_connections_opened_total |
TCP_CLOSED_CONNECTIONS | 在工作負載的生命周期內關閉的TCP連接計數器。 | istio_tcp_connections_closed_total |
TCP_SENT_BYTES | 在通過TCP連接進行響應期間發送的字節計數器。 | istio_tcp_sent_bytes_total |
TCP_RECEIVED_BYTES | 通過TCP連接請求期間接收的字節數。 | istio_tcp_received_bytes_total |
GRPC_REQUEST_MESSAGES | 從客戶端發送的每條gRPC消息,計數器都會遞增。 | istio_request_messages_total |
GRPC_RESPONSE_MESSAGES | 從服務器發送的每條gRPC消息,計數器都會遞增。 | istio_response_messages_total |