Best Practices für Google Cloud Apigee-Supportfälle

Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen.

Wenn Sie im Supportfall detaillierte und erforderliche Informationen angeben, ist es für das Google Cloud-Supportteam leichter, Ihnen schnell und effizient zu antworten. Wenn in Ihrem Support kritische Details fehlen, müssen wir nach weiteren Informationen fragen, was unter Umständen mehrmals erforderlich ist. Dieser Vorgang dauert länger und kann zu Verzögerungen bei der Problembehebung führen. In diesem Best Practices-Leitfaden erfahren Sie, welche Informationen wir benötigen, um Ihren technischen Supportfall schneller bearbeiten zu können.

Problem beschreiben

Die Beschreibung des Problems sollte Informationen dazu enthalten, was geschehen ist, was hätte geschehen sollen und wann und wie das Problem aufgetreten ist. Ein guter Supportfall sollte die folgenden wichtigen Informationen zu jedem Apigee-Produkt enthalten:

Schlüsselinformationen Beschreibung Apigee in Google Cloud Apigee hybrid
Produkt Bestimmtes Apigee-Produkt, in dem das Problem auftritt, einschließlich Versionsinformationen, falls zutreffend
  • Hybridversion
Problemdetails Klare und ausführliche Problembeschreibung, die das Problem zusammen mit der vollständigen Fehlermeldung beschreibt, falls vorhanden.
  • Fehlermeldung
  • Ausgabe des Debugging-Tools
  • Schritte zum Reproduzieren des Problems
  • API-Anfrage/-Befehl abschließen
  • Fehlermeldung
  • Ausgabe des Debugging-Tools
  • Schritte zum Reproduzieren des Problems
  • API-Anfrage/-Befehl abschließen
  • Diagnoseprotokolle der Komponente
  • Cloud Monitoring-Messwerte
Zeit Der spezifische Zeitstempel für den Beginn und das Ende des Problems.
  • Datum, Uhrzeit und Zeitzone des Problems
  • Dauer des Problems
  • Datum, Uhrzeit und Zeitzone des Problems
  • Dauer des Problems
Setup Detaillierte Informationen, unter denen das Problem beobachtet wird.
  • Name der Organisation
  • Env-Name
  • Name des API-Proxys
  • Revision

In den folgenden Abschnitten sind diese Konzepte detaillierter beschrieben.

Produkt

Es gibt verschiedene Apigee-Produkte, Apigee in Google Cloud und Apigee Hybrid. Daher benötigen wir genaue Informationen darüber, bei welchem Produkt das Problem auftritt.

Die folgende Tabelle enthält einige Beispiele für vollständige Informationen in der Spalte DOs und unvollständige Informationen in der Spalte DON'Ts:

DOs DON'Ts
Die Bereitstellung des API-Proxys OAuth2 ist in unserer Apigee on Google Cloud-Organisation fehlgeschlagen ...

Bereitstellung des API-Proxys fehlgeschlagen

(Wir müssen das Apigee-Produkt kennen, in dem das Problem auftritt.)

Beim Zugriff auf Cassandra mit cqlsh in Apigee Hybrid Version 1.3 wird der folgende Fehler angezeigt...

Wir können nicht mit cqlsh auf Cassandra zugreifen.

(Informationen zur Hybridversion fehlen)

Problemdetails

Geben Sie genaue Informationen zum beobachteten Problem an, einschließlich der Fehlermeldung (falls vorhanden) und des erwarteten und tatsächlichen Verhaltens.

Die folgende Tabelle enthält einige Beispiele für vollständige Informationen in der Spalte DOs und unvollständige Informationen in der Spalte DON'Ts:

DOs DON'Ts

Neuer edgemicro-Proxy edgemicro_auth schlägt mit folgendem Fehler fehl:

{"error":"missing_authorization","error_description":"Missing Authorization header"}

Neuer edgemicro-Proxy wurde heute nicht erstellt

(Der Proxyname ist unbekannt. Es ist nicht klar, ob der Proxy einen Fehler oder eine unerwartete Antwort zurückgibt.)

Unsere Clients erhalten bei Anfragen an den API-Proxy 500-Fehler mit der folgenden Fehlermeldung:

{"fault":{"faultstring":"Execution of JSReadResponse failed with error: Javascript runtime error: \"TypeError: Cannot read property \"content\" from undefined. (JSReadResponse.js:23)","detail":{"errorcode":"steps.javascript.ScriptExecutionFailed"}}}

Unsere Clients erhalten 500-Fehler, wenn sie Anfragen an den API-Proxy senden.

(Wenn Sie 500-Fehler einfach nur mitteilen, fehlen uns Informationen, um das Problem zu untersuchen. Wir müssen die tatsächliche Fehlermeldung und den tatsächlich aufgetretenen Fehlercode kennen.)

Zeit

Die Zeit ist sehr wichtig. Der Support-Entwickler muss wissen, wann Sie das Problem erstmals bemerkt haben, wie lange es anhielt und ob das Problem weiterhin auftritt.

Der Support-Entwickler, der das Problem bearbeitet, befindet sich möglicherweise nicht in Ihrer Zeitzone. Daher erschweren relative Aussagen des Zeitraums die Diagnose des Problems. Es wird daher empfohlen, für das Datum und den Zeitstempel das ISO 8601-Format zu verwenden, um genaue Angaben dazu bereitzustellen, wann das Problem beobachtet wurde.

Die folgende Tabelle enthält einige Beispiele, die den genauen Zeitpunkt und die Dauer des Auftretens des Problems in der Spalte DOs und mehrdeutige oder unklare Informationen darüber, wann das Problem auftrat, in der Spalte DON'Ts zeigen:

DOs DON'Ts
Riesige Anzahl von 503s wurde gestern zwischen dem 06.11.2020 um 17:30 Uhr (UTC) und dem 06.11.2020 um 17:35 Uhr (UTC) beobachtet...

Riesige Anzahl von 503s gestern um 17:30 Uhr für 5 Minuten beobachtet.

(Die Verwendung des implizierten Datums ist zwingend erforderlich. Außerdem ist unklar, in welcher Zeitzone das Problem beobachtet wurde.)

Starke Latenzen wurden bei den folgenden API-Proxys von 09.11.2020, 15:30 IST, bis zum 09.11.2020 um 18:10 IST beobachtet ...

In der letzten Woche wurden bei einigen API-Proxys hohe Latenzen beobachtet.

Dabei ist nicht ersichtlich, an welchem Tag und zu welcher Uhrzeit dieses Problem in der letzten Woche aufgetreten ist.

Einrichtung

Wir benötigen genaue Angaben dazu, wo genau das Problem auftritt. Je nach verwendetem Produkt benötigen wir die folgenden Informationen:

  • Wenn Sie mit Apigee in Google Cloud arbeiten, haben Sie möglicherweise mehrere Organisationen. Wir müssen die Organisation (und andere Details) kennen, bei der das Problem beobachtet wurde:
    • Organisations- und Umgebungsnamen
    • API-Proxyname und Revisionsnummern (bei API-Anfragefehlern)
  • Wenn Sie Hybrid verwenden, verwenden Sie möglicherweise eine der vielen unterstützten Hybridplattformen und Installationstopologien. Wir müssen wissen, welche Hybridplattform und Topologie Sie verwenden, einschließlich der Details wie Anzahl der Rechenzentren und Knoten.

Die folgende Tabelle enthält einige Beispiele für vollständige Informationen in der Spalte DOs und unvollständige Informationen in der Spalte DON'Ts:

DOs DON'Ts

401-Fehler treten in Apigee on Google Cloud seit dem 06.11.2020 um 09:30 Uhr (UTC) häufiger auf.

Apigee-Einrichtungsdetails:

Die Details der fehlgeschlagenen API sind:
Org.-Namen: myorg
Envs: test
API-Proxy-Namen: myproxy
Überarbeitungsnummern: 3

Fehler:

{"fault":{"faultstring":"Failed to resolve API Key variable request.header.X-APP-API_KEY","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}

401 Fehler sind gestiegen.

Er enthält keine Informationen über das verwendete Produkt, da das Problem beobachtet wird, sowie keine Konfigurationsdetails.

Debug schlägt mit dem folgenden Fehler in Apigee Hybrid 1.3 fehl

Fehler:

Error while Creating trace session for corp-apigwy-discovery, revision 3, environment dev.

Failed to create DebugSession {apigee-hybrid-123456 dev corp-apigwy-discovery 3 ca37384e-d3f4-4971-9adb-dcc36c392bb1}

Einrichtung von Apigee Hybrid:

  • Apigee Hybrid-Plattform:
    Anthos GKE On-Prem Version 1.4.0
  • Google Cloud-Projekt, Hybrid-Organisation und -Umgebung
    Google Cloud-Projekt-ID: apigee-hybrid-123456
    Apigee Hybrid org: apigee-hybrid-123456
    Apigee Hybrid env: dev
  • Details zum Kubernetes-Clusternamen:
    k8sCluster:
    Name: user-cluster-1
    Region: us-east1
  • Netzwerktopologie
    Hängt die Datei network-topology.png an.
Debugging schlägt in Apigee Hybrid fehl.

Nützliche Artefakte

Die Bereitstellung von Artefakten, die mit dem Problem zusammenhängen, beschleunigt die Problemlösung, da wir so das Verhalten besser nachvollziehen und analysieren können.

In diesem Abschnitt werden einige nützliche Artefakte beschrieben, die für alle Apigee-Produkte hilfreich sind:

Gängige Artefakte für alle Apigee-Produkte

Die folgenden Artefakte sind für alle Apigee-Produkte nützlich: Apigee in Google Cloud und Apigee Hybrid:

Artefakt Beschreibung
Ausgabe des Debugging-Tools Die Ausgabe des Debug-Tools enthält detaillierte Informationen zu den API-Anfragen, die durch Apigee-Produkte fließen. Dies ist bei Laufzeitfehlern wie 4XX, 5XX und Latenzproblemen hilfreich.
Screenshots Screenshots vermitteln den Kontext des tatsächlichen Verhaltens oder beobachteten Fehlers. Sie ist hilfreich, wenn Fehler oder Probleme beobachtet werden, etwa in der Benutzeroberfläche oder in Analytics.
HAR (Http ARchive) HAR ist eine Datei, die von HTTP-Sitzungstools für die Behebung von Problemen mit der Benutzeroberfläche erfasst wird. Dies kann mit Browsern wie Chrome, Firefox oder Internet Explorer erfasst werden.
tcpdumps Das tcpdump-Tool erfasst TCP/IP-Pakete, die über das Netzwerk übertragen oder empfangen werden. Dies ist bei netzwerkbezogenen Problemen wie TLS-Handshake-Fehlern, 502-Fehlern und Latenzproblemen usw.

Zusätzliche Artefakte für Hybrid

Für Hybrid benötigen wir möglicherweise zusätzliche Artefakte, die eine schnellere Diagnose von Problemen ermöglichen.

Artefakt Beschreibung
Plattform von Apigee Hybrid Geben Sie eine der folgenden unterstützten Hybridplattformen an:
  • GKE
  • GKE On-Prem
  • AKS (Azure Kubernetes Service)
  • Amazon EKS
  • GKE on AWS
Apigee Hybrid und abhängige Komponentenversionen
  • Apigee Hybrid-CLI-Version:
    apigeectl-Version
  • Apigee Connect-Agent-Version:
    kubectl -n=apigee get pods -l app=apigee-connect-agent -o=json | jq '.items[].spec.containers[].image'
  • Apigee MART-Version:
    kubectl -n=apigee get pods -l app=apigee-mart -o=json | jq '.items[].spec.containers[].image'
  • Apigee Synchronizer-Version:
    kubectl -n=apigee get pods -l app=apigee-synchronizer -o=json | jq '.items[].spec.containers[].image'
  • Apigee Cassandra-Version:
    kubectl -n=apigee get pods -l app=apigee-cassandra -o=json | jq '.items[].spec.containers[].image'
  • Apigee-Laufzeitversion:
    kubectl -n=apigee get pods -l app=apigee-runtime -o=json | jq '.items[].spec.containers[].image'
  • Kubernetes-Befehlszeile und Serverversionen:
    kubectl-Version
  • Istio Befehlszeile und Serverversionen:
    istioctl-Version
Netzwerktopologie Das Apigee-Installationstopologiediagramm zur Beschreibung Ihrer Hybrideinrichtung mit allen Rechenzentren, Kubernetes-Clustern, Namespaces und Pods.
Überschreibt YAML-Datei Die Datei overrides.yaml, die in jedem Rechenzentrum zum Installieren der Apigee Hybrid-Laufzeitebene verwendet wird.
Status der Bereitstellung von Apigee Hybrid

Die Ausgabe der folgenden Befehle in jedem Rechenzentrum/Kubernetes-Cluster:

kubectl get pods -A
kubectl get services -A

Apigee Hybrid-Komponentenkomponenten

Geben Sie Links zu den Stackdriver-Logs für die Hybrid-Komponenten an ODER

Sie können die Protokolle der Apigee Hybrid-Komponenten mit den folgenden Befehlen in jedem Rechenzentrum/Kubernetes-Cluster abrufen und mit uns teilen:

kubectl -n {namespace} get pods
kubectl -n {namespace} logs {pod-name}

  • Apigee Connect-Agent-Logs:
    kubectl -n {namespace} get pods
    kubectl -n {namespace} logs {apigee-connect-agent-pod-name}
  • MART Logs:
    kubectl -n {namespace} get pods
    kubectl -n {namespace} logs {apigee-mart-pod-name}
  • Synchronizer Logs:
    kubectl -n {namespace} get pods
    kubectl -n {namespace} logs {synchronizer-pod-name}
  • Apigee Cassandra-Logs:
    kubectl -n {namespace} get pods
    kubectl -n {namespace} logs {apigee-cassandra-pod-name}
  • MP/Apigee-Laufzeitlogs (von allen Apigee-Laufzeit-Pods):
    kubectl -n {namespace} get pods
    kubectl -n {namespace} logs {apigee-runtime-pod-name}
Logs beschreiben

Detaillierte Informationen zum Pod.

Dies ist insbesondere dann hilfreich, wenn Probleme wie Pods auftreten, die im Status CrashLoopBackoff hängen bleiben.

kubectl -n apigee describe pod {pod-name}

Cloud Monitoring
  • Link zu Ihrem Messwert-Dashboard
  • Snapshots von Dashboards im Zusammenhang mit Cloud Monitoring-Messwerten.

Fallvorlagen und Beispielfälle

Dieser Abschnitt enthält Fallvorlagen und Beispielfälle für verschiedene Produkte gemäß den in diesem Dokument beschriebenen Best Practices:

Apigee Cloud

Vorlage

Dieser Abschnitt enthält eine Beispielvorlage für Apigee in Google Cloud.

Problem:

<Geben Sie eine detaillierte Beschreibung des Problems oder des beobachteten Verhaltens an. Geben Sie den Produktnamen und die Version an, falls zutreffend.>

Fehlermeldung:

<Geben Sie die vollständige angezeigte Fehlermeldung an (falls vorhanden)>

Problemstartzeit (ISO 8601-Format):

Problemendzeit (ISO 8601-Format):

Apigee-Einrichtungsdetails:
Org.-Namen:
Umg.-Namen:
API-Proxy-Namen:
Revisionsnummern:

Zu reproduzierende Schritte:

<Geben Sie nach Möglichkeit Schritte zum Reproduzieren des Problems an>

Diagnosedaten:

<Liste der angehängten Dateien>

Beispielfall

Dieser Abschnitt enthält einen Beispielfall für Apigee in Google Cloud.

Problem:

In der Public Cloud-Organisation werden viele 503-Dienstfehler nicht angezeigt. Können Sie sich das Problem genauer ansehen oder es beheben oder uns eine Lösung vorschlagen?

Fehlermeldung:

{"fault":{"faultstring":"The Service is temporarily available", "detail":{"errorcode":"messaging.adaptors.http.flow.ServiceUnavailable"}}}

Problemstartzeit (ISO 8601-Format): 2020-04-06:30 ISSST

Problemendzeit (ISO 8601-Format): Das Problem besteht weiterhin.

Edge-Cloud-Einrichtungsdetails:
Org.-Namen: myorg
Umg.-Namen: dev
API-Proxy-Namen: myproxy
Revisionsnummern: 3

Zu reproduzierende Schritte:

Führen Sie den folgenden curl-Befehl aus, um das Problem zu reproduzieren:

curl -X GET 'https://myorg-dev.apigee.net/v1/myproxy'

Diagnosedaten:

Ausgabe des Debugging-Tools (trace-503.xml)

Hybrid

Vorlage

Dieser Abschnitt enthält eine Beispielvorlage für Apigee Hybrid.

Problem:

<Geben Sie eine detaillierte Beschreibung des Problems oder des beobachteten Verhaltens an. Geben Sie den Produktnamen und die Version an, falls zutreffend.>

Fehlermeldung:

<Geben Sie die vollständige angezeigte Fehlermeldung an (falls vorhanden)>

Problemstartzeit (ISO 8601-Format):

Problemendzeit (ISO 8601-Format):

Einrichtung von Apigee Hybrid:

  • Apigee Hybrid-Plattform:

    <Informationen für die Plattform bereitstellen, auf der Sie Hybrid und die zugehörige Version installiert haben>

  • Google Cloud-Projekt, hybride Organisation und Umgebung:
    Google Cloud-Projekt-ID:
      <Wenn Sie Google Kubernetes Engine (GKE) verwenden), müssen Sie die Projekt-ID angeben, in der sich die Cluster befinden. Wenn Sie GKE On-Prem, Azure Kubernetes Service oder Amazon EKS verwenden, geben Sie die Projekt-ID an, an die Sie die Logs senden möchten.>
    Apigee hybrid org:
    Apigee hybrid env:
  • Apigee Hybrid und andere CLI-Versionen:
    Apigee Hybrid CLI (apigeectl)-Version:
    Kubectl-Version:
  • Details zum Kubernetes-Clusternamen:
    k8sCluster:
    Name:
    Region:
  • Netzwerktopologie:
    <Fügen Sie die Netzwerktopologie hinzu, die die Einrichtung Ihres Apigee-Hybridnetzwerks einschließlich Rechenzentren, Kubernetes-Clustern, Namespaces und Pods beschreibt.>
  • Überschreibt die YAML-Datei:
    <Anhängen der YAML-Datei anhängen>

Zu reproduzierende Schritte

<Geben Sie nach Möglichkeit Schritte zum Reproduzieren des Problems an>

Diagnosedaten:

<Liste der angehängten Dateien>

Beispielfall

Dieser Abschnitt enthält einen Beispielfall für Apigee Hybrid.

Problem:

Beim Ausführen von Management-APIs in Apigee Hybrid 1.3 werden Fehler ausgegeben.

Fehlermeldung:

[ERROR] 400 Bad Request
{
"error": {
"code": 400,
"message": "Error processing MART request: INTERNAL_ERROR",
"errors": [
{
"message": "Error processing MART request: INTERNAL_ERROR",
"domain": "global",
"reason": "failedPrecondition"
}
],
"status": "FAILED_PRECONDITION"
}
}

Problemstartzeit (ISO 8601-Format): Seit 24.10.2020, 10:30 Uhr PDT

Problemendzeit (ISO 8601-Format): Das Problem wird fortgesetzt.

Einrichtung von Apigee Hybrid:

  • Apigee Hybrid-Plattform
    GKE-Version 1.15.1
  • Google Cloud-Projekt, Hybrid-Organisation und -Umgebung
    Google Cloud-Projekt-ID: apigee-hybrid-123456
      Hinweis: Das ist die ID des Projekts, in dem sich die Cluster befinden
    Apigee hybrid org: apigee-hybrid-123456
    Apigee hybrid env: dev
  • Apigee Hybrid und andere CLI-Versionen:
    Version von Apigee Hybrid CLI (apigeectl):
    Version: 1.2.0
    Commit: ac09109
    Build-ID: 214
    Build-Zeit: 2020-03-30T20:23:36Z
    Go-Version: go1.12

    Kubectl-Version:
    Clientversion:
    version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:40:16Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"darwin/amd64"}

        Serverversion:
    version.Info{Major:"1", Minor:"14+", GitVersion:"v1.14.10-gke.36", GitCommit:"34a615f32e9a0c9e97cdb9f749adb392758349a6", GitTreeState:"clean",
  • Details zum Kubernetes-Clusternamen:
    k8sCluster:
    Name: user-cluster-1
    Region: us-east1
  • Netzwerktopologie
    Hängt die Datei network-topology.png an
  • Überschreibt YAML-Datei
    Hängt die Datei overrides.yaml an

Zu reproduzierende Schritte:

Führen Sie die folgende Verwaltungs-API aus, um den Fehler zu beobachten:

curl -X GET --header "Authorization: Bearer <TOKEN>" "https://apigee.googleapis.com/v1/organizations/apigee-hybrid-123456/environments/dev/keyvaluemaps"

Diagnosedaten:

Folgende Dateien wurden angehängt:

  • network-topology.png
  • overrides.yaml file
  • MART-Logs
  • Synchronizer-Logs