Introdução à Observabilidade do Istio Usando Prometheus
Malha de serviços Istio abstrai a rede das camadas de aplicação usando proxies de lado. Você pode implementar políticas de segurança e redes avançadas em 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 softwares 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 você deseja seguir os passos a partir do vídeo:
Passo 1: Vá para os Add-Ons do Istio e Aplique o Arquivo YAML do Prometheus e Grafana
Primeiro, vá para a pasta de add-ons no diretório do Istio usando o comando. Já que 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
Observe que esses arquivos YAML de complemento são aplicados ao namespace istio-system
por padrão.

Passo 2: Implantar Novo Serviço e Encaminhar Portas do Gateway de Entrada 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 entrada do Istio para receber o tráfego para o serviço do público.
Também encaminharemos as portas do gateway de entrada do Istio para uma porta específica – 7777.

Você deve ver a seguinte tela em localhost:7777

Passo 3: Abrir o Painel do Prometheus e do 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 pelo Postman
Veremos como o serviço httpbin
está consumindo CPU ou memória quando há uma carga de tráfego. Criaremos algumas requisições GET
e POST
para o 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, que podemos ver no Grafana. Mas, inicialmente, 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 dividir 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 facilmente 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érie temporal. Você pode editar o gráfico com nomes, legendas e títulos apropriados para compartilhar com outras partes interessadas da 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 em suas necessidades empresariais. 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, apresentamos apenas um pequeno caso de uso de raspagem e visualização de métricas usando Istio, Prometheus e Grafana. Você pode realizar o registro de logs 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