Citrix Application Delivery Management-Service

Verteilte Ablaufverfolgung

In Service Graph können Sie die verteilte Protokollierungsansicht verwenden, um:

  • Analysieren Sie die gesamte Service-Performance.

  • Visualisieren Sie den Kommunikationsfluss zwischen dem ausgewählten Dienst und seinen voneinander abhängigen Diensten.

  • Identifizieren Sie, welcher Dienst auf Fehler hinweist, und beheben Sie den fehlerhaften Dienst.

  • Zeigen Sie Transaktionsdetails zwischen dem ausgewählten Service und dem jeweils voneinander abhängigen Service an.

Voraussetzungen

Um die Ablaufverfolgungsinformationen für den Dienst anzuzeigen, müssen Sie:

  • Stellen Sie sicher, dass eine Anwendung beim Senden von Ost-West-Datenverkehr die folgenden Trace-Header aufrechterhält:

    Kopfzeilen

  • Aktualisieren Sie für CIC-Builds vor 1.7.23die CPX YAML-Datei mit NS_DISTRIBUTED_TRACING und Wert als yes

    CPX YAML

  • Für CIC-Builds, die später als 1.7.23sind, müssen Sie eine ConfigMap verwenden.

    ConfigMaps ermöglicht es Ihnen, Ihre Konfigurationen von Ihren Pods zu trennen und Ihre Workloads portabel zu machen. Mit ConfigMaps können Sie Ihre Workload-Konfigurationen einfach ändern und verwalten und den Bedarf an Hardcode-Konfigurationsdaten auf Pod-Spezifikationen reduzieren.

    Mit der ConfigMap-Unterstützung können Sie die Konfiguration automatisch aktualisieren, während der Citrix ingress controller Pod am Laufen gehalten wird. Sie müssen den Pod nach dem Update nicht neu starten. Weitere Informationen finden Sie unter ConfigMap-Unterstützung für den Ingress-Controller.

    Mit ConfigMap können Sie verteilte Ablaufverfolgung, Ereignisse, Überwachungsprotokolle usw. aktivieren oder deaktivieren. So verwenden Sie ConfigMap:

    1. Erstellen Sie eine YAML-Datei mit den erforderlichen Parametern.

      In der folgenden Beispiel-YAML-Datei ist die verteilte Ablaufverfolgung aktiviert und andere Variablen wie Audit-Logs, Ereignisse und Transaktionen deaktiviert:

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: cic-configmap
        namespace: default
      data:
        LOGLEVEL: 'debug'
        NS_PROTOCOL: 'http'
        NS_PORT: '80'
        NS_HTTP2_SERVER_SIDE: 'ON'
        NS_ANALYTICS_CONFIG: |
          distributed_tracing:
            enable: 'true'
            samplingrate: 100
          endpoint:
            server: <ADM-AgentIP> / <ADM-AppserverIP>
          timeseries:
            port: 5563
            metrics:
              enable: 'true'
              mode: 'avro'
            auditlogs:
              enable: 'false'
            events:
              enable: 'false'
          transactions:
            enable: 'false'
            port: 5557
      

      Hinweis

      Sie können die Werte für 0 Samplingrate bis 100 angeben. Citrix ADM zeigt die erwähnte Anzahl von Trace-Transaktionen an.

    2. Stellen Sie die ConfigMap bereit, indem Sie Folgendes verwenden:

      kubectl create -f <configmap-yaml>.yaml

    3. Bearbeiten Sie die CPX YAML-Datei und verwenden Sie entweder envFrom oder args, um die folgenden Argumente anzugeben:

      envFrom:
       - configMapRef:
           name: cic-configmap
      

      ODER

      YAML

      Die ConfigMap YAML-Konfiguration wird in CIC bereitgestellt.

    4. Wenn Sie den Wert für eine Variable ändern möchten, bearbeiten Sie die Werte in der ConfigMap. In diesem Beispiel werden alle anderen Variablen von false in geändert true.

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: cic-configmap
        namespace: default
      data:
        LOGLEVEL: 'debug'
        NS_PROTOCOL: 'http'
        NS_PORT: '80'
        NS_HTTP2_SERVER_SIDE: 'ON'
        NS_ANALYTICS_CONFIG: |
          distributed_tracing:
            enable: 'true'
            samplingrate: 100
          endpoint:
            server: <ADM-AgentIP> / <ADM-AppserverIP>
          timeseries:
            port: 5563
            metrics:
              enable: 'true'
              mode: 'avro'
            auditlogs:
              enable: 'true'
            events:
              enable: 'true'
          transactions:
            enable: 'true'
            port: 5557
      
    5. Wenden Sie ConfigMap erneut mit dem folgenden Befehl an:

      kubectl apply -f <yaml-file>.yaml

Details zur Service-Ablaufverfolgung anzeigen

Klicken Sie im Service-Diagramm auf einen Service, und wählen Sie Trace-Infoaus.

Trace-Info

Die Seite “Trace-Zusammenfassung” wird für den ausgewählten Dienst angezeigt.

Zusammenfassung verfolgen

Die Ablaufverfolgungsübersicht wird angezeigt:

  • Eine erweiterte Suche, mit der Sie nach Transaktionen mit Vorschlägen und Operatoren suchen können (1). Weitere Informationen finden Sie unter Erweiterte Suche.

  • Die Liste der Zeitdauer, mit der Sie die Zeitdauer auswählen können, z. B. 1 Stunde, 12 Stunden, 1 Tag, 1 Woche, 1 Monat und benutzerdefinierte Zeit (2).

  • Das Diagramm “Zeitleistendetails”, mit dem Sie die Ergebnisse für eine bestimmte Zeitdauer ziehen und auswählen können (3).

  • Im Bedienfeld “Filter” können Sie Optionen aus jeder Metrik auswählen (4).

  • Die Transaktionsdetails für den ausgewählten Service (5).

Transaktionsdetails anzeigen

Klicken Sie auf eine Transaktion, um detaillierte Informationen zu erhalten. Sie können Transaktionsdetails für den ausgewählten Service anzeigen, z. B.:

  • Startzeit

  • Endzeit

  • SSL-Metriken

  • Kommunikation mit voneinander abhängigen Diensten (zusammen mit Fehlern und Reaktionszeit bei jedem Dienst).

Das folgende Beispiel zeigt einen Fehler von catalogue-store-service. Klicken Sie auf Details zur Verfolgung anzeigen, um weitere Details zu erhalten.

Details zur Ablaufverfolgung

Die Seite Trace-Details wird angezeigt.

Transaktionen verfolgen

1 — Zeigt die Startzeit, die Antwortzeit, die Summe der Services und die Gesamtspanne für die Transaktion an.

2 — Zeigt die Details für den ausgewählten Dienst an, der mit seinen Abhängigkeitsdiensten kommuniziert hat. Sie können auf jede Transaktion klicken, um Details anzuzeigen.

3 — Zeigt die Transaktionsdetails für jeden Service an.

Nach dem Beispielbild, catalogue-store-servicezeigte einen Fehler. Klicken Sie auf die Transaktion, die für verfügbar ist catalogue-store-service.

Klicken Sie auf Transaktion

Die Transaktionsdetails zwischen product-catalogue-serviceund catalogue-store-servicegeben HTTP-Antwort als 500 an. Mit diesen Details können Sie als Administrator den fehlerhaften Service analysieren und die Fehlerbehebung product-catalogue-serviceals Lösung durchführen.

Sie können die Ergebnisse auch filtern, indem Sie Optionen aus den einzelnen Messobjekten im Bedienfeld “ Filter “ auswählen. Wenn Sie beispielsweise alle 5xx-Transaktionen anzeigen möchten, klicken Sie auf Antwortcode und wählen Sie 500aus.

Filter-Panel

  • Client RTT: Die Zeitdauer für ein Paket, das vom Client verreist wird.

  • Server RTT: Die Zeitdauer für ein Paket, das vom Server übertragen werden soll.

  • App-Reaktionszeit: Die durchschnittliche Reaktionszeit der Anwendung

  • Datentransferzeit: Die Datentransfergröße und die Rate, mit der die Übertragung von/zu einem Dienst erfolgen kann.

  • Standort: Der Clientstandort

  • Browser: Die Browsertypen, die von den Clients verwendet werden. Zum Beispiel: Chrome, Firefox.

  • Client-Betriebssystem: Das Client-Betriebssystem, das auf den Benutzer-Agent-Details aus dem Browser basiert.

  • Gerät: Die Geräte, die auf den User-Agent-Details aus dem Browser basieren. Zum Beispiel: Tablet, Mobile.

  • Anforderungsart: Die Transaktionsanforderungsart. Beispiel: GET.

  • Antwortcode: Der vom Server empfangene Antwortcode. Zum Beispiel: 501, 404, 200.

  • Inhaltstyp der Antwort: Der Transaktionsinhaltstyp. Wenn die Clientanforderung für text/html ist, muss die Antwort vom Server text/html sein.

  • SSL-Protokoll: Die SSL-Protokollversion, die von den Clients verwendet wird. Beispiel: SSLv3.

  • SSL-Verschlüsselungsstärke: Die Verschlüsselungsstärke basierend auf der Schlüsselgröße des SSL-Zertifikats wie hoch, mittel und niedrig.

  • SSL-Schlüsselstärke: Die SSL-Verschlüsselungsstärke wird aus der Schlüsselgröße des SSL-Zertifikats berechnet. Die Schlüssellänge definiert die Sicherheit des SSL-Algorithmus. Zum Beispiel: 2048

  • SSL Frontend Failure reason: Die Fehlermeldung “Front-End-SSL-Handshake”. Beispiel: SSL CLIENTAUTH FAILURE

Verteilte Ablaufverfolgung