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.
Konfiguration der adaptiven Probenahme
Das Fehlen kritischer Spuren bei Anomaliespitzen kann die Ursachenanalyse erschweren. Die Aufrechterhaltung hoher Probenraten ist jedoch teuer. Die adaptive Röntgenprobenentnahme bietet einen vollständigen Überblick über Anomalien und kontrolliert die Kosten während des normalen Betriebs. Bei der adaptiven Abtastung legen Sie eine maximale Abtastrate fest, und X-Ray passt sich automatisch innerhalb dieser Grenze an. X-Ray berechnet den minimalen Boost, der zur Erfassung von Fehlerspuren erforderlich ist. Wenn Ihre Basisrate genügend Daten erfasst, erfolgt kein Boost. Sie zahlen nur für zusätzliche Probenahmen, wenn sie benötigt werden.
Vorteile der adaptiven Probenahme:
Vollständige Transparenz bei Vorfällen — Verschaffen Sie sich vollständige Nachverfolgbarkeit von Vorfällen ohne manuelles Eingreifen. X-Ray passt die Abtastraten automatisch an, um Fehlerspuren zu erfassen, und kehrt dann zu normalen Raten zurück.
Sichtbarkeit der Ursache — Erkennen Sie stets die Ursache von Problemen. X-Ray erfasst kritische Fehlerdaten, auch wenn keine vollständige Spurenprobenahme ausgelöst wird.
Kosten optimieren — Kurzfristige Probenahmen (bis zu 1 Minute) und automatische Abklingzeiten verhindern eine Überprobennahme. Sie zahlen nur für die Daten, die Sie zur Problemdiagnose benötigen.
Themen
Unterstützte Plattformen SDKs und Plattformen
Unterstütztes SDK — Adaptive Sampling erfordert die neueste Version des ADOT SDK.
Unterstützte Sprache — Java (Version v2.11.5
Ihre Anwendung muss mit dem unterstützten ADOT SDK instrumentiert und entweder zusammen mit dem Amazon CloudWatch Agent oder dem OpenTelemetry Collector ausgeführt werden.
Amazon EC2, Amazon ECS und Amazon EKS sind beispielsweise gängige Plattformen, auf denen AWS Application Signals Anleitungen zur Aktivierung des ADOT SDK und Amazon CloudWatch Agent bereitstellt.
Wählen Sie Ihren adaptiven Sampling-Ansatz
Adaptives Sampling unterstützt zwei Ansätze: Sampling Boost und Anomaly Span Capture. Diese können unabhängig voneinander angewendet oder miteinander kombiniert werden.
Steigerung der Probenahme
Adaptive Sampling Boost basiert auf Sampling-Regeln und funktioniert mit dem bestehenden Kopf-basierten Röntgen-Sampling-Modell. Bei der Stichprobenerhebung werden Entscheidungen über die Stichprobenerhebung beim Stammdienst getroffen und das Sampling-Flag anschließend an alle Dienste in der Aufrufkette weitergegeben.
-
Regelbasiertes Boosten — Boosting ist immer an eine bestimmte Röntgen-Sampling-Regel gebunden. Jede Regel kann ihre eigene maximale Boost-Rate und ihr eigenes Abkühlverhalten definieren.
-
Kopf-basiertes Sampling — Entscheidungen zur Probenahme werden beim Root-Service getroffen, und das Sampling-Flag wird nachgelagert an alle Services in der Aufrufkette weitergegeben.
-
Anomaliegesteuert — X-Ray verwendet das SDK, um Anomaliestatistiken zu melden. Wenn X-Ray Anomalien wie Fehler oder hohe Latenz erkennt, verwendet es diese Statistiken, um eine angemessene Boost-Rate (bis zum konfigurierten Maximum) zu berechnen.
Meldung von Anomalien
Jeder Anwendungsdienst in der Aufrufkette kann über das erforderliche SDK Anomaliestatistiken ausgeben:
-
Root-Dienst — Muss auf einem unterstützten SDK und einer unterstützten Plattform ausgeführt werden, um den Sampling-Boost zu aktivieren. Wenn der Root-Dienst nicht unterstützt wird, erfolgt kein Boost.
-
Downstream-Dienste — Downstream-Dienste melden nur Anomalien; sie können keine Stichprobenentscheidungen treffen. Wenn auf einem nachgelagerten Dienst ein unterstütztes SDK ausgeführt wird, können festgestellte Anomalien einen Anstieg der Probenahme auslösen. Wenn ein nachgelagerter Dienst nicht unterstützt wird (z. B. wenn ein älteres SDK ausgeführt wird), lösen Anomalien bei diesem Dienst keinen Boost aus. Diese Dienste können den Kontext immer noch flussabwärts weitergeben, wenn sie der Standardweiterleitung des Kontextes folgen (z. B. W3C-Trace-Kontext und Baggage). Dadurch wird sichergestellt, dass die SDKs in weiteren nachgelagerten Diensten unterstützten Dienste Anomalien melden können, die einen Boost auslösen.
Erhöhen Sie den Zeitplan und den Umfang
-
Triggerverzögerung — Sie können davon ausgehen, dass ein Sampling-Boost bereits 10 Sekunden nach der Erkennung einer Anomalie durch X-Ray einsetzt.
-
Boost-Periode — Nachdem X-Ray einen Boost ausgelöst hat, hält er bis zu 1 Minute an, bevor er wieder zur Basis-Samplingrate zurückkehrt.
-
Boost-Abkühlung — Nach einem Boost löst X-Ray keinen weiteren Boost für dieselbe Regel aus, bis das Abkühlfenster abgelaufen ist.
Wenn du zum Beispiel
cooldown
auf 10 Minuten festlegst und ein Boost endet, kann bis zum nächsten 10-Minuten-Fenster kein neuer Boost ausgelöst werden.Sonderfall: Wenn du den Wert
cooldown
auf 1 Minute festlegst und ein Boost selbst bis zu 1 Minute andauern kann, können Boosts effektiv kontinuierlich ausgelöst werden, wenn die Anomalie weiterhin besteht.
Anmerkung
Verwenden Sie unterstützte Plattformen SDKs und Plattformen für Ihren Root-Service. Sampling Boost funktioniert nur mit unterstützten SDKs Plattformen. Sampling Boost hat zwar eine hohe Wahrscheinlichkeit, Spuren von Anomalien zu erfassen, es kann jedoch sein, dass nicht alle Spuren von Anomalien erfasst werden.
Erhöhen Sie die Sichtbarkeit
Wenn eine Sampling-Regel mit adaptivem Sampling-Boost konfiguriert ist, gibt X-Ray automatisch ausgelieferte Metriken aus, mit denen Sie die Boost-Aktivität überwachen können.
-
Name der Metrik —
SamplingRate
-
Dimension —
RuleName
(auf den tatsächlichen Regelnamen gesetzt)
Jede Regel, für die diese SamplingRateBoost
Option aktiviert ist, veröffentlicht ihre effektive Samplingrate, einschließlich der Basisrate und aller temporären Boosts. Das ermöglicht Ihnen Folgendes:
-
Verfolge, wann Boosts ausgelöst werden
-
Überwachen Sie die effektive Stichprobenrate für jede Regel
-
Korrelieren Sie Boosts mit Anwendungsanomalien (wie Fehlerspitzen oder Latenzereignissen)
Sie können diese Metriken in Amazon CloudWatch Metrics unter dem Namespace AWS/X-Ray einsehen. Der Metrikwert ist eine Gleitkommazahl zwischen 0 und 1, die die effektive Stichprobenrate darstellt.
Konfigurieren Sie den Sampling-Boost mithilfe der Regeln für die X-Ray
Sie können die adaptive Probenahme direkt in Ihren bestehenden Regeln für die Röntgenabtastung aktivieren, indem Sie ein neues SamplingRateBoost
Feld hinzufügen. Weitere Informationen finden Sie unter Sampling-Regeln anpassen. Dies bietet eine zentrale Möglichkeit, adaptives Sampling zu ermöglichen, ohne den Anwendungscode zu ändern oder die Anwendungsbereitstellung anzuwenden. Wenn Sie adaptives Sampling aktivieren, erhöht X-Ray automatisch die Abtastung bei Anomalien wie Fehlerspitzen oder Latenzausreißern und hält gleichzeitig die Abtastraten innerhalb des konfigurierten Maximums. SamplingRateBoost
kann auf jede benutzerdefinierte Stichprobenregel mit Ausnahme der Stichprobenregel angewendet werden. Default
Das SamplingRateBoost
Feld definiert die Obergrenze und das Verhalten bei anomaliebedingter Probenahme.
"SamplingRateBoost": { "MaxRate": 0.25, "CooldownWindowMinutes": 10 }
Der MaxRate
definiert die maximale Abtastrate, mit der X-Ray Anomalien erkennt. Der Wertebereich ist 0.0
bis. 1.0
"MaxRate": 0.25
Ermöglicht es beispielsweise, während eines Zeitfensters mit Anomalien die Anzahl der Anfragen anhand von Stichproben um bis zu 25% zu erhöhen. X-Ray bestimmt je nach Anomalieaktivität die angemessene Rate zwischen Ihrem Ausgangswert und dem Maximum.
Das CooldownWindowMinutes
definiert ein Zeitfenster (in Minuten), in dem nur eine Erhöhung der Abtastrate ausgelöst werden kann. Nachdem ein Boost erfolgt ist, sind bis zum nächsten Fenster keine weiteren Boosts mehr zulässig. Der Wertetyp ist eine Ganzzahl (Minuten).
Beispielregel mit adaptiver Stichprobe
{ "RuleName": "MyAdaptiveRule", "Priority": 1, "ReservoirSize": 1, "FixedRate": 0.05, "ServiceName": "*", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "SamplingRateBoost": { "MaxRate": 0.25, "CooldownWindowMinutes": 10 } }
In diesem Beispiel beträgt die Ausgangsstichprobe 5% (FixedRate: 0.05
). Bei Anomalien kann die Probenahme durch X-Ray um bis zu 25% erhöht werden ()MaxRate: 0.25
. Boost nur einmal alle 10 Minuten.
Konfiguration des Zustands von Anomalien
Wenn keine Konfiguration für Anomaliebedingungen angegeben ist, verwendet das ADOT SDK HTTP 5xx-Fehlercodes als Standardbedingung für Anomalien, um den Sampling-Boost auszulösen.
Sie können Anomaliebedingungen auch lokal im unterstützten ADOT SDK mithilfe von Umgebungsvariablen fein abstimmen. Weitere Informationen finden Sie unter Lokale SDK-Konfiguration.
Anomalie erstreckt sich über die Erfassung
Durch die Erfassung von Anomaliebereichen wird sichergestellt, dass kritische Bereiche, die Anomalien darstellen, immer aufgezeichnet werden, auch wenn nicht die gesamte Spur erfasst wird. Diese Funktion ergänzt die Steigerung der Probenahme, indem sie sich auf die Erfassung der Anomalie selbst konzentriert, anstatt die Probenahme für future Spuren zu erhöhen.
Wenn das ADOT SDK eine Anomalie erkennt, gibt es diese Spanne sofort aus, unabhängig von der Entscheidung für die Probenahme. Da das SDK nur Spans ausgibt, die sich auf die Anomalie beziehen, handelt es sich bei diesen Traces um Teil-Traces, nicht um vollständige Transaktionen. end-to-end
Sobald das ADOT SDK eine Spanne mit Anomalien erkennt, versucht es, so viele Spans wie möglich aus derselben Trace auszusenden. Alle im Rahmen dieser Funktion ausgegebenen Spans sind mit dem Attribut, gekennzeichnet. aws.trace.flag.sampled = 0
Auf diese Weise können Sie bei der Transaktionssuche und -analyse auf einfache Weise partielle Spuren (Erfassung von Anomalien) von vollständigen Spuren (normale Probenahme) unterscheiden.
Wir empfehlen, Transaction Search zu integrieren, um partielle Traces anzeigen und abfragen zu können. Das folgende Beispiel zeigt eine Serviceseite in der Application Signals Console. ServiceC ist mit der Erfassung von Anomalie-Spannen konfiguriert und ist Teil einer Anrufkette, bei der der Sampling-Boost angewendet wird. Diese Konfiguration generiert sowohl vollständige als auch teilweise Traces. Sie können das aws.trace.flag.sampled
Attribut verwenden, um zwischen Trace-Typen zu unterscheiden.

Die Erfassung von Anomaliespannen kann nur über den aktiviert oder angepasst werden. Lokale SDK-Konfiguration
Lokale SDK-Konfiguration
Sie können Funktionen für adaptives Sampling im ADOT SDK konfigurieren, indem Sie eine YAML-Konfiguration über eine Umgebungsvariable bereitstellen. Die lokale Konfiguration bietet eine detaillierte Kontrolle über Anomaliebedingungen und Schwellenwerte.
Dies ist für die Erfassung von Anomaliebereichen und optional für die Anpassung der Bedingungen für den Probenahmeanstieg erforderlich. Im Folgenden finden Sie ein Beispiel für die Konfiguration:
version: 1.0 anomalyConditions: - errorCodeRegex: "^5\\d\\d$" usage: both - operations: - "/api" errorCodeRegex: "^429|5\\d\\d$" highLatencyMs: 300 usage: sampling-boost - highLatencyMs: 1000 usage: anomaly-span-capture anomalyCaptureLimit: anomalyTracesPerSecond: 1
Die Felddefinitionen sind unten aufgeführt:
-
version
— Schemaversion für die Konfigurationsdatei -
anomalyConditions
— Definiert die Bedingungen, unter denen Anomalien erkannt werden, und wie sie verwendet werden-
errorCodeRegex
— Regulärer Ausdruck, der definiert, welche HTTP-Statuscodes als Anomalien betrachtet werden -
operations
— Liste der Operationen oder Endpunkte, für die die Bedingung gilt -
highLatencyMs
— Latenzschwellenwert (in Millisekunden), bei dessen Überschreitung Zeitspannen als Anomalien behandelt werden -
usage
— Definiert, für welches Feature die Bedingung gilt:-
both
— Gilt für Sampling-Boost und Erfassung von Anomalie-Spannen (Standardeinstellung, wenn keine Verwendung angegeben ist) -
sampling-boost
— Wird nur zum Auslösen von Sampling-Boosts verwendet -
anomaly-span-capture
— Wird nur für die Erfassung von Anomaliebereichen verwendet
-
-
-
anomalyCaptureLimit
— Definiert Grenzwerte dafür, wie viele Spuren mit Anomaliespannen ausgegeben werden.anomalyTracesPerSecond
— Maximale Anzahl von Traces, die pro Sekunde erfasst werden, um eine übermäßige Spanne zu verhindern (der Standardwert ist 1, falls nicht anomalyCaptureLimit vorhanden).
Anmerkung
-
AnomalyConditions
überschreibt die standardmäßige Anomaliebedingung für Sampling-Boost (HTTP 5xx). Wenn Sie die Standardbedingung beibehalten möchten, während Sie die lokale Konfiguration verwenden, müssen Sie sie explizit in jedes Element von aufnehmen.AnomalyConditions
-
Für jedes
anomalyConditions
Element:-
Wenn das
operations
Feld weggelassen wird, gilt die Bedingung für alle Operationen (Service Level) -
Wenn das
operations
Feld zwar vorhanden, aber auf eine leere Liste gesetzt ist, gilt die Bedingung für „Keine Operationen“, sodass dieses Element nicht aktiviert ist Wenn
errorCodeRegex
sowohl als auch weggelassenhighLatencyMs
werden, gibt es für die Bedingung keine zu bewertenden Anomaliekriterien, sodass dieses Element nicht berücksichtigt werden kann
-
-
Logische Beziehungen:
-
Zwischen den Elementen in
anomalyConditions
der Datei ist die Beziehung ODER. -
Innerhalb eines einzelnen Elements werden mehrere Felder (z. B.
errorCodeRegex
undhighLatencyMs
) mit UND kombiniert.Zum Beispiel:
errorCodeRegex: "^429|5\\d\\d$" highLatencyMs: 300
Diese Bedingung bedeutet, dass der Statuscode 429 oder 5xx UND einer Latenz von ≥ 300 ms entspricht.
-
Wenden Sie die lokale Konfiguration auf das ADOT SDK an
Sie können die lokale Konfiguration auf das ADOT SDK anwenden, indem Sie die Umgebungsvariable festlegen. AWS_XRAY_ADAPTIVE_SAMPLING_CONFIG
Der Wert muss ein gültiges YAML-Dokument sein (inline oder verschachtelt).
Beispielsweise legen Amazon EC2 und Amazon ECS die Umgebungsvariable direkt fest:
AWS_XRAY_ADAPTIVE_SAMPLING_CONFIG="{version: 1.0, anomalyConditions: [{errorCodeRegex: \"^500$\", usage: \"sampling-boost\"}, {errorCodeRegex: \"^501$\", usage: \"anomaly-trace-capture\"}], anomalyCaptureLimit: {anomalyTracesPerSecond: 10}}"
Definieren Sie für Amazon EKS die Umgebungsvariable in der Pod-Spezifikation als verschachteltes YAML:
apiVersion: v1 kind: Pod metadata: name: adot-sample spec: containers: - name: adot-app image: my-app:latest env: - name: AWS_XRAY_ADAPTIVE_SAMPLING_CONFIG value: | version: 1.0 anomalyConditions: - errorCodeRegex: "^500$" usage: sampling-boost - errorCodeRegex: "^501$" usage: anomaly-trace-capture anomalyCaptureLimit: anomalyTracesPerSecond: 10