Logs, Metriken und Traces sind die drei Säulen der Observability-Welt. Insbesondere die verteilte Tracing-Welt hat in den letzten Monaten viele Innovationen erlebt, mit der OpenTelemetry-Standardisierung und dem Jaeger Open-Source-Projekt, das die Inkubation der Cloud Native Computing Foundation abgeschlossen hat. Laut dem aktuellen DevOps Pulse-Bericht wird Jaeger von über 30 % derjenigen verwendet, die verteiltes Tracing praktizieren. Viele Unternehmen erkennen die Notwendigkeit von verteiltem Tracing, um eine bessere Beobachtbarkeit ihrer Systeme zu erreichen und Leistungsprobleme zu beheben, insbesondere bei komplexen Microservice-Architekturen.
Beginnend mit Jaeger besteht der erste Schritt darin, Ihren Code zu instrumentieren, um Traces an Jaeger zu senden. Der zweite Teil besteht darin, das Jaeger-Backend einzurichten, um Ihre Spuren zu sammeln, zu verarbeiten und zu visualisieren. In diesem Beitrag gehe ich darauf ein, was zum Bereitstellen und Verwalten des Jaeger-Back-Ends in der Produktion erforderlich ist. Ich werde abdecken:
- Jaeger-Komponenten zum Einbau
- Nicht von Jaeger verwendete Komponenten, die von Jaeger verwendet werden, z. B. Backend-Speicher
- Jaeger Deployment-Strategien, insbesondere rund um Produktionssysteme
- Agent vs. Agentenlos
- Agent-Installationsmethoden: Sidecar vs. DaemonSet
- Installationswerkzeuge: Handbuch, Bediener, Helmdiagramm
Jaeger-Komponenten
Bei der Bereitstellung von Jaeger Tracing müssen Sie die folgenden Komponenten berücksichtigen:
- Agent ist die Komponente, die sich zusammen mit Ihrer Anwendung befindet, um die Jaeger-Trace-Daten lokal zu sammeln. Es übernimmt die Verbindungs- und Verkehrssteuerung zum Collector (siehe unten) sowie die Datenanreicherung.
- Collector ist ein zentralisierter Hub, der Spuren von den verschiedenen Agenten in der Umgebung sammelt und an den Back-End-Speicher sendet. Der Collector kann Validierungen und Anreicherungen für die Spans ausführen.
- Query ruft die Ablaufverfolgungen ab und stellt sie über eine Benutzeroberfläche bereit.
Es gibt natürlich noch viele weitere Details zu jeder Komponente und anderen optionalen Jaeger-Komponenten, aber ich werde es für diese Diskussion einfach halten. Sehen wir uns an, wie Sie die Agenten-, Kollektor- und Abfragekomponenten in verschiedenen Setups und Strategien bereitstellen.
Von Jaeger verwendete externe Komponenten
Abhängig von Ihrer Bereitstellungsstrategie (siehe unten) verwendet Jaeger möglicherweise andere (nicht von Jaeger stammende) Komponenten, hauptsächlich einen persistenten Backend-Speicher (Elasticsearch, Cassandra oder andere) und eine Streaming-Aufnahmewarteschlange (Kafka). Diese Dienste werden normalerweise unabhängig bereitgestellt, und Sie müssen Jaeger nur auf die entsprechenden Endpunkte verweisen, Sie können sie jedoch auch selbst bereitstellen. Dies ist ein breites Thema, das ich in einem separaten Beitrag behandeln möchte, also bleiben Sie dran.
#kubernetes #microservices #monitoring #beigetragen
Lakers-Spiel kostenlos auf reddit streamen
thenewstack.io
Best Practices für die Bereitstellung von Jaeger auf Kubernetes in der Produktion
Beginnend mit Jaeger besteht der erste Schritt darin, Ihren Code zu instrumentieren, um Traces an Jaeger zu senden. Der zweite Teil besteht darin, das Jaeger-Backend einzurichten, um Ihre Spuren zu sammeln, zu verarbeiten und zu visualisieren. In diesem Beitrag gehe ich darauf ein, was zum Bereitstellen und Verwalten des Jaeger-Back-Ends in der Produktion erforderlich ist.