Este tópico explica como integrar um Prometheus autogerenciado a uma instância do ASM para monitoramento de malha, usando o ack-prometheus-operator (um componente open source para clusters ACK) como exemplo.
Pré-requisitos
Um cluster ACK disponível. Para mais informações, consulte Crie um cluster ACK gerenciado.
Uma instância do ASM disponível. Para mais informações, consulte Crie uma instância do ASM. Instâncias do Prometheus e do Grafana instaladas no cluster ACK. Para mais informações, consulte Monitoramento com Prometheus open source.
Instale o ack-prometheus-operator
Este tópico usa o ack-prometheus-operator (um componente open source para clusters ACK) como exemplo. Se você instalar um Prometheus autogerenciado no cluster por outros métodos, adicione o conteúdo de additionalScrapeConfigs às configurações de coleta da instância do Prometheus. Para obter mais detalhes sobre as configurações de coleta, consulte prometheus_scrape_config.
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em .
Na página Helm, localize ack-prometheus-operator e clique em Update na coluna Actions.
-
No painel Update Release, modifique o campo
additionalScrapeConfigsna caixa de texto YAML e clique em OK.O arquivo YAML é extenso. Pressione Ctrl+F para buscar o campo
additionalScrapeConfigs. O campoadditionalScrapeConfigsmodificado deve ficar assim:additionalScrapeConfigs: # Scrape config for envoy stats - job_name: 'envoy-stats' metrics_path: /stats/prometheus kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_container_port_name] action: keep regex: '.*-envoy-prom' - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] action: replace regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:15090 target_label: __address__ - action: labeldrop regex: __meta_kubernetes_pod_label_(.+) - source_labels: [__meta_kubernetes_namespace] action: replace target_label: namespace - source_labels: [__meta_kubernetes_pod_name] action: replace target_label: pod_name
Gere métricas
Envie requisições aos serviços no plano de dados. Este exemplo usa a aplicação Bookinfo. Para mais informações, consulte guia de introdução. Acesse a página do produto da aplicação Bookinfo e atualize-a várias vezes para gerar métricas. Se a página exibir os detalhes do livro The Comedy of Errors, incluindo Book Details (como Type, Pages, Publisher, Language e ISBN) e Book Reviews (uma avaliação de cinco estrelas do Reviewer1 e outra de quatro estrelas do Reviewer2), a aplicação de exemplo estará funcionando corretamente e gerando métricas.
Verifique os resultados
Verifique a coleta de métricas do Envoy
Execute o comando a seguir. Se o comando retornar métricas, o Envoy está coletando dados. Uma resposta vazia indica falha na coleta.
details=$(kubectl get pod -l app=details -o jsonpath={.items..metadata.name})
kubectl exec $details -c istio-proxy -- curl -s localhost:15090/stats/prometheus |grep istio
Visualize métricas de malha no Prometheus
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em .
Na página Services, localize o serviço Prometheus e clique no respectivo External IP.
Na página Prometheus, insira
istio_requests_totalna caixa de entrada de expressão e clique em Execute. A tabela de resultados pode incluir dois registros: um comresponse_codeigual a503(valor: 1),source_appigual areviews,source_versionigual av2edestination_serviceigual aratings.bookinfo.svc.cluster.local; outro comresponse_codeigual a200(valor: 19),source_appigual areviews,source_versionigual av2,destination_appigual aratingsedestination_versionigual av1.
Visualize métricas de malha no Grafana
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em .
Na página Services, pesquise por Grafana e clique no respectivo External IP.
Na página do Grafana, selecione o Istio Workload Dashboard.
