Introdução à Observabilidade do Istio Usando o Prometheus
Malha de serviços Istio abstrai a rede dos níveis de aplicação usando proxies de sidecar. Você pode implementar políticas de segurança e de rede avançada para toda a comunicação em sua infraestrutura usando o Istio.
Mas outra característica importante do Istio é a observabilidade. Você pode usar o Istio para observar o desempenho e o comportamento de todos os seus microsserviços em sua infraestrutura (veja a imagem abaixo). Uma das principais responsabilidades dos engenheiros de confiabilidade do site (SREs) em grandes organizações é monitorar as métricas douradas de suas aplicações, como utilização de CPU, utilização de memória, latência e throughput.
Neste artigo, discutiremos como os SREs podem se beneficiar da integração de três software de código aberto – Istio, Prometheus e Grafana. Enquanto Istio é o software de serviço mais famoso, Prometheus é o software de monitoramento mais amplamente utilizado, e Grafana é a ferramenta de visualização mais famosa.
Nota: Os passos foram testados para o Istio 1.17.X
Assista ao Vídeo de Configuração do Istio, Prometheus e Grafana
Assista ao vídeo se quiser seguir os passos a partir do vídeo:
Passo 1: Acesse os Add-Ons do Istio e Aplique o Arquivo YAML do Prometheus e Grafana
Primeiro, acesse a pasta de add-ons no diretório do Istio usando o comando. Como estou usando o 1.17.1, o caminho para mim é istio-1.17.1/samples/addons
Você notará que o Istio já fornece alguns arquivos YAML para configurar o Grafana, Prometheus, Jaeger, Kiali, etc. Você pode configurar o Prometheus usando o seguinte comando:
kubectl apply -f prometheus.yaml
kubectl apply -f grafana.yaml
Note que esses add-ons YAML são aplicados ao namespace istio-system
por padrão.

Passo 2: Implantar Novo Serviço e Encaminhar Portas do Gateway de Ingress do Istio
Para experimentar o modelo de trabalho, implantaremos o serviço httpbin
em um namespace habilitado para Istio. Criaremos um objeto do gateway de ingresso do Istio para receber o tráfego para o serviço do público.
Também encaminharemos as portas do gateway de ingresso do Istio para uma porta específica – 7777.

Você deve ver a tela abaixo em localhost:7777

Passo 3: Abrir o Painel do Prometheus e Grafana
Você pode abrir o painel do Prometheus usando o seguinte comando.
istioctl dashboard prometheus
istioctl dashboard grafana
Ambos o Grafana e o Prometheus serão abertos no localhost.

Passo 4: Fazer Requisições HTTP do Postman
Veremos como o serviço httpbin
está consumindo CPU ou memória quando há carga de tráfego. Criaremos algumas requisições GET
e POST
para localhost:7777
a partir do aplicativo Postman.

Uma vez que você GET
ou POST
solicitações ao serviço httpbin
várias vezes, haverá utilização de recursos, e podemos ver isso no Grafana. Mas, primeiro, precisamos configurar as métricas para o serviço httpbin
no Prometheus e Grafana.
Passo 5: Configurando Métricas no Prometheus
Pode-se selecionar uma variedade de métricas relacionadas a quaisquer recursos do Kubernetes, como servidor de API, aplicativos, cargas de trabalho, envoy, etc. Vamos selecionar container_memory_working_set_bytes
métricas para nossa configuração.
No aplicativo Prometheus, selecionaremos o namespace para raspar as métricas usando o seguinte termo de pesquisa: container_memory_working_set_bytes { namespace= "istio-telemetry"}
(istio-telemetry
é o nome do nosso namespace habilitado para Istio, onde o serviço httpbin
está implantado)
Observe que, ao executar isso, obtemos a memória para o nosso namespace. Como queremos analisar o uso de memória de nossos pods, podemos calcular a memória total consumida somando o uso de memória de cada pod agrupado por pod. A seguinte consulta nos ajudará a obter o resultado desejado: sum(container_memory_working_set_bytes{namespace="istio-telemetry"}) by (pod)

Nota: O Prometheus oferece muita flexibilidade para filtrar, dividir e ditar os dados das métricas. A ideia central deste artigo foi mostrar a capacidade do Istio de emitir e enviar métricas para o Prometheus para coleta
Passo 6: Configurando Gráficos de Métricas do Istio no Grafana
Agora, você pode simplesmente usar a consulta sum(container_memory_working_set_bytes{namespace="istio-telemetry"}) by (pod)
no Prometheus e plotar um gráfico com o tempo. Tudo o que você precisa fazer é criar um novo dashboard no Grafana e colar a consulta no navegador de métricas. O Grafana irá plotar um gráfico de séries temporais. Você pode editar o gráfico com nomes, legendas e títulos apropriados para compartilhar com outros interessados na equipe de Operações.

Existem várias maneiras de ajustar e personalizar os dados e representar as métricas do Prometheus no Grafana. Você pode optar por fazer todas as personalizações com base nas necessidades da sua empresa. Fiz alguns experimentos no vídeo; sinta-se à vontade para verificá-lo.
Conclusão
O Istio service mesh é extremamente poderoso em fornecer observabilidade geral em toda a infraestrutura. Neste artigo, oferecemos apenas um pequeno caso de uso de raspagem e visualização de métricas usando Istio, Prometheus e Grafana. Você pode realizar o log e rastreamento de logs e tráfego em tempo real usando o Istio; abordaremos esses tópicos em nossos próximos blogs.
Source:
https://dzone.com/articles/how-to-configure-istio-prometheus-and-grafana-for-monitoring