Compétences distributed-tracing
📦

distributed-tracing

Sûr ⚡ Contient des scripts🌐 Accès réseau⚙️ Commandes externes

Implémenter le traçage distribué avec Jaeger et Tempo

Le débogage des microservices est difficile sans visibilité sur les flux de requêtes entre les services. Cette compétence vous aide à implémenter le traçage distribué avec Jaeger et Tempo pour suivre les requêtes, identifier les goulots d'étranglement et comprendre les dépendances de services.

Prend en charge: Claude Codex Code(CC)
📊 70 Adéquat
1

Télécharger le ZIP du skill

2

Importer dans Claude

Allez dans Paramètres → Capacités → Skills → Importer un skill

3

Activez et commencez à utiliser

Tester

Utilisation de "distributed-tracing". Help me deploy Jaeger on Kubernetes

Résultat attendu:

Je vais vous aider à déployer Jaeger sur Kubernetes en utilisant l'opérateur Jaeger. Je vais d'abord créer l'espace de noms d'observabilité et déployer l'opérateur. Ensuite, je vais configurer une instance Jaeger de production avec le stockage Elasticsearch et activer l'entrée pour l'interface utilisateur.

Utilisation de "distributed-tracing". Add tracing to my Flask application

Résultat attendu:

Je vais instrumenter votre application Flask avec OpenTelemetry. Je vais installer les packages requis, initialiser le fournisseur de traçage avec l'exportateur Jaeger et ajouter l'instrumentation Flask automatique. Je vais également vous montrer comment créer des spans personnalisés pour les requêtes de base de données.

Utilisation de "distributed-tracing". Configure sampling to trace only errors

Résultat attendu:

Je vais configurer un échantillonneur personnalisé qui trace toutes les requêtes avec des erreurs tout en échantillonnant seulement 1 pour cent des requêtes réussies. Cette approche capture tous les échecs pour le débogage tout en minimisant la surcharge des opérations normales.

Score de qualité

38
Architecture
100
Maintenabilité
87
Contenu
21
Communauté
100
Sécurité
91
Conformité aux spécifications

Ce que vous pouvez construire

Déboguer les problèmes de latence des microservices

Déployer le traçage Jaeger et instrumenter vos services Flask Python pour identifier quels appels en aval provoquent des réponses API lentes.

Cartographier les dépendances de services

Configurer le traçage distribué entre vos microservices Node.js pour visualiser les graphiques de dépendance de services et comprendre les modèles de flux de requêtes.

Implémenter l'observabilité en production

Configurer Tempo avec Grafana et implémenter des stratégies d'échantillonnage pour suivre les traces en production sans surcharge de performance.

Essayez ces prompts

Configurer Jaeger sur Kubernetes
Aidez-moi à déployer Jaeger sur mon cluster Kubernetes avec le stockage Elasticsearch
Instrumenter une application Flask
Ajoutez l'instrumentation OpenTelemetry à mon API Flask pour envoyer des traces à Jaeger
Configurer la propagation de contexte
Montrez-moi comment propager le contexte de trace lorsque mon service Node.js appelle des API en aval
Optimiser la surcharge de traçage
Aidez-moi à configurer l'échantillonnage adaptatif pour mes services Go en production afin de réduire la surcharge de traçage tout en capturant les erreurs

Bonnes pratiques

  • Utiliser des taux d'échantillonnage entre 1 et 10 pour cent en production pour minimiser la surcharge de performance
  • Ajouter des balises significatives comme l'ID utilisateur et l'ID de requête aux spans pour faciliter le filtrage et l'analyse
  • Propager le contexte de trace à travers toutes les limites de services, y compris les files de messages et les tâches asynchrones

Éviter

  • Tracer 100 pour cent du trafic de production sans échantillonnage entraîne des coûts de stockage élevés et un impact sur la performance
  • Créer trop de spans pour des opérations à granularité fine ajoute une surcharge sans insights utiles
  • Stocker des données sensibles comme des mots de passe ou des clés API dans les balises de span viole les bonnes pratiques de sécurité

Foire aux questions

Quelle est la différence entre Jaeger et Tempo ?
Jaeger est un système de traçage distribué complet avec sa propre interface utilisateur et ses capacités d'interrogation. Tempo est un backend de traçage conçu pour s'intégrer à Grafana pour la visualisation. Tempo utilise un stockage objet comme S3 pour un stockage économique des traces à grande échelle.
Quelle surcharge le traçage distribué ajoute-t-il ?
Avec un échantillonnage approprié, le traçage distribué ajoute généralement moins de 1 pour cent de surcharge CPU. Le principal coût est la bande passante réseau pour envoyer les spans et le stockage pour les données de trace. Utiliser des taux d'échantillonnage de 1 à 10 pour cent en production.
Puis-je tracer des requêtes entre différents langages de programmation ?
Oui. OpenTelemetry fournit des bibliothèques d'instrumentation pour tous les langages principaux et utilise des formats de propagation standard. Tant que tous les services propagent les en-têtes de contexte de trace, les traces fonctionnent entre Python, Node.js, Go, Java et d'autres langages.
Comment corréler les traces avec les journaux ?
Extrayez l'ID de trace du contexte de span actuel et ajoutez-le à vos entrées de journal comme champ structuré. Cela vous permet de passer d'une trace aux journaux associés et vice versa pour une visibilité complète de la requête.
Quelle stratégie d'échantillonnage dois-je utiliser ?
Commencez par un échantillonnage probabiliste à 1 pour cent pour les services à trafic élevé. Utilisez des taux plus élevés pour les services à faible trafic. Envisagez un échantillonnage adaptatif qui trace toujours les erreurs tout en échantillonnant les requêtes réussies à un taux plus bas.
Combien de temps dois-je conserver les données de trace ?
La plupart des équipes conservent les traces pendant 7 à 30 jours. Les traces sont utiles pour le débogage récent mais deviennent moins précieuses avec le temps. Configurez la rétention en fonction de votre budget de stockage et de vos exigences de conformité.

Détails du développeur

Structure de fichiers

📄 SKILL.md