Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este guia explica como configurar e usar o Prometheus Gerenciado do Azure para coletar métricas de cargas de trabalho do complemento de malha de serviço do Istio no seu cluster do Azure Kubernetes.
Pré-requisitos
Concluir etapas para habilitar o complemento do Istio no cluster de acordo com a documentação
Habilitar o serviço gerenciado do Azure Monitor para Prometheus
O serviço gerenciado do Azure Monitor para Prometheus coleta dados de um cluster do Kubernetes no Azure. Para habilitar o serviço gerenciado do Azure Monitor para Prometheus, você deve criar um workspace do Azure Monitor para armazenar as métricas:
export AZURE_MONITOR_WORKSPACE=<azure-monitor-workspace-name>
export AZURE_MONITOR_WORKSPACE_ID=$(az monitor account create \
--name $AZURE_MONITOR_WORKSPACE \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--query id -o tsv)
Habilitar complemento do Prometheus
Para coletar métricas do Prometheus do seu cluster do Kubernetes, habilite o complemento Prometheus:
az aks update --enable-azure-monitor-metrics --name $CLUSTER --resource-group $RESOURCE_GROUP --azure-monitor-workspace-resource-id $AZURE_MONITOR_WORKSPACE_ID
Personalizar a extração de métricas do Prometheus no serviço gerenciado do Azure Monitor para Prometheus
Crie uma configuração de raspagem em um arquivo chamado prometheus-config, semelhante ao exemplo fornecido abaixo. Essa configuração permite a extração baseada em anotação de pod, que permite ao Prometheus descobrir e raspar automaticamente métricas de pods com anotações específicas.
Importante
A configuração de raspagem abaixo é apenas um exemplo. É altamente recomendável personalizá-lo com base em suas necessidades. Se não for ajustado, poderá levar a custos inesperados da coleta de métricas frequentes e ao aumento do armazenamento de dados.
global:
scrape_interval: 30s
scrape_configs:
- job_name: workload
scheme: http
kubernetes_sd_configs:
- role: endpoints
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
action: replace
target_label: __metrics_path__
regex: (.+)
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
action: replace
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
target_label: __address__
Para habilite a extração baseada em anotação de pod, crie um configmap ama-metrics-prometheus-config que referencie o arquivo prometheus-config no namespace kube-system.
kubectl create configmap ama-metrics-prometheus-config --from-file=prometheus-config -n kube-system
Verificar a coleção de métricas
Configure as permissões de acesso: navegue até seu espaço de trabalho do Azure Monitor no portal do Azure e crie uma atribuição de função para si mesmo, concedendo a função "Leitor de Dados de Monitoramento" no recurso do espaço de trabalho.
Gerar tráfego de exemplo: envie algumas solicitações para a página do produto criada anteriormente, por exemplo:
curl -s "http://${GATEWAY_URL_EXTERNAL}/productpage" | grep -o "<title>.*</title>"Métricas de exibição/consulta no portal do Azure: navegue até o Gerenciador do Prometheus em seu workspace do Azure Monitor e métricas de consulta. O exemplo a seguir mostra os resultados da consulta
istio_requests_total.
Excluir recursos
Se você quiser limpar a malha de serviços do Istio e as entradas (deixando para trás o cluster), execute o comando a seguir:
az aks mesh disable --resource-group ${RESOURCE_GROUP} --name ${CLUSTER}
Se você quiser limpar todos os recursos criados a partir dos documentos de orientação prática do Istio, execute o comando a seguir:
az group delete --name ${RESOURCE_GROUP} --yes --no-wait