In diesem Dokument wird das Konzept des Sampling eingeführt, das sich darauf bezieht, ob Daten für einen Span an Cloud Trace gesendet werden. Wenn Daten für einen Span an Cloud Trace gesendet werden, wird dieser Span erfasst. Wenn Daten für jeden Bereich in einem Trace aufgezeichnet werden, ist der Trace vollständig. Traces haben jedoch häufig fehlende Spans, da jede instrumentierte Komponente in einem System für verteiltes Tracing unabhängig entscheidet, ob der verarbeitete Span aufgezeichnet werden soll.
Jede Komponente trifft ihre eigene Entscheidung darüber, ob der zu verarbeitende Bereich Stichproben enthält. Diese Entscheidung kann jedoch durch die Sampling-Entscheidung des übergeordneten Elements beeinflusst werden. Angenommen, jede Komponente hat eine Regel, die besagt: „Wenn der übergeordnete Span als Stichprobe verwendet wird, verwende den aktuellen Span als Stichprobe. Andernfalls verwende 50% der Spans als Stichprobe.“ In diesem Szenario gilt Folgendes:
- Der Stamm-Span bestimmt, ob alle Spans im Trace erfasst werden.
- Wenn der Stamm-Span erfasst wird, werden alle Spans im Trace erfasst. Der Trace ist daher vollständig.
Komponenten können ihre Sampling-Entscheidung mithilfe von Kontext an das untergeordnete Element weitergeben.
Im traceparent-Header des World Wide Web Consortium (W3C) wird beispielsweise mit dem sampled-Flag die Sampling-Entscheidung des übergeordneten Elements gespeichert.
Verwechseln Sie Sampling nicht mit Kontextweitergabe. Die Stichprobenerhebung gibt an, ob eine Komponente Daten zu einem Span aufzeichnet. Die Kontextweitergabe bezieht sich darauf, ob Informationen zum Span, z. B. die Span-ID, an untergeordnete Komponenten übergeben werden.
Sampling-Strategien
Die Entscheidungen zur Stichprobenerhebung können entweder auf dem Head oder dem Tail basieren. Beim