TorchServe

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 TorchServe. Esta página mostra como fazer o seguinte:

  • Configurar o TorchServe 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 TorchServe 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 saber mais sobre o TorchServe, consulte TorchServe. Para informações sobre como configurar o TorchServe no Google Kubernetes Engine, consulte o guia do GKE para o TorchServe.

Pré-requisitos

Para coletar métricas do TorchServe 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 TorchServe expõe métricas no formato do Prometheus automaticamente quando a flag metrics_mode é especificada no arquivo config.properties ou como uma variável de ambiente.

Se você estiver configurando o TorchServe, recomendamos fazer as seguintes adições ao arquivo config.properties.

Se você estiver seguindo o documento do Google Kubernetes Engine Servir LLMs escalonáveis no GKE com o TorchServe, essas adições fazem parte da configuração padrão.

# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

  inference_address=http://0.0.0.0:8080
  management_address=http://0.0.0.0:8081
+ metrics_address=http://0.0.0.0:8082
+ metrics_mode=prometheus
  number_of_netty_threads=32
  job_queue_size=1000
  install_py_dep_per_model=true
  model_store=/home/model-server/model-store
  load_models=all

Além disso, ao implantar essa imagem no GKE, modifique a implantação e o YAML do serviço para expor a porta de métricas adicionada:

# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: t5-inference
  labels:
    model: t5
    version: v1.0
    machine: gpu
spec:
  replicas: 1
  selector:
    matchLabels:
      model: t5
      version: v1.0
      machine: gpu
  template:
    metadata:
      labels:
        model: t5
        version: v1.0
        machine: gpu
    spec:
      nodeSelector:
        cloud.google.com/gke-accelerator: nvidia-l4
      containers:
        - name: inference
          ...
          args: ["torchserve", "--start", "--foreground"]
          resources:
            ...
          ports:
            - containerPort: 8080
              name: http
            - containerPort: 8081
              name: management
+           - containerPort: 8082
+             name: metrics
---
apiVersion: v1
kind: Service
metadata:
  name: t5-inference
  labels:
    model: t5
    version: v1.0
    machine: gpu
spec:
  ...
  ports:
    - port: 8080
      name: http
      targetPort: http
    - port: 8081
      name: management
      targetPort: management
+   - port: 8082
+     name: metrics
+     targetPort: metrics

Para verificar se o TorchServe está emitindo métricas nos endpoints esperados, faça o seguinte:

  1. Configure o encaminhamento de portas usando o seguinte comando:
    kubectl -n NAMESPACE_NAME port-forward SERVICE_NAME 8082
    
  2. Acesse o endpoint localhost:8082/metrics usando o navegador ou o utilitário curl 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 TorchServe no mesmo namespace.

É possível usar a seguinte configuração do PodMonitoring:

# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
  name: torchserve
  labels:
    app.kubernetes.io/name: torchserve
    app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
  endpoints:
  - port: 8082
    scheme: http
    interval: 30s
    path: /metrics
  selector:
    matchLabels:
      model: t5
      version: v1.0
      machine: gpu
Verifique se os valores dos campos port e matchLabels correspondem aos dos pods do TorchServe que você quer monitorar.

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 TorchServe. 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:

  1. No Console do Google Cloud, acesse a página do  Metrics Explorer:

    Acesse o Metrics explorer

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.

  2. Na barra de ferramentas do painel do criador de consultas, selecione o botão  MQL ou  PromQL.
  3. 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.
  4. Digite e execute a seguinte consulta:
    up{job="torchserve", cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}

Ver painéis

A integração do Cloud Monitoring inclui o painel Visão geral do TorchServe Prometheus. 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:

  1. No console do Google Cloud, acesse a página  Painéis:

    Ir para Painéis

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.

  2. Selecione a guia Lista de painéis.
  3. Escolha a categoria Integrações.
  4. Clique no nome do painel, por exemplo, Visão geral do Prometheus do TorchServe.

Para acessar uma visualização estática do painel, faça o seguinte:

  1. No console do Google Cloud, acesse a página  Integrações:

    Acessar Integrações

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.

  2. Clique no filtro de plataforma de implantação do Kubernetes Engine.
  3. Localize a integração do TorchServe e clique em Visualizar detalhes.
  4. 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.