Ao ativar a coleta de métricas do Prometheus para uma instância do Service Mesh (ASM), os proxies Envoy passam a emitir um conjunto padrão de métricas. O ASM permite personalizar essas métricas nos níveis de malha, Service Mesh ou Service Mesh para obter uma observabilidade mais direcionada. Este tópico descreve como personalizar métricas no Service Mesh ASM.
Pré-requisitos
Adicione o cluster à instância do ASM. Para mais informações, consulte Adicionar um cluster a uma instância do ASM.
Contexto
O Istio gera as seguintes métricas:
-
Para tráfego HTTP, HTTP/2 e gRPC, o Istio gera estas métricas:
Request Count (istio_requests_total): A COUNTER incremented for every request handled by an Istio proxy. Request Duration (istio_request_duration_milliseconds): A DISTRIBUTION that measures the duration of requests. Request Size (istio_request_bytes): A DISTRIBUTION that measures HTTP request body sizes. Response Size (istio_response_bytes): A DISTRIBUTION that measures HTTP response body sizes. gRPC Request Message Count (istio_request_messages_total): A COUNTER incremented for every gRPC message sent from a client. gRPC Response Message Count (istio_response_messages_total): A COUNTER incremented for every gRPC message sent from a server. -
Para tráfego TCP, o Istio gera estas métricas:
Tcp Bytes Sent (istio_tcp_sent_bytes_total): A COUNTER that measures the total bytes sent in TCP responses. Tcp Bytes Received (istio_tcp_received_bytes_total): A COUNTER that measures the total bytes received in TCP requests. Tcp Connections Opened (istio_tcp_connections_opened_total): A COUNTER incremented for every opened connection. Tcp Connections Closed (istio_tcp_connections_closed_total): A COUNTER incremented for every closed connection.
Cada métrica do Istio inclui os seguintes rótulos padrão:
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"]
Referência de rótulos
|
Rótulo |
Descrição |
|
reporter |
Entidade que reporta a requisição. O valor deste rótulo varia conforme o reporter:
|
|
source_workload |
Nome da workload de origem. Assume o valor |
|
source_workload_namespace |
Namespace da workload de origem. Assume o valor |
|
source_principal |
Principal do par da origem do tráfego. Este valor é coletado apenas se a autenticação de pares estiver configurada. |
|
source_app |
Aplicação de origem, identificada pelo rótulo de aplicação da workload de origem. Assume o valor |
|
source_version |
Versão da workload de origem. Assume o valor |
|
source_cluster |
Cluster da workload de origem. |
|
destination_namespace |
Namespace da workload de destino. Assume o valor |
|
destination_workload |
Nome da workload de destino. Assume o valor |
|
destination_workload_namespace |
Namespace da workload de destino. Assume o valor |
|
destination_principal |
Principal do par do destino do tráfego. Este valor é coletado apenas se a autenticação de pares estiver configurada. |
|
destination_app |
Aplicação de destino, identificada pelo rótulo de aplicação da workload de destino. Assume o valor |
|
destination_version |
Versão da workload de destino. Assume o valor |
|
destination_service |
Host do serviço de destino que processa a requisição. |
|
destination_service_name |
Nome do serviço de destino. |
|
destination_service_namespace |
Namespace do serviço de destino. |
|
destination_port |
Porta de destino. |
|
destination_cluster |
Cluster da workload de destino. |
|
request_protocol |
Protocolo da requisição. |
|
request_operation |
Operação da requisição. |
|
response_flags |
Detalhes adicionais sobre a resposta ou conexão provenientes do proxy. |
|
grpc_response_status |
Status da resposta gRPC. |
|
connection_security_policy |
Política de autenticação de serviço da requisição. |
Procedimento
Antes da v1.15.3.65
-
Opcional: Ative o monitoramento do Prometheus.
NotaSe você já ativou o monitoramento do Prometheus, pule esta etapa.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique em nome da instância do ASM. No painel de navegação à esquerda, escolha .
Na página Basic Information, clique em Settings no canto superior direito.
No painel Settings Update, selecione Enable Prometheus monitoring, escolha uma opção conforme necessário e clique em OK.
-
Personalize as métricas.
No painel de navegação à esquerda, escolha e clique em Create.
-
Na página Create, configure os parâmetros e clique em Create.
Parâmetro
Descrição
Match Label
Defina Name como o nome do rótulo e Value como o nome da aplicação. As métricas personalizadas se aplicam apenas às aplicações que correspondem a este rótulo.
inboundSidecar
Clique em inboundSidecar e depois em Add Metrics para configurar rótulos personalizados para o tráfego de entrada.
-
Metric Name: Deixe em branco para aplicar a configuração a todas as métricas.
-
Metric Dimension: Clique em Add Dimension para configurar uma Tag e uma Expression.
-
Tags_to_remove: Especifique os rótulos de dimensão a remover.
outboundSidecar
Clique em outboundSidecar e depois em Add Metrics para configurar rótulos personalizados para o tráfego de saída.
-
Metric Name: Deixe em branco para aplicar a configuração a todas as métricas.
-
Metric Dimension: Clique em Add Dimension para configurar uma Tag e uma Expression.
-
Tags_to_remove: Especifique os rótulos de dimensão a remover.
gateway
Clique em gateway e depois em Add Metrics para configurar rótulos personalizados para o gateway.
-
Metric Name: Deixe em branco para aplicar a configuração a todas as métricas.
-
Metric Dimension: Clique em Add Dimension para configurar uma Tag e uma Expression.
-
Tags_to_remove: Especifique os rótulos de dimensão a remover.
NotaSe você configurar apenas inboundSidecar e não configurar outboundSidecar e gateway, os rótulos personalizados se aplicarão somente ao tráfego de entrada. Métricas padrão serão geradas para o tráfego de saída e de gateway.
-
Da v1.15.3.65 à v1.17.2.35
O ASM substituiu a página Customized Metrics pela página Monitoring metrics. A nova interface simplifica a configuração. Para usar este recurso, sua instância do ASM deve ser v1.15.3.65-g97cc18dd-aliyun ou posterior. Para saber como atualizar uma instância, consulte Atualizar uma instância do ASM.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique em nome da instância do ASM. No painel de navegação à esquerda, escolha .
-
Na página Monitoring metrics, clique na aba Metric setting para configurar métricas Global ou custom conforme necessário.
-
Configurar métricas globais
O ASM fornece um conjunto de métricas globais padrão, habilitadas por padrão. Você pode ativar ou desativar métricas relacionadas ou modificar suas dimensões conforme necessário. Para mais informações sobre as métricas, consulte Referência de métricas.
Ações
Descrição
Ativar ou desativar métricas globais
-
Para ativar uma métrica global: Clique na aba Global. Localize a métrica desejada e marque a caixa de seleção Enabled na coluna client-side metric ou server-side metric, e então clique em preserve.
-
Para desativar uma métrica global: Clique na aba Global. Localize a métrica desejada e desmarque a caixa de seleção Enabled na coluna client-side metric ou server-side metric, e então clique em preserve.
Modificar dimensões de métricas
-
Clique na aba Global. Localize a métrica desejada e clique em Edit dimension na coluna client-side metric ou server-side metric.
-
Na caixa de diálogo Customize CLIENT dimension configuration, selecione as dimensões desejadas, clique em Confirm e depois em preserve.
As métricas globais incluem
ALL_METRICS,REQUEST_COUNT,REQUEST_DURATION,REQUEST_SIZEeRESPONSE_SIZE. Dimensões removidas, comosource_appesource_version, aparecem nas linhas das métricas correspondentes. -
-
Configurar métricas personalizadas
Clique na aba custom e em Create. Configure os parâmetros e clique em Create na parte inferior da página. Para mais informações sobre as métricas, consulte Referência de métricas.
Parâmetro
Descrição
Namespaces
Selecione o namespace onde a métrica personalizada se aplica.
Name
Insira um nome para a configuração da métrica personalizada.
Workload selection
Clique em Add Matching Label para configurar o nome do rótulo e o nome da workload. O ASM identifica as aplicações com base nessa configuração, e as métricas personalizadas se aplicam apenas à aplicação correspondente.
Metric setting
O ASM fornece um conjunto de métricas globais padrão, habilitadas por padrão. É possível ativar ou desativar métricas relacionadas ou modificar suas dimensões.
-
Ativar ou desativar métricas globais:
-
Para ativar uma métrica global: Localize a métrica desejada e marque a caixa de seleção Enabled na coluna client-side metric ou server-side metric.
-
Para desativar uma métrica global: Localize a métrica desejada e desmarque a caixa de seleção Enabled na coluna client-side metric ou server-side metric.
-
-
Modificar dimensões:
-
Localize a métrica desejada e clique em Edit dimension na coluna client-side metric ou server-side metric.
-
Na caixa de diálogo Customize CLIENT dimension configuration, selecione as dimensões desejadas e clique em Confirm.
-
-
-
É possível usar um seletor para configurar métricas para uma workload específica em um namespace. O seletor permite escolher workloads com base em seus rótulos.
-
As seguintes configurações são inválidas no mesmo namespace:
Uso de um seletor para criar múltiplas métricas personalizadas (Telemetry CRs) para a mesma workload.
Criação de múltiplas métricas personalizadas sem especificar um seletor.
Para mais informações, consulte Seleção de workload.
v1.17.2.35 e posteriores
Para mais informações, consulte Configurar definições de observabilidade.
Referência de métricas
A tabela a seguir descreve as métricas no ASM. Para mais informações, consulte MetricSelector.IstioMetric.
Os gateways do ASM exportam apenas métricas do lado do cliente. Os sidecars podem exportar métricas tanto do lado do cliente quanto do lado do servidor.
|
Métrica |
Descrição |
Métrica do Prometheus |
|
ALL_METRICS |
Representa todas as métricas padrão do Istio. |
- |
|
REQUEST_COUNT |
Contador de requisições de aplicação para tráfego HTTP, HTTP/2 e gRPC. |
|
|
REQUEST_DURATION |
Histograma da duração das requisições para tráfego HTTP, HTTP/2 e gRPC. |
|
|
REQUEST_SIZE |
Histograma dos tamanhos de corpo de requisição para tráfego HTTP, HTTP/2 e gRPC. |
|
|
RESPONSE_SIZE |
Histograma dos tamanhos de corpo de resposta para tráfego HTTP, HTTP/2 e gRPC. |
|
|
TCP_OPENED_CONNECTIONS |
Contador de conexões TCP abertas durante o ciclo de vida de uma workload. |
|
|
TCP_CLOSED_CONNECTIONS |
Contador de conexões TCP fechadas durante o ciclo de vida de uma workload. |
|
|
TCP_SENT_BYTES |
Contador de bytes enviados durante respostas em uma conexão TCP. |
|
|
TCP_RECEIVED_BYTES |
Contador de bytes recebidos durante requisições em uma conexão TCP. |
|
|
GRPC_REQUEST_MESSAGES |
Contador incrementado para cada mensagem gRPC enviada por um cliente. |
|
|
GRPC_RESPONSE_MESSAGES |
Contador incrementado para cada mensagem gRPC enviada por um servidor. |
|