Hinzufügen von Anmerkungen und Metadaten zu Segmenten mit dem X-Ray-SDK SDK for Java - AWS X-Ray

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Hinzufügen von Anmerkungen und Metadaten zu Segmenten mit dem X-Ray-SDK SDK for Java

Sie können den Anmerkungen und Metadaten zusätzliche Informationen zu Anforderungen hinzufügen. Sie können den von X-Ray-SDK erstellten Segmenten oder benutzerdefinierten Untersegmenten Anmerkungen und Metadaten hinzufügen.

Annotationensind Schlüsselwertpaare mit Zeichenfolge, Zahl oder booleschen Werten. Anmerkungen werden für die Verwendung mitFilterausdrückeaus. Berücksichtigen Sie Anmerkungen, um Daten zur Gruppierung von Ablaufverfolgungen in der Konsole zu verwenden, oder wenn Sie die GetTraceSummaries-API aufrufen.

Metadatasind Schlüsselwertpaare, die Werte jeglicher Art enthalten können, einschließlich Objekte und Listen, jedoch nicht für die Verwendung mit Filterausdrücken. Verwenden Sie Metadaten zum Aufzeichnen zusätzlicher Daten, die im Ablaufverfolgung gespeichert werden sollen, aber nicht mit der Suche erforderlich sind.

Zusätzlich zu Anmerkungen und Metadaten können Sie auch Benutzer-ID-Zeichenfolgen in Segmenten aufzeichnen. Benutzer-IDs werden in einem eigenen Feld aufgezeichnet und zur Suche indiziert.

Aufzeichnen von Anmerkungen mit dem X-Ray-SDK SDK for Java

Verwenden Sie Anmerkungen, um Informationen zu Segmenten oder Untersegmenten, die zur Suche indiziert werden sollten, aufzuzeichnen.

Anmerkung zu Anforderungen

  • Schlüssel— Bis zu 500 alphanumerische Zeichen. Keine Leerzeichen oder Symbole außer Unterstrichen.

  • Werte— Bis zu 1.000 Unicode-Zeichen.

  • Einträge— Bis zu 50 Anmerkungen pro Ablaufverfolgung.

So zeichnen Sie Anmerkungen auf

  1. Eine Referenz des aktuellen Segments oder Untersegments finden Sie unter AWSXRay.

    import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Segment; ... Segment document = AWSXRay.getCurrentSegment();

    oder

    import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Subsegment; ... Subsegment document = AWSXRay.getCurrentSubsegment();
  2. Rufen Sie putAnnotation mit einem Aktivierungsschlüssel und einem booleschen Wert oder einem Zeichenfolgenwert auf.

    document.putAnnotation("mykey", "my value");

Das SDK zeichnet Anmerkungen als Schlüssel-Wert-Paare in einem annotations-Objekt im Segmentdokument auf. Wenn putAnnotation zweimal mit demselben Schlüssel aufgerufen wird, werden zuvor aufgezeichnete Werte im gleichen Segment oder Untersegment überschrieben.

Nutzen Sie das annotations.key-Schlüsselwort in einem Filterausdruck, um Ablaufverfolgungen durch Anmerkungen mit bestimmten Werten zu finden.

Beispiel src/main/java/scorekeep/GameModel.java— Anmerkungen und Metadaten

import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Segment; import com.amazonaws.xray.entities.Subsegment; ... public void saveGame(Game game) throws SessionNotFoundException { // wrap in subsegment Subsegment subsegment = AWSXRay.beginSubsegment("## GameModel.saveGame"); try { // check session String sessionId = game.getSession(); if (sessionModel.loadSession(sessionId) == null ) { throw new SessionNotFoundException(sessionId); } Segment segment = AWSXRay.getCurrentSegment(); subsegment.putMetadata("resources", "game", game); segment.putAnnotation("gameid", game.getId()); mapper.save(game); } catch (Exception e) { subsegment.addException(e); throw e; } finally { AWSXRay.endSubsegment(); } }

Aufzeichnen von Metadaten mit dem X-Ray-SDK SDK for Java

Verwenden Sie Metadaten, um Segment- oder Untersegmentinformationen aufzuzeichnen, die nicht zur Suche indiziert werden müssen. Metadatenwerte sind Zeichenfolgen, Zahlen, boolesche Werte oder andere Objekte, die in Form eines JSON-Objekts oder eines Arrays angeordnet sein können.

So zeichnen Sie Metadaten auf

  1. Eine Referenz des aktuellen Segments oder Untersegments finden Sie unter AWSXRay.

    import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Segment; ... Segment document = AWSXRay.getCurrentSegment();

    oder

    import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Subsegment; ... Subsegment document = AWSXRay.getCurrentSubsegment();
  2. Rufen Sie putMetadata mit einem String-Namespace, einem Aktivierungsschlüssel sowie einem booleschen Wert, einer Zahl, einer Zeichenfolge oder einem Objektwert auf.

    document.putMetadata("my namespace", "my key", "my value");

    oder

    Rufen Sie putMetadata nur mit einem Aktivierungsschlüssel und einem Wert auf.

    document.putMetadata("my key", "my value");

Wenn Sie keinen Namespace angeben, verwendet SDK default. Wenn putMetadata zweimal mit demselben Schlüssel aufgerufen wird, werden zuvor aufgezeichnete Werte im gleichen Segment oder Untersegment überschrieben.

Beispiel src/main/java/scorekeep/GameModel.java— Anmerkungen und Metadaten

import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Segment; import com.amazonaws.xray.entities.Subsegment; ... public void saveGame(Game game) throws SessionNotFoundException { // wrap in subsegment Subsegment subsegment = AWSXRay.beginSubsegment("## GameModel.saveGame"); try { // check session String sessionId = game.getSession(); if (sessionModel.loadSession(sessionId) == null ) { throw new SessionNotFoundException(sessionId); } Segment segment = AWSXRay.getCurrentSegment(); subsegment.putMetadata("resources", "game", game); segment.putAnnotation("gameid", game.getId()); mapper.save(game); } catch (Exception e) { subsegment.addException(e); throw e; } finally { AWSXRay.endSubsegment(); } }

Aufzeichnen von Benutzer-ID mit dem X-Ray-SDK SDK for Java

Zeichnen Sie Benutzer-IDs in Anforderungssegmenten auf, um den Benutzer zu identifizieren, der die Anforderung gesendet hat.

So zeichnen Sie Benutzer-IDs auf

  1. Eine Referenz des aktuellen Segments finden Sie unter AWSXRay.

    import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.entities.Segment; ... Segment document = AWSXRay.getCurrentSegment();
  2. Rufen Sie setUser mit einer Zeichenfolgen-ID des Benutzers auf, der die Anforderung gesendet hat.

    document.setUser("U12345");

Sie können setUser in Ihrem Controller aufrufen, um die Benutzer-ID aufzuzeichnen, sobald die Anwendung mit der Bearbeitung einer Anfrage beginnt. Wenn Sie das Segment nur zur Einrichtung der Benutzer-ID verwenden, können Sie die Aufrufe in einer einzelnen Zeile anordnen.

Beispiel src/main/java/scorekeep/MoveController.java— Benutzer-ID

import com.amazonaws.xray.AWSXRay; ... @RequestMapping(value="/{userId}", method=RequestMethod.POST) public Move newMove(@PathVariable String sessionId, @PathVariable String gameId, @PathVariable String userId, @RequestBody String move) throws SessionNotFoundException, GameNotFoundException, StateNotFoundException, RulesException { AWSXRay.getCurrentSegment().setUser(userId); return moveFactory.newMove(sessionId, gameId, userId, move); }

Nutzen Sie das user-Schlüsselwort in einem Filterausdruck, um Ablaufverfolgungen einer Benutzer-ID zu finden.