Este documento descreve como configurar a implementação do Google Kubernetes Engine para que possa usar o Google Cloud Managed Service for Prometheus para recolher métricas do TensorFlow Serving. Este documento mostra como fazer o seguinte:
- Configure o TF Serving para comunicar métricas.
- Aceda a um painel de controlo predefinido no Cloud Monitoring para ver as métricas.
Estas instruções aplicam-se apenas se estiver a usar a recolha gerida com o serviço gerido para Prometheus. Se estiver a usar a recolha implementada automaticamente, consulte a documentação do TF Serving para obter informações de instalação.
Estas instruções são fornecidas como exemplo e espera-se que funcionem na maioria dos ambientes do Kubernetes. Se estiver com problemas na instalação de uma aplicação ou de um exportador devido a políticas organizacionais ou de segurança restritivas, recomendamos que consulte a documentação de código aberto para receber apoio técnico.
Para informações sobre o TensorFlow Serving, consulte o TF Serving. Para ver informações sobre a configuração do TF Serving no Google Kubernetes Engine, consulte o guia do GKE para o TF Serving.
Pré-requisitos
Para recolher métricas do TF Serving através do Managed Service for Prometheus e da recolha gerida, a sua implementação tem de cumprir os seguintes requisitos:
- O cluster tem de estar a executar a versão 1.28.15-gke.2475000 ou posterior do Google Kubernetes Engine.
- Tem de estar a executar o Managed Service for Prometheus com a recolha gerida ativada. Para mais informações, consulte o artigo Comece a usar a recolha gerida.
O TF Serving expõe métricas no formato Prometheus quando a flag --monitoring_config_file
é usada para especificar um ficheiro que contém um buffer de protocolo MonitoringConfig.
Segue-se um exemplo de um buffer do protocolo MonitoringConfig:
Se estiver a seguir o guia de configuração do Google Kubernetes Engine, Apresente um modelo com uma única GPU no GKE, o protocolo buffer MonitoringConfig é definido como parte da configuração predefinida.
Se estiver a configurar o TF Serving autonomamente, faça o seguinte para especificar o protocolo de buffer MonitoringConfig:
Crie um ficheiro com o nome
monitoring_config.txt
que contenha o buffer de protocolo MonitoringConfig no diretório do modelo antes de carregar o diretório para o contentor do Cloud Storage.Carregue o diretório do modelo para o contentor do Cloud Storage:
gcloud storage cp MODEL_DIRECTORY gs://CLOUD_STORAGE_BUCKET_NAME --recursive
Defina a variável de ambiente
PATH_TO_MONITORING_CONFIG
para o caminho do ficheiromonitoring_config.txt
carregado, por exemplo:export PATH_TO_MONITORING_CONFIG=/data/tfserve-model-repository/monitoring_config.txt
Adicione a seguinte flag e valor ao comando do contentor no ficheiro YAML de implementação do contentor:
"--monitoring_config=$PATH_TO_MONITORING_CONFIG"
Por exemplo, o seu comando pode ter o seguinte aspeto:
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" ]
Modifique a configuração do TF Serving
Modifique a configuração do TF Serving, conforme mostrado no seguinte exemplo:
Tem de adicionar todas as linhas precedidas pelo símbolo +
à sua configuração.
Para aplicar alterações de configuração a partir de um ficheiro local, execute o seguinte comando:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Também pode usar o Terraform para gerir as suas configurações.
Para verificar se o TF Serving está a emitir métricas nos pontos finais esperados, faça o seguinte:- Configure o encaminhamento de portas com o seguinte comando:
kubectl -n NAMESPACE_NAME port-forward POD_NAME 8000
- Aceda ao ponto final
localhost:8000/monitoring/prometheus/metrics
através do navegador ou da utilidadecurl
noutra sessão de terminal.
Defina um recurso PodMonitoring
Para a deteção de destinos, o operador do Managed Service for Prometheus requer um recurso PodMonitoring que corresponda ao TF Serving no mesmo espaço de nomes.
Pode usar a seguinte configuração PodMonitoring:
Para aplicar alterações de configuração a partir de um ficheiro local, execute o seguinte comando:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Também pode usar o Terraform para gerir as suas configurações.
Valide a configuração
Pode usar o Explorador de métricas para verificar se configurou corretamente o fornecimento do TF. O Cloud Monitoring pode demorar um ou dois minutos a carregar as suas métricas.
Para verificar se as métricas são carregadas, faça o seguinte:
-
Na Google Cloud consola, aceda à página leaderboard Explorador de métricas:
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.
- Na barra de ferramentas do painel do criador de consultas, selecione o botão cujo nome é code MQL ou code PromQL.
- Verifique se a opção PromQL está selecionada no botão Idioma. O botão para alternar o idioma encontra-se na mesma barra de ferramentas que lhe permite formatar a consulta.
- Introduza e execute a seguinte consulta:
up{job="tfserve", cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}
Veja painéis de controlo
A integração do Cloud Monitoring inclui o painel de controlo Vista geral do TensorFlow Serving Prometheus. Os painéis de controlo são instalados automaticamente quando configura a integração. Também pode ver pré-visualizações estáticas de painéis de controlo sem instalar a integração.
Para ver um painel de controlo instalado, faça o seguinte:
-
Na Google Cloud consola, aceda à página
Painéis de controlo:
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.
- Selecione o separador Lista de painéis de controlo.
- Escolha a categoria Integrações.
- Clique no nome do painel de controlo, por exemplo, Vista geral do Prometheus do TensorFlow Serving.
Para ver uma pré-visualização estática do painel de controlo, faça o seguinte:
-
Na Google Cloud consola, aceda à página
Integrações:
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.
- Clique no filtro de plataforma de implementação Kubernetes Engine.
- Localize a integração do TensorFlow Serving e clique em Ver detalhes.
- Selecione o separador Painéis de controlo.
Resolução de problemas
Para informações sobre a resolução de problemas de carregamento de métricas, consulte Problemas com a recolha de exportadores em Resolução de problemas do lado do carregamento.