Neste documento, descrevemos como configurar a implantação do Google Kubernetes Engine para usar o Google Cloud Managed Service para Prometheus a fim de coletar métricas do Serviço do TensorFlow. Esta página mostra como fazer o seguinte:
- Configure o TF Serving para gerar relatórios de métricas.
- Configurar um recurso PodMonitoring para o serviço gerenciado para Prometheus a fim de coletar as métricas exportadas.
- Instalar um painel no Cloud Monitoring para ver as métricas.
Estas instruções se aplicam somente ao usar a coleção gerenciada com o serviço gerenciado para Prometheus. Se você estiver usando a coleção autoimplantada, consulte a documentação do TF Serving para ver informações da instalação.
Estas instruções são um exemplo e devem funcionar na maioria dos ambientes do Kubernetes. Se você estiver com problemas para instalar um aplicativo ou exportador devido a políticas restritivas de segurança ou da organização, recomendamos consultar a documentação de código aberto para receber suporte.
Para informações sobre o TensorFlow Serving, consulte Serviços do TF. Para informações sobre como configurar o TF Serving no Google Kubernetes Engine, consulte o guia do GKE para o TF Serving.
Pré-requisitos
Para coletar métricas do TF Serving usando o Managed Service para Prometheus e a coleta gerenciada, sua implantação precisa atender aos seguintes requisitos:
- Seu cluster precisa executar a versão 1.21.4-gke.300 ou posterior do Google Kubernetes Engine.
- É necessário executar o Managed Service para Prometheus com a coleta gerenciada ativada. Para mais informações, consulte Começar a usar a coleta gerenciada.
O TF Serving expõe métricas no formato do Prometheus quando a flag --monitoring_config_file
é usada para especificar um arquivo que contém um buffer de protocolo do MonitoringConfig.
Confira a seguir um exemplo de buffer de protocolo do MonitoringConfig:
Se você estiver seguindo o guia de configuração do Google Kubernetes Engine, Exiba um modelo com uma única GPU no GKE. O buffer do protocolo MonitoringConfig é definido como parte da configuração padrão.
Se você estiver configurando o TF Serving, faça o seguinte para especificar o buffer do protocolo MonitoringConfig:
Crie um arquivo chamado
monitoring_config.txt
contendo o buffer de protocolo MonitoringConfig no diretório do modelo antes de fazer o upload do diretório para o bucket do Cloud Storage.Faça upload do diretório do modelo para o bucket do Cloud Storage:
gcloud storage cp MODEL_DIRECTORY gs://CLOUD_STORAGE_BUCKET_NAME --recursive
Defina a variável de ambiente
PATH_TO_MONITORING_CONFIG
como o caminho do arquivomonitoring_config.txt
enviado, por exemplo:export PATH_TO_MONITORING_CONFIG=/data/tfserve-model-repository/monitoring_config.txt
Adicione a flag e o valor a seguir ao comando do contêiner no arquivo YAML de implantação do contêiner:
"--monitoring_config=$PATH_TO_MONITORING_CONFIG"
Por exemplo, o comando pode ser parecido com este:
command: [ "tensorflow_model_server", "--model_name=$MODEL_NAME", "--model_base_path=/data/tfserve-model-repository/$MODEL_NAME", "--rest_api_port=8000", "--monitoring_config_file=$PATH_TO_MONITORING_CONFIG" ]
Modificar a configuração de exibição do TF
Modifique a configuração do TF Serving conforme mostrado no exemplo a seguir:
Adicione à sua configuração todas as linhas precedidas pelo
símbolo +
.
Para aplicar as alterações de configuração de um arquivo local, execute o seguinte comando:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Também é possível usar o Terraform para gerenciar as configurações.
Para verificar se o TF Serving está emitindo métricas nos endpoints esperados, faça o seguinte:- Configure o encaminhamento de portas usando o seguinte comando:
kubectl -n NAMESPACE_NAME port-forward POD_NAME 8000
- Acesse o endpoint
localhost:8000/monitoring/prometheus/metrics
usando o navegador ou o utilitáriocurl
em outra sessão de terminal.
Definir um recurso do PodMonitoring
Para descobrir o destino, o operador do Managed Service para Prometheus requer um recurso PodMonitoring que corresponde ao TF Serving no mesmo namespace.
É possível usar a seguinte configuração do PodMonitoring:
Para aplicar as alterações de configuração de um arquivo local, execute o seguinte comando:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Também é possível usar o Terraform para gerenciar as configurações.
Verificar a configuração
Use o Metrics Explorer para verificar se você configurou corretamente o serviço do TF. Pode levar um ou dois minutos para que o Cloud Monitoring ingira as métricas.
Para verificar se as métricas foram transferidas, faça o seguinte:
-
No Console do Google Cloud, acesse a página do leaderboard Metrics Explorer:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Na barra de ferramentas do painel do criador de consultas, selecione o botão code MQL ou code PromQL.
- Verifique se PromQL está selecionado na opção de ativar/desativar Idioma. A alternância de idiomas está na mesma barra de ferramentas que permite formatar sua consulta.
- Digite e execute a seguinte consulta:
up{job="tfserve", cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}
Ver painéis
A integração do Cloud Monitoring inclui o painel Visão geral do Prometheus do TensorFlow Serving. Os painéis são instalados automaticamente ao configurar a integração. Também é possível visualizar visualizações estáticas de painéis sem instalar a integração.
Para ver um painel instalado, faça o seguinte:
-
No console do Google Cloud, acesse a página
Painéis:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Selecione a guia Lista de painéis.
- Escolha a categoria Integrações.
- Clique no nome do painel, por exemplo, Visão geral do TensorFlow Serving Prometheus.
Para acessar uma visualização estática do painel, faça o seguinte:
-
No console do Google Cloud, acesse a página
Integrações:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Clique no filtro de plataforma de implantação do Kubernetes Engine.
- Localize a integração do TensorFlow Serving e clique em Visualizar detalhes.
- Selecione a guia Painéis.
Solução de problemas
Para resolver problemas de transferências de métricas, consulte Problemas com a coleta de exportadores em Resolver problemas no processamento.