[17.0.0.4 und höher]

Verteiltes Tracing aktivieren

Konfigurieren Sie die Umgebung, um das automatische, verteilte Tracing in JAX-RS-Anwendungen zu aktivieren. Sie können das Feature opentracing-1.0 zusammen mit einer vom Benutzer bereitgestellten opentracing.io.Tracer-Implementierung aktivieren, um JAX-RS-Anwendungen zu ermöglichen, automatisch verteilte Tracing-Informationen zu erstellen, weiterzugeben und bereitzustellen.

Informationen zu diesem Vorgang

Verteiltes Tracing
Verwenden Sie verteiltes Tracing, um den Anforderungsablauf über Servicegrenzen hinweg zu verfolgen. Das ist in einer Mikroservicesumgebung wichtig, in der eine Anforderung in der Regel mehrere Services durchläuft. Wenn verteiltes Tracing aktiv ist, erstellt jeder Service Tracesätze mit einer Korrelations-ID. Die Korrelations-ID, die verwendet wird, wurde möglicherweise von einem vorgeschalteten Service weitergegeben. Ein übliches Begleittool für die verteilte Traceprotokollierung ist ein Speicherservice für die verteilten Tracesätze. Sehen Sie sich hierzu die folgenden Beispiele an. Verwenden Sie den Speicherservice, um die Tracesätze anzuzeigen, die dem bestimmten Anforderungsablauf über Services hinweg zugeordnet sind.
Opentracing.io
Das Projekt opentracing.io stellt eine Standard-API für die Instrumentierung von Services für verteilte Traceerstellung zur Verfügung. Wenn Sie jeden Service für verteiltes Tracing mit der API opentracing.io instrumentieren, können Sie den Service zur Implementierungszeit konfigurieren. Konfigurieren Sie den Service so, dass er eine gängige Systemimplementierung für die Formatierung von Protokolldatensätzen verwendet und serviceübergreifende Korrelations-IDs weitergibt, wenn eine Implementierungsbibliothek für die Sprache des Service vorhanden ist. Die gemeinsame Implementierung gibt die Korrelations-IDs weiter, sodass sie allen Services bekannt sind. Die Implementierung formatiert auch Protokollsätze, sodass der Server sie zum Speichern verteilter Tracesätze lesen kann.

Vorgehensweise

  1. Stellen Sie ein Benutzerfeature bereit. Erstellen und installieren Sie im Verzeichnis ${wlp.user.dir}/extension ein Benutzerfeature mit einer io.opentracing.Tracer-Implementierung.
    1. Greifen Sie auf Beispielcode für ein Feature zu, das eine Zipkin-spezifische opentracing.io-API-Implementierung zur Verfügung stellt. Sie finden diesen Code auf der Seite mit der Zipkin-Opentracing-Tracer-Implementierung für die Verwendung mit Liberty. Greifen Sie auf eine Buildversion des Benutzerfeatures zu, dass eine Zipkin-spezifische opentracing.io-API-Implementierung im Maven-Repository bereitstellt.
    2. Stellen Sie über das Benutzerfeature einen OSGi-Service zur Verfügung, der die com.ibm.ws.opentracing.tracer.OpentracingTracerFactory-Schnittstelle implementiert:
      package com.ibm.ws.opentracing.tracer;
      
      import io.opentracing.Tracer;
      
      public interface OpentracingTracerFactory {
      
          Tracer newInstance(String serviceName);
      
      }
    1. Setzen Sie die newInstance-Methode der OpentracingTracerFactory-Implementierung auf ein io.opentracing.Tracer-Objekt. Stellen Sie sicher, dass das vom Programm zurückgegebene Tracer-Objekt die richtige Implementierung für die Umgebung ist, in der die Services ausgeführt werden. In dem Beispiel für die Zipkin-Opentracing-Tracer-Implementierung für die Verwendung mit Liberty ist der Tracer eine Instanz, die in einer Umgebung kommuniziert, in der ein Zipkin-Server verfügbar ist.
    2. Wenn die Umgebung keinen Zipkin-Server verwendet, ändern Sie die Implementierung, um ein Tracer-Objekt bereitzustellen, das mit dem verteilten Tracing-Server in der Umgebung kommuniziert. Sie erstellen zwei Artefakte, wenn Sie ein Benutzerfeature erstellen:
      • Eine .jar-Datei mit der OpentracingTracerFactory-Implementierung und der Tracer-Implementierung.
      • Eine mf-Datei mit der Beschreibung des Benutzerfeatures.

      In dem Beispiel für die Zipkin-Opentracing-Tracer-Implementierung für die Verwendung mit Liberty werden zwei Dateien an den folgenden Positionen erstellt:

      target/extension/lib/com.ibm.ws.opentracing.zipkintracer-0.30.jar
      target/extension/lib/features/opentracingZipkin-0.30.mf
    3. Kopieren Sie die Datei .jar mit der Implementierung in das Verzeichnis ${wlp.user.dir}/extension/lib für alle Liberty-Server in der Umgebung.
    4. Kopieren Sie die Datei .mf mit der Featurebeschreibung in das Verzeichnis ${wlp.user.dir}/extension/lib/features für alle Liberty-Server in der Umgebung.
  2. Konfigurieren Sie den Server. Aktivieren Sie in den Serverumgebungen in den server.xml-Dateien das Benutzerfeature.
    1. Aktivieren Sie das Feature in jedem der Liberty-Server in der Umgebung. Die von Ihnen erstellte Datei .mf enthält eine Eigenschaft mit dem Namen IBM-ShortName. Der Wert der Eigenschaft IBM-ShortName ist der Featurename, der in der Datei server.xml für jeden der Liberty-Server aktiviert ist. In dem Beispiel für die Zipkin-Opentracing-Tracer-Implementierung für die Verwendung mit Liberty ist der Wert der IBM-ShortName-Eigenschaft opentracingZipkin-0.30. Fügen Sie jeder server.xml-Datei den folgenden Code hinzu, um dieses Feature zu aktivieren:
      <featureManager>
      	<feature>usr:opentracingZipkin-0.30</feature>
      </featureManager>
      Das Beispiel in der Zipkin-Opentracing-Tracer-Implementierung für die Verwendung mit Liberty akzeptiert Konfigurationsparameter aus der Datei server.xml. Wenn Sie in der Umgebung keine Verbindung zum Zipkin-Server mit dem Standardservicenamen zipkin und dem Standardport 9411 herstellen können, konfigurieren Sie den Host und Port, indem Sie jedem Server ein opentracingZipkin-Konfigurationselement hinzufügen:
      <opentracingZipkin host=”Zipkin-Hostname” port=”Zipkin-Portnummer”/>

Symbol das den Typ des Artikels anzeigt. Taskartikel

Dateiname: twlp_dist_tracing.html