Introdução
Organizações que estão cada vez mais adotando o Kubernetes para gerenciar seus contêineres precisam de uma solução para monitorar a saúde de seu sistema distribuído. Por esse motivo, surge o Prometheus – uma poderosa ferramenta de código aberto para monitorar aplicativos containerizados em seu espaço K8s.
Neste tutorial, você aprenderá como instalar e configurar o conjunto Prometheus para monitorar todos os pods de seu cluster DOKS, além das métricas de estado do cluster Kubernetes. Em seguida, você irá conectar o Prometheus ao Grafana para visualizar todas as métricas e realizar consultas usando a linguagem PromQL. Por fim, você irá configurar armazenamento persistente para sua instância do Prometheus, para persistir todos os dados de métricas do cluster DOKS e dos aplicativos.
Índice
- Pré-requisitos
- Passo 1 – Instalando o Conjunto Prometheus
- Passo 2 – Configurar o Prometheus e o Grafana
- Passo 3 – PromQL (Linguagem de Consulta do Prometheus)
- Passo 4 – Visualizando Métricas Usando o Grafana
- Passo 5 – Configurando Armazenamento Persistente para o Prometheus
- Passo 6 – Configurando Armazenamento Persistente para o Grafana
- Conclusão
Pré-requisitos
Para completar este tutorial, você precisará de:
- A Git client to clone the Starter Kit repository.
- Helm para gerenciar lançamentos e atualizações do stack do Prometheus.
- Kubectl para interação com o Kubernetes.
- Curl para testar os exemplos (aplicações back-end).
- Aplicativo de Exemplo Emojivoto implantado no cluster. Por favor, siga as etapas no README do repositório.
Por favor, certifique-se de que o contexto do kubectl
está configurado para apontar para o seu cluster Kubernetes. Consulte o Passo 3 – Criando o Cluster DOKS do tutorial de configuração do DOKS.
Passo 1 – Instalando o Conjunto Prometheus
Neste passo, você irá instalar o conjunto kube-prometheus
, que é um conjunto completo de monitoramento para Kubernetes. Ele inclui o Operador Prometheus, kube-state-metrics
, manifestos pré-construídos, Exportadores de Nó, API de Métricas, Gerenciador de Alertas e Grafana.
Você vai utilizar o gerenciador de pacotes Helm para realizar esta tarefa. O gráfico Helm está disponível aqui para estudo.
Primeiramente, clone o repositório Starter Kit e altere o diretório para sua cópia local.
Em seguida, adicione o repositório Helm e liste os gráficos disponíveis:
A saída se parece com o seguinte:
NAME CHART VERSION APP VERSION DESCRIPTION
prometheus-community/alertmanager 0.18.1 v0.23.0 The Alertmanager handles alerts sent by client ...
prometheus-community/kube-prometheus-stack 35.5.1 0.56.3 kube-prometheus-stack collects Kubernetes manif...
...
O gráfico de interesse é prometheus-community/kube-prometheus-stack
que irá instalar Prometheus, Promtail, Alertmanager e Grafana no cluster. Por favor, visite a página kube-prometheus-stack para mais detalhes sobre este gráfico.
Em seguida, abra e inspecione o arquivo 04-setup-observability/assets/manifests/prom-stack-values-v35.5.1.yaml
fornecido no repositório do Starter Kit usando um editor de sua escolha (preferencialmente com suporte a lint YAML). Por padrão, as métricas kubeSched
e etcd
estão desativadas – esses componentes são gerenciados pelo DOKS
e não são acessíveis ao Prometheus. Note que o armazenamento está configurado como emptyDir
. Isso significa que o armazenamento será perdido se os pods do Prometheus reiniciarem (você corrigirá isso posteriormente na seção Configurando Armazenamento Persistente para o Prometheus).
[OPCIONAL] Se você seguiu – Passo 4 – Adicionando um nó dedicado para observabilidade do guia Configurando um Cluster Kubernetes Gerenciado pela DigitalOcean, você precisará editar o arquivo 04-setup-observability/assets/manifests/prom-stack-values-v35.5.1.yaml
fornecido no repositório do Starter Kit e descomentar as seções de affinity
tanto para Grafana quanto para Prometheus.
Explicações para a configuração acima:
preferredDuringSchedulingIgnoredDuringExecution
– o escalonador tenta encontrar um nó que atenda à regra. Se um nó correspondente não estiver disponível, o escalonador ainda agenda o Pod.preference.matchExpressions
– seletor usado para corresponder a um nó específico com base em um critério. O exemplo acima indica ao escalonador para colocar cargas de trabalho (por exemplo, Pods) em nós rotulados usando a chave –preferred
e valor –observability
.
Por fim, instale o kube-prometheus-stack
, usando Helm
:
A specific version of the Helm chart is used. In this case 35.5.1
was picked, which maps to the 0.56.3
version of the application (see output from Step 2.). It’s a good practice to lock on a specific version. This helps to have predictable results and allows versioning control via Git.
–create-namespace \
Agora, verifique o status do lançamento do Helm da pilha Prometheus:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
kube-prom-stack monitoring 1 2022-06-07 09:52:53.795003 +0300 EEST deployed kube-prometheus-stack-35.5.1 0.56.3
A saída se parece com o seguinte. Observe o valor da coluna STATUS
– deve dizer deployed
.
Veja quais recursos do Kubernetes estão disponíveis para o Prometheus:
NAME READY STATUS RESTARTS AGE
pod/alertmanager-kube-prom-stack-kube-prome-alertmanager-0 2/2 Running 0 3m3s
pod/kube-prom-stack-grafana-8457cd64c4-ct5wn 2/2 Running 0 3m5s
pod/kube-prom-stack-kube-prome-operator-6f8b64b6f-7hkn7 1/1 Running 0 3m5s
pod/kube-prom-stack-kube-state-metrics-5f46fffbc8-mdgfs 1/1 Running 0 3m5s
pod/kube-prom-stack-prometheus-node-exporter-gcb8s 1/1 Running 0 3m5s
pod/kube-prom-stack-prometheus-node-exporter-kc5wz 1/1 Running 0 3m5s
pod/kube-prom-stack-prometheus-node-exporter-qn92d 1/1 Running 0 3m5s
pod/prometheus-kube-prom-stack-kube-prome-prometheus-0 2/2 Running 0 3m3s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/alertmanager-operated ClusterIP None <none> 9093/TCP,9094/TCP,9094/UDP 3m3s
service/kube-prom-stack-grafana ClusterIP 10.245.147.83 <none> 80/TCP 3m5s
service/kube-prom-stack-kube-prome-alertmanager ClusterIP 10.245.187.117 <none> 9093/TCP 3m5s
service/kube-prom-stack-kube-prome-operator ClusterIP 10.245.79.95 <none> 443/TCP 3m5s
service/kube-prom-stack-kube-prome-prometheus ClusterIP 10.245.86.189 <none> 9090/TCP 3m5s
service/kube-prom-stack-kube-state-metrics ClusterIP 10.245.119.83 <none> 8080/TCP 3m5s
service/kube-prom-stack-prometheus-node-exporter ClusterIP 10.245.47.175 <none> 9100/TCP 3m5s
service/prometheus-operated ClusterIP None <none> 9090/TCP 3m3s
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/kube-prom-stack-prometheus-node-exporter 3 3 3 3 3 <none> 3m5s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/kube-prom-stack-grafana 1/1 1 1 3m5s
deployment.apps/kube-prom-stack-kube-prome-operator 1/1 1 1 3m5s
deployment.apps/kube-prom-stack-kube-state-metrics 1/1 1 1 3m5s
NAME DESIRED CURRENT READY AGE
replicaset.apps/kube-prom-stack-grafana-8457cd64c4 1 1 1 3m5s
replicaset.apps/kube-prom-stack-kube-prome-operator-6f8b64b6f 1 1 1 3m5s
replicaset.apps/kube-prom-stack-kube-state-metrics-5f46fffbc8 1 1 1 3m5s
NAME READY AGE
statefulset.apps/alertmanager-kube-prom-stack-kube-prome-alertmanager 1/1 3m3s
statefulset.apps/prometheus-kube-prom-stack-kube-prome-prometheus 1/1 3m3s
Você deve ter os seguintes recursos implantados: prometheus-node-exporter
, kube-prome-operator
, kube-prome-alertmanager
, kube-prom-stack-grafana
e kube-state-metrics
. A saída se parece com:
Em seguida, você pode se conectar ao Grafana (usando credenciais padrão: admin/prom-operator
– veja o arquivo prom-stack-values-v35.5.1), encaminhando a porta para a máquina local:
Você NÃO deve expor o Grafana para a rede pública (por exemplo, criando um mapeamento de ingresso ou serviço de balanceamento de carga) com login/senha padrão
.
A instalação do Grafana vem com vários painéis. Abra um navegador da web em localhost:3000. Uma vez dentro, você pode ir para Painéis -> Navegar e escolher diferentes painéis.
Na próxima parte, você descobrirá como configurar o Prometheus para descobrir alvos para monitoramento. Como exemplo, será utilizada a aplicação de exemplo Emojivoto
. Você aprenderá também o que é um ServiceMonitor
.
Passo 2 – Configurar Prometheus e Grafana
Você já implantou o Prometheus e o Grafana no cluster. Neste passo, você aprenderá como usar um ServiceMonitor
. Um ServiceMonitor é uma das maneiras preferidas de dizer ao Prometheus como descobrir um novo alvo para monitoramento.
A Implantação Emojivoto criada no Passo 5 da seção Pré-requisitos fornece o endpoint /metrics
por padrão na porta 8801
via um serviço Kubernetes.
Em seguida, você descobrirá os serviços Emojivoto responsáveis por expor dados de métricas para o Prometheus consumir. Os serviços em questão são chamados de emoji-svc
e voting-svc
(observe que está usando o namespace emojivoto
):
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
emoji-svc ClusterIP 10.245.135.93 <none> 8080/TCP,8801/TCP 22h
voting-svc ClusterIP 10.245.164.222 <none> 8080/TCP,8801/TCP 22h
web-svc ClusterIP 10.245.61.229 <none> 80/TCP 22h
A saída se parece com o seguinte:
Em seguida, execute um port-forward
para inspecionar as métricas:
As métricas expostas podem ser visualizadas navegando com um navegador da web para localhost ou via curl:
A saída se parece com o seguinte:
go_gc_duration_seconds{quantile="0"} 5.317e-05
go_gc_duration_seconds{quantile="0.25"} 0.000105305
go_gc_duration_seconds{quantile="0.5"} 0.000138168
go_gc_duration_seconds{quantile="0.75"} 0.000225651
go_gc_duration_seconds{quantile="1"} 0.016986437
go_gc_duration_seconds_sum 0.607979843
go_gc_duration_seconds_count 2097
# TYPE go_gc_duration_seconds summary
Para inspecionar as métricas para o serviço voting-svc
, pare o encaminhamento de porta do emoji-svc
e execute as mesmas etapas para o segundo serviço.
- Em seguida, conecte o Prometheus ao serviço de métricas Emojivoto. Existem várias maneiras de fazer isso:
- <static_config> – permite especificar uma lista de alvos e um conjunto de rótulos comuns para eles.
- <kubernetes_sd_config> – permite recuperar alvos de raspagem da API REST do Kubernetes e sempre permanecer sincronizado com o estado do cluster.
Prometheus Operator – simplifica o monitoramento do Prometheus dentro de um cluster Kubernetes via CRDs.
Em seguida, você usará o CRD ServiceMonitor
exposto pelo Prometheus Operator para definir um novo alvo para monitoramento.
Primeiro, mude o diretório (se ainda não estiver) onde o repositório Git do Starter Kit foi clonado:
Em seguida, abra o arquivo 04-setup-observability/assets/manifests/prom-stack-values-v35.5.1.yaml
fornecido no repositório do Starter Kit usando um editor de texto de sua escolha (preferencialmente com suporte a lint YAML). Por favor, remova os comentários que cercam a seção additionalServiceMonitors
. A saída se parece com:
- Explicações para a configuração acima:
selector -> matchExpressions
– indica aoServiceMonitor
qual serviço monitorar. Ele irá direcionar todos os serviços com a chave de rótulo app e os valoresemoji-svc
evoting-svc
. Os rótulos podem ser obtidos executando:kubectl get svc --show-labels -n emojivoto
namespaceSelector
– aqui, você deseja corresponder ao namespace onde oEmojivoto
foi implantado.
endpoints -> port
– refere-se à porta do serviço a ser monitorado.
Por fim, aplique as alterações usando o Helm:
Em seguida, verifique se o destino Emojivoto
foi adicionado ao Prometheus para raspagem. Crie um encaminhamento de porta para o Prometheus na porta 9090
:
Abra um navegador da web em localhost:9090. Em seguida, navegue até a página Status -> Targets, e inspecione os resultados (observe o caminho serviceMonitor/monitoring/emojivoto-monitor/0
):
Há 2 entradas sob os alvos descobertos porque a implantação do Emojivoto
consiste em 2 serviços expondo o endpoint de métricas.
Na próxima etapa, você descobrirá o PromQL juntamente com alguns exemplos simples, para começar e descobrir o idioma.
Etapa 3 – PromQL (Linguagem de Consulta do Prometheus)
Nesta etapa, você aprenderá o básico da Linguagem de Consulta do Prometheus (PromQL). O PromQL ajuda você a realizar consultas em várias métricas provenientes de todos os Pods e aplicativos do seu cluster DOKS.
O PromQL é uma DSL ou Linguagem Específica do Domínio que é especificamente construída para o Prometheus e permite que você faça consultas para métricas. A expressão geral define o valor final, enquanto expressões aninhadas representam valores para argumentos e operandos. Para explicações mais detalhadas, por favor, visite a página oficial do PromQL.
Em seguida, você vai inspecionar uma das métricas do Emojivoto
, nomeadamente o emojivoto_votes_total
, que representa o número total de votos. É um valor de contador que aumenta a cada solicitação contra o endpoint de votos do Emojivoto
.
Primeiro, crie um encaminhamento de porta para o Prometheus na porta 9090
:
Em seguida, abra o navegador de expressões.
emojivoto_votes_total{container="voting-svc", emoji=":100:", endpoint="prom", instance="10.244.25.31:8801", job="voting-svc", namespace="emojivoto", pod="voting-74ff7f8b55-jl6qs", service="voting-svc"} 20
emojivoto_votes_total{container="voting-svc", emoji=":bacon:", endpoint="prom", instance="10.244.25.31:8801", job="voting-svc", namespace="emojivoto", pod="voting-74ff7f8b55-jl6qs", service="voting-svc"} 17
emojivoto_votes_total{container="voting-svc", emoji=":balloon:", endpoint="prom", instance="10.244.25.31:8801", job="voting-svc", namespace="emojivoto", pod="voting-74ff7f8b55-jl6qs", service="voting-svc"} 21
emojivoto_votes_total{container="voting-svc", emoji=":basketball_man:", endpoint="prom", instance="10.244.25.31:8801", job="voting-svc", namespace="emojivoto", pod="voting-74ff7f8b55-jl6qs", service="voting-svc"} 10
emojivoto_votes_total{container="voting-svc", emoji=":beach_umbrella:", endpoint="prom", instance="10.244.25.31:8801", job="voting-svc", namespace="emojivoto", pod="voting-74ff7f8b55-jl6qs", service="voting-svc"} 10
emojivoto_votes_total{container="voting-svc", emoji=":beer:", endpoint="prom", instance="10.244.25.31:8801", job="voting-svc", namespace="emojivoto", pod="voting-74ff7f8b55-jl6qs", service="voting-svc"} 11
No campo de entrada de consulta, cole emojivoto_votes_total
e pressione enter. A saída se parece com:
Navegue até a aplicação Emojivoto
e, a partir da página inicial, clique no emoji 100 para votar nele.
emojivoto_votes_total{container="voting-svc", emoji=":100:", endpoint="prom", instance="10.244.25.31:8801", job="voting-svc", namespace="emojivoto", pod="voting-74ff7f8b55-jl6qs", service="voting-svc"} 21
emojivoto_votes_total{container="voting-svc", emoji=":bacon:", endpoint="prom", instance="10.244.25.31:8801", job="voting-svc", namespace="emojivoto", pod="voting-74ff7f8b55-jl6qs", service="voting-svc"} 17
emojivoto_votes_total{container="voting-svc", emoji=":balloon:", endpoint="prom", instance="10.244.25.31:8801", job="voting-svc", namespace="emojivoto", pod="voting-74ff7f8b55-jl6qs", service="voting-svc"} 21
emojivoto_votes_total{container="voting-svc", emoji=":basketball_man:", endpoint="prom", instance="10.244.25.31:8801", job="voting-svc", namespace="emojivoto", pod="voting-74ff7f8b55-jl6qs", service="voting-svc"} 10
emojivoto_votes_total{container="voting-svc", emoji=":beach_umbrella:", endpoint="prom", instance="10.244.25.31:8801", job="voting-svc", namespace="emojivoto", pod="voting-74ff7f8b55-jl6qs", service="voting-svc"} 10
emojivoto_votes_total{container="voting-svc", emoji=":beer:", endpoint="prom", instance="10.244.25.31:8801", job="voting-svc", namespace="emojivoto", pod="voting-74ff7f8b55-jl6qs", service="voting-svc"} 11
Navegue até a página de resultados da consulta do Passo 3 e clique no botão Executar. Você deverá ver o contador para o emoji 100 aumentar em um. A saída se parece com:
O PromQL agrupa dados semelhantes em algo chamado vetor. Como visto acima, cada vetor tem um conjunto de atributos que os diferenciam um do outro. Você pode agrupar resultados com base em um atributo de interesse. Por exemplo, se você se preocupa apenas com solicitações que vêm do serviço voting-svc
, então por favor digite o seguinte no campo de consulta:
emojivoto_votes_total{container="voting-svc", emoji=":100:", endpoint="prom", instance="10.244.6.91:8801", job="voting-svc", namespace="emojivoto", pod="voting-6548959dd7-hssh2", service="voting-svc"} 492
emojivoto_votes_total{container="voting-svc", emoji=":bacon:", endpoint="prom", instance="10.244.6.91:8801", job="voting-svc", namespace="emojivoto", pod="voting-6548959dd7-hssh2", service="voting-svc"} 532
emojivoto_votes_total{container="voting-svc", emoji=":balloon:", endpoint="prom", instance="10.244.6.91:8801", job="voting-svc", namespace="emojivoto", pod="voting-6548959dd7-hssh2", service="voting-svc"} 521
A saída se parece com (observe que ele seleciona apenas os resultados que correspondem aos seus critérios):
O resultado acima mostra o total de solicitações para cada Pod da implantação Emojivoto
que emite métricas (que consiste em 2).
Isto é apenas uma introdução muito simples sobre o que é o PromQL e do que ele é capaz. Mas ele pode fazer muito mais do que isso, como contar métricas, calcular a taxa ao longo de um intervalo predefinido, etc. Por favor, visite a página oficial do PromQL para mais recursos da linguagem.
No próximo passo, você aprenderá como usar o Grafana para visualizar métricas para a amostra da aplicação Emojivoto
.
Passo 4 – Visualizando Métricas Usando Grafana
Embora o Prometheus tenha algum suporte integrado para visualização de dados, uma maneira melhor de fazer isso é através do Grafana, que é uma plataforma de código aberto para monitoramento e observabilidade, que permite visualizar e explorar o estado do seu cluster.
A página oficial é descrita como sendo capaz de:
Consultar, visualizar, alertar e entender seus dados, não importa onde eles estejam armazenados.
Não são necessários passos adicionais para instalar o Grafana porque o Passo 1 – Instalando o Conjunto Prometheus instalou o Grafana para você. Tudo o que você precisa fazer é encaminhar uma porta como abaixo e obter acesso imediato aos painéis (credenciais padrão: admin/prom-monitor
):
Para ver todas as métricas do Emojivoto
, você vai usar um dos painéis padrão instalados do Grafana.
Navegue até a seção Painéis Grafana.
Em seguida, procure pelo painel Geral/Kubernetes/Recursos de Computação/Namespace(Pods) e acesse-o.
Por fim, selecione a fonte de dados Prometheus e adicione o namespace emojivoto
.
Você pode brincar e adicionar mais painéis no Grafana para visualizar outras fontes de dados, bem como agrupá-los com base no escopo. Também, você pode explorar os painéis disponíveis para Kubernetes do projeto Grafana kube-mixin.
No próximo passo, você configurará armazenamento persistente para o Prometheus usando o armazenamento em bloco da DigitalOcean para persistir suas métricas de DOKS e aplicativos através de reinicializações de servidores ou falhas de cluster.
Etapa 5 – Configurando Armazenamento Persistente para Prometheus
Nesta etapa, você aprenderá como habilitar armazenamento persistente para o Prometheus para que os dados de métricas sejam persistidos através de reinicializações de servidores, ou em caso de falhas de cluster.
Primeiro, você precisa de uma classe de armazenamento para prosseguir. Execute o seguinte comando para verificar qual está disponível.
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
do-block-storage (default) dobs.csi.digitalocean.com Delete Immediate true 4d2h
A saída deve ser semelhante à seguinte. Observe que o Armazenamento em Bloco da DigitalOcean está disponível para você usar.
Em seguida, mude o diretório (se ainda não o fez) onde o repositório Git do Starter Kit foi clonado:
Em seguida, abra o arquivo 04-setup-observability/assets/manifests/prom-stack-values-v35.5.1.yaml
fornecido no repositório do Starter Kit usando um editor de texto de sua preferência (preferencialmente com suporte a lint YAML). Procure pela linha storageSpec
e descomente a seção necessária para o Prometheus. A definição storageSpec
deve parecer com:
- Explicações para a configuração acima:
volumeClaimTemplate
– define um novo PVC.storageClassName
– define a classe de armazenamento (deve usar o mesmo valor obtido no comandokubectl get storageclass
).
resources
– define o valor de solicitações de armazenamento. Neste caso, é solicitada uma capacidade total de 5 Gi para o novo volume.
Por fim, aplique as configurações usando o Helm:
Após concluir as etapas acima, verifique o status do PVC:
NAME STATUS VOLUME CAPACITY ACCESS MODES AGE
kube-prome-prometheus-0 Bound pvc-768d85ff-17e7-4043-9aea-4929df6a35f4 5Gi RWO do-block-storage 4d2h
A new Volume should appear in the Volumes web page from your DigitalOcean account panel:
A saída será semelhante ao seguinte. A coluna STATUS
deve exibir Bound
.
Passo 6 – Configurando Armazenamento Persistente para o Grafana
Nesta etapa, você aprenderá como habilitar armazenamento persistente para o Grafana, de modo que os gráficos sejam mantidos através de reinicializações do servidor ou em caso de falhas no cluster. Você definirá uma Reivindicação de Volume Persistente (PVC) de 5 Gi, usando o Armazenamento de Blocos da DigitalOcean. Os próximos passos são os mesmos que o Passo 5 – Configurando Armazenamento Persistente para o Prometheus.
Primeiro, abra o arquivo 04-setup-observability/assets/manifests/prom-stack-values-v35.5.1.yaml
fornecido no repositório do Starter Kit, usando um editor de texto de sua escolha (preferencialmente com suporte a lint YAML). A seção de armazenamento de persistência para o Grafana deve se parecer com:
Em seguida, aplique as configurações usando o Helm:
Após concluir os passos acima, verifique o status do PVC:
NAME STATUS VOLUME CAPACITY ACCESS MODES AGE
kube-prom-stack-grafana Bound pvc-768d85ff-17e7-4043-9aea-4929df6a35f4 5Gi RWO do-block-storage 4d2h
A new Volume should appear in the Volumes web page from your DigitalOcean account panel:
A saída se parece com a seguinte. A coluna STATUS
deve exibir Bound
.
Melhores Práticas para Dimensionamento de PV
- Para calcular o tamanho necessário para o volume com base em suas necessidades, siga os conselhos e a fórmula da documentação oficial:
- Prometheus armazena uma média de apenas 1-2 bytes por amostra. Assim, para planejar a capacidade de um servidor Prometheus, você pode usar a fórmula aproximada:
espaço_em_disco_necessário = tempo_de_retenção_segundos * amostras_ingeridas_por_segundo * bytes_por_amostra
Para reduzir a taxa de amostras ingeridas, você pode ou reduzir o número de séries temporais que você coleta (menos alvos ou menos séries por alvo), ou pode aumentar o intervalo de coleta. No entanto, reduzir o número de séries é provavelmente mais eficaz, devido à compressão de amostras dentro de uma série.
Por favor, siga a seção Aspectos Operacionais para mais detalhes sobre o assunto.
Neste tutorial, você aprendeu como instalar e configurar o stack Prometheus, em seguida, usou o Grafana para instalar novos painéis e visualizar métricas de aplicativos de cluster DOKS. Você também aprendeu como realizar consultas de métricas usando PromQL. Finalmente, configurou e habilitou armazenamento persistente para o Prometheus armazenar as métricas do seu cluster.
- Saiba mais
- Monitoramento e retenção de logs do Kubernetes usando Grafana Loki e DigitalOcean Spaces
- Melhores práticas para monitorar um cluster Kubernetes com Prometheus, Grafana e Loki
Configurar o monitoramento do cluster DOKS com Helm e Prometheus Operator