

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
<a name="xray-adaptive-sampling"></a>

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.

**Topics**
+ [Unterstützte Plattformen SDKs und Plattformen](#adaptive-sampling-supported-sdks)
+ [Wählen Sie Ihren adaptiven Sampling-Ansatz](#adaptive-sampling-features)
+ [Lokale SDK-Konfiguration](#local-sdk-configuration)

## Unterstützte Plattformen SDKs und Plattformen
<a name="adaptive-sampling-supported-sdks"></a>

**Unterstütztes SDK** — Adaptive Sampling erfordert die neueste Version des ADOT SDK.

**Unterstützte Sprache** — Java (Version [v2.11.5](https://github.com/aws-observability/aws-otel-java-instrumentation/releases/tag/v2.11.5) oder höher)

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
<a name="adaptive-sampling-features"></a>

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
<a name="adaptive-sampling-boost"></a>

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](https://docs.aws.amazon.com/xray/latest/devguide/xray-console-sampling.html#xray-console-custom). 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](#local-sdk-configuration).

### Anomalie erstreckt sich über die Erfassung
<a name="anomaly-spans-capture"></a>

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](https://docs.aws.amazon.com/xray/latest/devguide/xray-transactionsearch.html) zu integrieren, um partielle Traces anzeigen und abfragen zu können. Das folgende Beispiel zeigt eine Serviceseite in der [Application Signals](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Application-Monitoring-Sections.html) 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.

![\[Anomalie erstreckt sich über die gesamte Erfassung\]](http://docs.aws.amazon.com/de_de/xray/latest/devguide/images/adaptive-sampling.png)


Die Erfassung von Anomaliespannen kann nur über den aktiviert oder angepasst werden. [Lokale SDK-Konfiguration](#local-sdk-configuration)

## Lokale SDK-Konfiguration
<a name="local-sdk-configuration"></a>

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 weggelassen `highLatencyMs` 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` und`highLatencyMs`) 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
<a name="apply-local-configuration"></a>

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
```