Hinzufügen benutzerdefinierter Attribute
CloudWatch Application Signals verwendet OpenTelemetry, um Ihre Anwendungen automatisch zu instrumentieren und Spans aus gängigen Bibliotheken in verschiedenen Sprachen wie Java, Python und mehr zu erfassen.
Die automatische Instrumentierung erfasst Informationen wie Datenbankabfragen, HTTP-Anforderungen, Cache-Zugriffe und externe Serviceaufrufe, sodass Sie Probleme mit der Anwendungsleistung beheben können.
Sie können benutzerdefinierte Instrumentierung hinzufügen, um Spans mit geschäftsspezifischen Daten oder anderen Informationen, die Sie erfassen möchten, anzureichern. Diese Daten können als benutzerdefiniertes Attribut oder als Span-Ereignis aufgezeichnet werden und bieten so Einblicke, die auf Ihre Bedürfnisse bei der Fehlerbehebung zugeschnitten sind.
Anmerkung
Informationen zum Hinzufügen von benutzerdefinierten Attributen oder Span-Ereignissen in einer anderen Sprache finden Sie unter Sprach-APIs und SDKS
Benutzerdefinierte Attribute
Sie können Ihren Spans geschäftsbezogene Attribute oder andere Attribute in allen von OpenTelemetry unterstützten Sprachen hinzufügen. Im Folgenden finden Sie einen Java-Codeausschnitt, der einem Span eine Bestellnummer und Kundendetails hinzufügt.
import io.opentelemetry.api.trace.Span; public class OrderProcessor { public void processOrder() { Span span = Span.current(); span.setAttribute("order.id", "123456"); span.setAttribute("customer.name", "John Doe"); span.setAttribute("customer.id", "4343dfdd"); // Your order processing logic here System.out.println("Order processed with custom attributes"); } }
Nachdem diese Attribute dem Bereich hinzugefügt wurden, können sie im visuellen Editor für die Transaktionssuche gesucht und analysiert werden.
Span-Ereignisse
Ein Span-Ereignis wird in der Regel verwendet, um einen aussagekräftigen, singulären Zeitpunkt während einer Span-Dauer zu benennen. Ausnahmen werden durch automatische Instrumentierung automatisch als Span-Ereignisse erfasst. Sie können jedoch auch benutzerdefinierte Geschäftsereignisse hinzufügen, z. B. den Zahlungsstatus oder den Abbruch eines Einkaufswagens. Weitere Informationen finden Sie unter Span-Ereignisse
Sie können Span-Ereignisse in Ihre Spans in allen Sprachen einbetten, die CloudWatch Application Signals und OpenTelemetry-Support unterstützen. Im Folgenden finden Sie einen Java-Codeausschnitt zum Hinzufügen eines benutzerdefinierten Ereignisses zu einem Span.
import io.opentelemetry.api.trace.Span; public class OrderProcessor { public void bookOrder() { Span span = Span.current(); // Add a booking started event span.addEvent("booking started"); // Add a payment succeeded event or failed event span.addEvent("booking failed"); } }
Voraussetzungen für den CloudWatch-Agenten
Wenn Sie den CloudWatch-Agenten verwenden, um Span-Ereignisse an X-Ray zu senden, müssen Sie das `transit_spans_in_otlp_format`-Flag in Ihrer Konfiguration aktivieren.
{ "traces": { ... "transit_spans_in_otlp_format": true ... } }
Nachdem Sie diese Ereignisse hinzugefügt haben, werden sie im visuellen Editor der Transaktionssuche verfügbar.
CloudWatch-Logs-Abfragen
Sie können Span-Ereignisse in CloudWatch Logs abfragen, um erweiterte Einblicke zu erhalten. Die folgenden Beispiel-Abfragebefehle zeigen, wie Sie Ausnahmen analysieren, die von Ihrer Anwendung ausgelöst wurden:
fields jsonparse(@message) as js | unnest js.events into event | filter event.name = "exception" | display event.attributes.`exception.stacktrace`
fields jsonparse(@message) as js | unnest js.events into event | filter event.name = "exception" | stats count() by event.attributes.`exception.type`