Monitoring- und Logging-Dashboards von Cloud TPU

Dashboards für das Monitoring und die Fehlerbehebung von Cloud TPU enthält die gesamte Infrastruktur und Logik, die für das Monitoring und Debug-Workflows, die auf TPU-VMs ausgeführt werden. Dafür ist Terraform erforderlich. Ein Open-Source-Tool, das Konfigurationsdateien zum Definieren und Verwalten von Google Cloud verwendet und Infrastruktur.

Monitoring-Dashboard

Im Monitoring-Dashboard werden die folgenden Cloud TPU-Messwerte angezeigt:

  • CPU-Auslastung auf TPU-Worker: cpu/utilization
  • Arbeitsspeichernutzung durch TPU-VM: memory/usage
  • Von einem Pod über das Netzwerk empfangene Netzwerkbyte: network/received_bytes_count
  • Netzwerkbyte, die von einem Pod über das Netzwerk gesendet wurden: network/sent_bytes_count
  • TensorCore-Inaktivitätsdauer des TPU-Chips: tpu/tensorcore/idle_duration

Cloud Monitoring generiert automatisch Messwertdaten. Monitoring aufrufen rufen Sie die Google Cloud Console auf, wählen Sie Monitoring und dann Dashboards: Wählen Sie im Menü GCE – TPU Monitoring Dashboard Liste der Dashboards. Das Cloud TPU-Monitoring-Dashboard besteht aus einer Anzahl der Bereiche, in denen jeweils Messdaten angezeigt werden. Für jeden Cloud TPU-Messwert Das Dashboard zeigt die aktuellen Messwerte, den Mittel- und Höchstwert separaten Bereichen angezeigt. Mit den Bereichen Mittelwert und Maximum können Sie Ausreißer identifizieren. TPU-VMs zur weiteren Untersuchung.

Sie können TPU-Messwerte auch mit dem Metrics Explorer in Cloud Monitoring ansehen. Google Cloud Console Weitere Informationen finden Sie unter Cloud TPU-VMs überwachen.

Logging-Dashboard

Das Logging-Dashboard enthält zwei Abschnitte:

  1. Logmesswerte: Zeigt die Anzahl der für jeden einzelnen erfassten Stacktrace-Einträge an. TPU-VM-Worker
  2. Logbereich: Zeigt alle Stacktrace-Einträge mit Spalten für den Schweregrad an. Zeitstempel und eine Zusammenfassung des Eintrags. Sie können dieses Logfeld nach oder TPU-Worker-Labels wie node_id oder worker_id. Beispiel: Durch Hinzufügen eines Filters resource.labels.node_id:"testing" werden alle Traces angezeigt. Einträge, die für den TPU-VM-Worker mit der ID auf „testing“ erfasst wurden.

Cloud Logging erfasst Logeinträge, die von Google Cloud-Diensten generiert werden. Drittanbieterdienste, ML-Frameworks und Ihren Code. Sie können die cloud-tpu-diagnostics PyPi zum Schreiben von Python-Stacktraces, wenn ein Fehler oder eine Ausnahme auftritt Ihre Arbeitslast reagiert nicht. Weitere Informationen finden Sie unter Fehlerbehebung bei Cloud TPU-VMs

Wählen Sie in der Google Cloud Console Monitoring aus, um das Logging-Dashboard aufzurufen. und dann auf Dashboards. Wählen Sie GCE – TPU Logging Dashboard aus die Liste der Dashboards.

Messwerte und Logging-Dashboards konfigurieren

Folgen Sie dieser Anleitung, um die Messwerte und Logging-Dashboards zu konfigurieren.

Dashboard-Repository klonen

Sie können das Repository direkt aus dem GitHub-Repository für Cloud TPU Monitoring und Debugging klonen oder über die Befehlszeile:

git clone https://github.com/google/cloud-tpu-monitoring-debugging.git

Terraform installieren

  1. Terraform installieren auf Ihrem lokalen Computer.
  2. Führen Sie terraform init aus, um die erforderlichen Plug-ins hinzuzufügen und die .terraform zu erstellen. -Verzeichnis.
  3. Führen Sie terraform init –upgrade aus, um alle verfügbaren Updates zu installieren.

Berechtigungen für Monitoring und Logging konfigurieren

Monitoring Admin, Monitoring Dashboard Configuration Editor und Logging Admin Rollen sind erforderlich, um Monitoring-Ressourcen in Ihrem Google Cloud-Projekt bereitzustellen. Weitere Informationen zu Monitoringrollen finden Sie unter Zugriff auf Cloud Monitoring gewähren.

Cloud Storage-Bucket erstellen

Erstellen Sie einen Cloud Storage-Bucket zum Speichern von Terraform-Zustandsdateien. Sie können auch Einen vorhandenen Cloud Storage-Bucket verwenden Cloud Storage-Bucket dass mehrere Nutzer Terraform gleichzeitig ausführen und auf dieselben und Infrastruktur.

  1. Erstellen Sie in Cloud Shell den Cloud Storage-Bucket:

    gcloud storage buckets create gs://${GCS_BUCKET_NAME}
    
  2. Aktivieren Sie die Objektversionsverwaltung, um den Verlauf Ihrer Bereitstellungen zu speichern. Wird aktiviert Objektversionsverwaltung erhöht die Speicherkosten, was Sie umgehen können, Verwaltung des Objektlebenszyklus so konfigurieren, dass alte Statusversionen gelöscht werden.

    gcloud storage buckets update gs://${GCS_BUCKET_NAME} --versioning
    

Terraform initialisieren

Führen Sie terraform init im Verzeichnis gcp_resources/gce des Repositorys aus. Der Befehl fordert Sie auf, den Namen des zu speichernden Cloud Storage-Bucket einzugeben. Terraform-Zustandsdateien

Monitoring- und Logging-Dashboards bereitstellen

Führen Sie terraform apply im Verzeichnis gcp_resources/gce aus, um die Monitoring- und Logging-Dashboards in Ihrem Google Cloud-Projekt. Der Befehl fordert Sie auf, Werte für die folgenden Variablen anzugeben:

  • var.monitoring_dashboard_config
  • var.project_name
  • var.stack_trace_bucket_config

Wenn Sie nur das Monitoring-Dashboard bereitstellen möchten, führen Sie terraform init aus. und terraform apply innerhalb der gcp_resources/gce/dashboard/monitoring_dashboard -Verzeichnis. Führen Sie diese Befehle auf ähnliche Weise im Verzeichnis gcp_resources/gce/dashboard/logging_dashboard nur für die Bereitstellung des Logging-Dashboard.

Beispielkonfigurationen

Wenn Sie terraform apply ausführen, werden Sie von Terraform aufgefordert, einige Konfigurationsschritte auszuführen. Variablenwerte. In diesem Abschnitt finden Sie einige Beispielkonfigurationen, die Sie verwenden können. Jedes Beispiel zeigt die Ausgabe, die vom Befehl „terraform apply“ angezeigt wird. als vorgeschlagene Werte für jede Konfigurationsvariable in fett formatierter Schrift. Eingang muss im JSON-Format in geschweiften Klammern („{}“) vorliegen.

Beispiel 1

In diesem Beispiel wird der Name des Google Cloud-Projekts angegeben und die Standardwerte verwendet für die restliche Konfiguration.

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
      "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": &lt;the number of outliers to show on dashboard, default to 10 if not set&gt;
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {}

Beispiel 2

In diesem Beispiel wird das Dashboard so konfiguriert, dass fünf Ausreißer-TPU-VMs angezeigt werden.

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
    "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": &lt;number of outliers to show on dashboard, default to 10 if not set&gt;
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {"outlier_count":5}

Beispiel 3

Mit dieser Konfiguration wird ein Dashboard erstellt, das 10 Ausreißer-TPU-VMs mit „Test“ als Präfix für die vom Dashboard generierten Knotennamen:

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
      "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": &ltnumber of outliers to show on dashboard, default to 10 if not set&gt;
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {"node_prefix":"test"}

Beispiel 4

Mit dieser Konfiguration wird ein Dashboard erstellt, das 5 Ausreißer-VMs mithilfe von „test“ anzeigt als Das Präfix für die vom Dashboard generierten Knotennamen.

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
    "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": "number of outliers to show on dashboard, default to 10 if not set"
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {"node_prefix":"test", "outlier_count":5}

Beispiel 5

In diesem Beispiel wird ein Cloud Storage-Bucket zum Speichern von Stacktraces konfiguriert. Die Für Stacktraces gilt standardmäßig eine Aufbewahrungsrichtlinie von 30 Tagen.

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {"bucket_name":"stack_trace_log_bucket"}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
    "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": "number of outliers to show on dashboard, default to 10 if not set"
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {}

Beispiel 6

In diesem Beispiel wird ein Cloud Storage-Bucket mit einer Aufbewahrungsdauer von 20 konfiguriert Tage.

var.project_name
  Name of gcp project

  Enter a value: <gcp_project_name>

var.stack_trace_bucket_config
    Configuration to create a log bucket to store stack traces:
    {
      "bucket_name": "name of log bucket to create",
      "retention_days": &lt;number of days to retain stack traces, default to 30 days if not set&gt;
    }
    Enter {} to not create separate bucket for stack traces.

  Enter a value: {"bucket_name":"stack_trace_log_bucket", "retention_days":20}

var.monitoring_dashboard_config
    Configuration for monitoring dashboard:
    {
    "node_prefix": "prefix used to generate the node name in multislice node provision, default to empty string",
      "outlier_count": "number of outliers to show on dashboard, default to 10 if not set"
    }
    Enter {} to set default configuration for monitoring dashboard.

  Enter a value: {}