Fähigkeiten distributed-tracing
📦

distributed-tracing

Sicher ⚡ Enthält Skripte🌐 Netzwerkzugriff⚙️ Externe Befehle

Implementierung von Distributed Tracing mit Jaeger und Tempo

Das Debugging von Microservices ist ohne Sichtbarkeit in Request-Flows über Services hinweg schwierig. Diese Fähigkeit hilft Ihnen, Distributed Tracing mit Jaeger und Tempo zu implementieren, um Requests zu verfolgen, Engpässe zu identifizieren und Service-Abhängigkeiten zu verstehen.

Unterstützt: Claude Codex Code(CC)
📊 70 Angemessen
1

Die Skill-ZIP herunterladen

2

In Claude hochladen

Gehe zu Einstellungen → Fähigkeiten → Skills → Skill hochladen

3

Einschalten und loslegen

Teste es

Verwendung von "distributed-tracing". Help me deploy Jaeger on Kubernetes

Erwartetes Ergebnis:

Ich werde Ihnen helfen, Jaeger auf Kubernetes mit dem Jaeger Operator bereitzustellen. Zuerst werde ich den Observability-Namespace erstellen und den Operator bereitstellen. Dann werde ich eine Production-Jaeger-Instanz mit Elasticsearch-Storage konfigurieren und Ingress für die UI aktivieren.

Verwendung von "distributed-tracing". Add tracing to my Flask application

Erwartetes Ergebnis:

Ich werde Ihre Flask-Anwendung mit OpenTelemetry instrumentieren. Ich werde die erforderlichen Pakete installieren, den Tracer-Provider mit Jaeger-Exporter initialisieren und automatische Flask-Instrumentierung hinzufügen. Ich werde Ihnen auch zeigen, wie Sie benutzerdefinierte Spans für Datenbankabfragen erstellen.

Verwendung von "distributed-tracing". Configure sampling to trace only errors

Erwartetes Ergebnis:

Ich werde einen benutzerdefinierten Sampler einrichten, der alle Requests mit Fehlern traciert, während nur 1 Prozent der erfolgreichen Requests gesampelt werden. Dieser Ansatz erfasst alle Fehler zum Debugging und minimiert gleichzeitig den Overhead von normalen Operationen.

Qualitätsbewertung

38
Architektur
100
Wartbarkeit
87
Inhalt
21
Community
100
Sicherheit
91
Spezifikationskonformität

Was du bauen kannst

Debugging von Microservice-Latenzproblemen

Stellen Sie Jaeger Tracing bereit und instrumentieren Sie Ihre Python-Flask-Services, um zu identifizieren, welche Downstream-Aufrufe langsame API-Antworten verursachen.

Mapping von Service-Abhängigkeiten

Richten Sie Distributed Tracing über Ihre Node.js-Microservices ein, um Service-Abhängigkeitsgraphen zu visualisieren und Request-Flow-Muster zu verstehen.

Implementierung von Production-Observability

Konfigurieren Sie Tempo mit Grafana und implementieren Sie Sampling-Strategien, um Traces in der Produktion ohne Performance-Overhead zu verfolgen.

Probiere diese Prompts

Jaeger auf Kubernetes einrichten
Helfen Sie mir, Jaeger auf meinem Kubernetes-Cluster mit Elasticsearch-Storage bereitzustellen
Flask-Anwendung instrumentieren
Fügen Sie OpenTelemetry-Instrumentierung zu meiner Flask-API hinzu, um Traces an Jaeger zu senden
Context-Propagation konfigurieren
Zeigen Sie mir, wie ich Trace-Context propagieren kann, wenn mein Node.js-Service Downstream-APIs aufruft
Tracing-Overhead optimieren
Helfen Sie mir, adaptives Sampling für meine Produktions-Go-Services zu konfigurieren, um den Tracing-Overhead zu reduzieren und gleichzeitig Fehler zu erfassen

Bewährte Verfahren

  • Verwenden Sie Sampling-Raten zwischen 1 und 10 Prozent in der Produktion, um Performance-Overhead zu minimieren
  • Fügen Sie aussagekräftige Tags wie Benutzer-ID und Request-ID zu Spans hinzu für einfachere Filterung und Analyse
  • Propagieren Sie Trace-Context über alle Service-Grenzen hinweg, einschließlich Message Queues und asynchroner Jobs

Vermeiden

  • Das Tracing von 100 Prozent des Produktions-Traffics ohne Sampling führt zu hohen Storage-Kosten und Performance-Auswirkungen
  • Das Erstellen zu vieler Spans für feingranulare Operationen fügt Overhead hinzu ohne nützliche Einblicke
  • Das Speichern von sensiblen Daten wie Passwörtern oder API-Keys in Span-Tags verstößt gegen Security-Best-Practices

Häufig gestellte Fragen

Was ist der Unterschied zwischen Jaeger und Tempo?
Jaeger ist ein vollständiges Distributed-Tracing-System mit eigener UI und Abfragefähigkeiten. Tempo ist ein Tracing-Backend, das für die Integration mit Grafana zur Visualisierung konzipiert wurde. Tempo verwendet Object-Storage wie S3 für kosteneffektive Trace-Speicherung in großem Maßstab.
Wie viel Overhead fügt Distributed Tracing hinzu?
Mit korrektem Sampling fügt Distributed Tracing typischerweise weniger als 1 Prozent CPU-Overhead hinzu. Die Hauptkosten sind Netzwerkbandbreite zum Senden von Spans und Storage für Trace-Daten. Verwenden Sie Sampling-Raten von 1 bis 10 Prozent in der Produktion.
Kann ich Requests über verschiedene Programmiersprachen hinweg tracen?
Ja. OpenTelemetry bietet Instrumentierungs-Bibliotheken für alle gängigen Sprachen und verwendet standardmäßige Propagation-Formate. Solange alle Services Trace-Context-Header propagieren, funktionieren Traces über Python, Node.js, Go, Java und andere Sprachen.
Wie korreliere ich Traces mit Logs?
Extrahieren Sie die Trace-ID aus dem aktuellen Span-Context und fügen Sie sie Ihren Log-Einträgen als strukturiertes Feld hinzu. Dies ermöglicht es Ihnen, von einem Trace zu zugehörigen Logs und umgekehrt zu springen für vollständige Request-Sichtbarkeit.
Welche Sampling-Strategie sollte ich verwenden?
Beginnen Sie mit probabilistischem Sampling bei 1 Prozent für Services mit hohem Traffic. Verwenden Sie höhere Raten für Services mit wenig Traffic. Erwägen Sie adaptives Sampling, das immer Fehler traciert, während erfolgreiche Requests mit einer niedrigeren Rate gesampelt werden.
Wie lange sollte ich Trace-Daten aufbewahren?
Die meisten Teams behalten Traces für 7 bis 30 Tage bei. Traces sind nützlich für kürzliches Debugging werden aber mit der Zeit weniger wertvoll. Konfigurieren Sie die Aufbewahrung basierend auf Ihrem Storage-Budget und Compliance-Anforderungen.