TorchServe

In diesem Dokument wird beschrieben, wie Sie Ihre Google Kubernetes Engine-Bereitstellung so konfigurieren, dass Sie Google Cloud Managed Service for Prometheus verwenden können, um Messwerte von TorchServe zu erfassen. Dieses Dokument enthält Anleitungen für folgende Aufgaben:

  • TorchServe einrichten, um Messwerte zu erfassen
  • Eine PodMonitoring-Ressource für Managed Service for Prometheus konfigurieren, um die exportierten Messwerte zu erfassen.
  • Auf ein Dashboard in Cloud Monitoring zugreifen, um die Messwerte zu prüfen.

Diese Anleitung gilt nur, wenn Sie die verwaltete Sammlung mit Managed Service for Prometheus verwenden. Wenn Sie eine selbst bereitgestellte Sammlung verwenden, finden Sie Informationen zur Installation in der TorchServe-Dokumentation.

Diese Anleitung dient als Beispiel und sollte in den meisten Kubernetes-Umgebungen funktionieren. Wenn Sie aufgrund von restriktiven Sicherheits- oder Organisationsrichtlinien Probleme beim Installieren einer Anwendung oder eines Exporters haben, empfehlen wir Ihnen, die Open Source-Dokumentation für Support zu nutzen.

Informationen zu TorchServe finden Sie unter TorchServe. Informationen zum Einrichten von TorchServe in der Google Kubernetes Engine finden Sie im GKE-Leitfaden für TorchServe.

Vorbereitung

Zum Erfassen von Messwerten aus TorchServe mithilfe von Managed Service for Prometheus und einer verwalteten Erfassung muss Ihr Deployment die folgenden Anforderungen erfüllen:

  • Ihr Cluster muss Google Kubernetes Engine Version 1.21.4-gke.300 oder höher ausführen.
  • Sie müssen Managed Service for Prometheus mit aktivierter verwalteter Sammlung ausführen. Weitere Informationen finden Sie unter Erste Schritte mit verwalteter Sammlung.

TorchServe stellt Messwerte im Prometheus-Format automatisch bereit, wenn das Flag metrics_mode entweder in der Datei config.properties oder als Umgebungsvariable angegeben ist.

Wenn Sie TorchServe selbst einrichten, empfehlen wir, die folgenden Ergänzungen in die Datei config.properties einzufügen.

Wenn Sie dem Google Kubernetes Engine-Dokument Scalable LLMs on GKE with TorchServe (Skalierbare LLMs in GKE mit TorchServe bereitstellen) folgen, sind diese Ergänzungen Teil der Standardeinrichtung.

# 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

Wenn Sie dieses Image in GKE bereitstellen, ändern Sie die YAML-Dateien für Bereitstellung und Dienst, um den hinzugefügten Port für Messwerte freizugeben:

# 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

So prüfen Sie, ob TorchServe Messwerte an den erwarteten Endpunkten ausgibt:

  1. Richten Sie mit dem folgenden Befehl die Portweiterleitung ein:
    kubectl -n NAMESPACE_NAME port-forward SERVICE_NAME 8082
    
  2. Greifen Sie über den Browser oder das Dienstprogramm curl in einer anderen Terminalsitzung auf den Endpunkt localhost:8082/metrics zu.

PodMonitoring-Ressource definieren

Für die Zielerkennung benötigt der Managed Service for Prometheus-Operator eine PodMonitoring-Ressource, die TorchServe im selben Namespace entspricht.

Sie können die folgende PodMonitoring-Konfiguration verwenden:

# 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
Achten Sie darauf, dass die Werte der Felder port und matchLabels mit den TorchServe-Pods übereinstimmen, die Sie beobachten möchten.

Führen Sie den folgenden Befehl aus, um Konfigurationsänderungen aus einer lokalen Datei anzuwenden:

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

Sie können Ihre Konfigurationen auch mit Terraform verwalten.

Konfiguration prüfen

Mit dem Metrics Explorer können Sie prüfen, ob TorchServe richtig konfiguriert ist. Es kann ein oder zwei Minuten dauern, bis Cloud Monitoring Ihre Messwerte aufgenommen hat.

So prüfen Sie, ob die Messwerte aufgenommen wurden:

  1. Rufen Sie in der Google Cloud Console die Seite Metrics Explorer auf.

    Zum Metrics Explorer

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Klicken Sie in der Symbolleiste des Bereichs "Query Builder" auf die Schaltfläche  MQL oder  PromQL.
  3. Prüfen Sie, ob PromQL in der Ein-/Aus-Schaltfläche PromQL ausgewählt ist. Die Sprachschaltfläche befindet sich in derselben Symbolleiste, mit der Sie Ihre Abfrage formatieren können.
  4. Geben Sie die folgende Abfrage ein und führen Sie sie aus:
    up{job="torchserve", cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}

Dashboards ansehen

Die Cloud Monitoring-Integration beinhaltet das Dashboard TorchServe Prometheus – Übersicht. Dashboards werden automatisch mitkonfiguriert, wenn Sie die Integration konfigurieren. Sie können auch eine statische Vorschau von Dashboards aufrufen, ohne die Integration zu installieren.

So rufen Sie ein installiertes Dashboard auf:

  1. Rufen Sie in der Google Cloud Console die Seite Dashboards auf.

    Dashboards aufrufen

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Wählen Sie den Tab Dashboard-Liste aus.
  3. Wählen Sie die Kategorie Integrationen aus.
  4. Klicken Sie auf den Namen des Dashboards, z. B. TorchServe Prometheus – Übersicht.

So rufen Sie eine statische Vorschau des Dashboards auf:

  1. Öffnen Sie in der Google Cloud Console die Seite Einbindungen:

    Zu „Integrationen“

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Klicken Sie auf den Filter für die Deployment-Plattform Kubernetes Engine.
  3. Suchen Sie nach der TorchServe-Integration und klicken Sie auf Details ansehen.
  4. Wählen Sie den Tab Dashboards aus.

Fehlerbehebung

Informationen zur Fehlerbehebung bei Problemen mit der Messwertaufnahme finden Sie unter Probleme mit der Erfassung über Exporter unter Fehlerbehebung bei Problemen mit der Aufnahme.