
Was ist OpenTelemetry?
OpenTelemetry ist ein Open-Source-Projekt – ein offener Standard für die Instrumentierung von Services und eine Methode zur Performance-Messung. OpenTelemetry umfasst eine zentrale API (Application Programming Interface), Bibliotheken, Integrationen und ein SDK (Software Development Kit) für verschiedene Programmiersprachen wie Java, Go und Python. Durch Verwendung der standardisierten API können DevOps-Teams einfach zwischen SDKs wechseln, ohne sich Gedanken über Code-Änderungen machen zu müssen. Das spart nicht nur Zeit und Aufwand, sondern sorgt außerdem für eine effizientere Performance-Optimierung und Fehlerbehebung.
OpenTelemetry wird von der Cloud Native Computing Foundation (CNCF) betreut und entstand aus der Zusammenführung von OpenTracing und OpenCensus. Ziel ist die Standardisierung der Erfassung und des Versands von Telemetriedaten an eine Backend-Plattform. Dazu wird ein zentraler Collector Service definiert, mit dem Sie Telemetriedaten aus Ihren Anwendungen und Services erfassen können, sowie ein Exporter zum Versand dieser Daten an die Observability-Plattform Ihrer Wahl.
OpenTelemetry deckt alle drei Aspekte der Monitoring-Software ab: Implementierung der Aufzeichnungsinstrumentierung, Datenerfassung sowie Export dieser Daten zu Analysezwecken. Zudem ist es anbieterneutral, d. h. Dev-Teams, die sich nicht an bestimmte Anbieter binden möchten, müssen ihre Monitoring-Lösungen nicht mehr selbst erstellen. Mit OpenTelemetry sind Sie nicht an die Instrumentierungsbibliotheken des Lösungsanbieters gefesselt.
Wofür OpenTelemetry sich am besten eignet
OpenTelemetry hat sich besonders in diesen drei Anwendungsfällen bewährt:
- Ihre Daten sind über mehrere Plattformen verteilt
- Sie benötigen eine anbieterneutrale Option
- Sie möchten die Arbeitsstunden des Teams optimal nutzen
In diesem Blog-Post erfahren Sie, was OpenTelemetry eigentlich ist und warum dieser offene Standard als die Zukunft der Instrumentierung angesehen wird. Sehen wir uns als Erstes ein kurzes Video an:
Jetzt starten
- Lesen Sie sich den OpenTelemetry Quick Start Guide durch.
- Sehen Sie sich die New Relic OpenTelemetry-Beispiele an.
Benefits of OpenTelemetry
- Unified observability: OpenTelemetry provides a unified approach to observability by offering consistent APIs and instrumentation libraries for multiple programming languages.
- Distributed tracing: OpenTelemetry enables distributed tracing, allowing developers to track requests as they traverse through different services and components of a distributed application.
- Metrics collection: OpenTelemetry supports the collection of various metrics, such as request rates, error rates, and resource usage metrics.
- Context propagation: OpenTelemetry supports context propagation, ensuring that contextual information, such as trace and span IDs, is passed between different services and components.
- Plugin ecosystem: OpenTelemetry has a rich ecosystem of plugins and integrations that allow users to export telemetry data to various backends and observability platforms.
- Vendor-neutral: Being an open-source project, OpenTelemetry is vendor-neutral, meaning it is not tied to any specific vendor or technology stack.
- Community-driven innovation: This collaborative environment encourages innovation, leading to the continuous improvement of the framework and its capabilities.
- Standardization: By adopting OpenTelemetry, organizations can adhere to a widely accepted set of practices and standards for collecting telemetry data, ensuring consistency and compatibility across their applications and services.
OpenTelemetry: die Zukunft der Instrumentierung
Im Video wird es erwähnt – OpenTelemetry revolutioniert die Instrumentierung aus vier Gründen:
- Sie können auf unzählige Instrumentierungen zugreifen, denn OpenTelemetry wird von einer großen Open-Source-Community entwickelt und gepflegt. Im vergangenen Jahr waren mehr als 300 Unternehmen mit über 100.000 Beiträgen am OpenTelemetry-Projekt beteiligt. In der OpenTelemetry-Community waren in dem Zeitraum mehr als 2.000 Personen aktiv. OpenTelemetry ist ein offener Standard und lädt zur aktiven Zusammenarbeit ein – je mehr Engineers sich weltweit engagieren, desto besser werden die Instrumentierungen hinsichtlich Datenabdeckung, Verbreitung und Flexibilität.
- Die standardisierte Instrumentierung sorgt dafür, dass unterschiedliche Tools und Services miteinander kompatibel sind, sodass Sie Ihr gesamtes System überblicken können. Denn OpenTelemetry ist interoperabel, d. h. es kann zur Instrumentierung und zum Informationsaustausch verschiedenster Systeme verwendet werden. Ohne Standardisierung über alle Services Ihrer Anwendung hinweg gäbe es Bereiche, die entweder nicht sichtbar oder vom Rest abgeschottet wären. Das würde das Troubleshooting behindern und eine schnelle Problemerkennung und -behebung erschweren. OpenTelemetry schließt bisherige Transparenzlücken.
- Sie können Ihre Backend-Tools für die Observability flexibel wechseln. Bei den meisten Monitoring-Lösungen sind die zu installierenden Instrumentierungs-Agents für die Erfassung der Telemetriedaten vorgegeben. Wenn Sie dennoch auf ein anderes Tool wechseln möchten, verbringen Sie viel Zeit und Geld damit, neue, proprietäre Agents zu installieren oder Ihren Code komplett neu zu instrumentieren. OpenTelemetry befreit Sie vom Anbieterzwang. Sie können Ihr Backend-Observability-Tool problemlos wechseln, ohne dass eine neue Instrumentierung erforderlich ist. Der Quellcode von OpenTelemetry ist vollständig einsehbar. So sind Sie auch stets über die Feature-Entwicklung und Fehlerbehebung in der Community im Bilde.
- Das Monitoring neuer Technologien ist ohne Probleme möglich. Bei der Entwicklung neuer Technologien wird die OpenTelemetry-Instrumentierung zum festen Bestandteil der Bibliotheken und Frameworks, die Ihre Anwendungen bereits nutzen. So müssen Sie nicht darauf warten, dass die einzelnen Monitoringtools auch die neueste Technologie unterstützen.
Zwei wichtige Gründe für die Entwicklung der Observability waren zum einen die Notwendigkeit, orchestrierte Systeme wie Kubernetes verständlicher zu gestalten, und zum anderen, das Application Performance Monitoring (APM) transparenter zu machen. Observability soll umfassenden Kontext und hoch detaillierte Einblicke in die System-Performance liefern.
OpenTelemetry ist auch für Ihre Observability ein Muss
Das Konzept der Observability entstand aus mehreren Gründen. Zum einen hatte man erkannt, dass orchestrierte Systeme wie Kubernetes verständlicher gestaltet werden mussten, und zum anderen sollte das Application Performance Monitoring (APM) transparenter werden. Observability soll umfassenden Kontext und hoch detaillierte Einblicke in die System-Performance liefern.
Effektive Observability setzt Folgendes voraus:
- Ihre Systeme und Anwendungen müssen in der Lage sein, relevante Daten wie Metriken, Traces und Logs zu sammeln
- Diese Informationen müssen sich problemlos oder sogar automatisch in eine Plattform exportieren lassen, die nicht zu dem Programm gehört, das Sie analysieren möchten
- Das Analyseergebnis muss Visualisierungen und Einblicke in das Gesamtsystem liefern – unter anderem auch dazu, wie sich Änderungen während der Anwendungsentwicklung auf das Endbenutzererlebnis auswirken
Observability bietet Entwickler:innen und anderen Stakeholdern ein ganzheitliches Monitoring der Funktionsfähigkeit von Systemen und Plattformen. Aber ohne Unterstützung ist es schwierig, Observability zu messen und zu analysieren. Tools wie OpenTelemetry schaffen Abhilfe: Sie straffen das Performance-Monitoring über mehrere Anbieter und Programmiersprachen hinweg und erleichtern Entwickler:innen die Überwachung der Observability-Metriken sowie das Reporting. Entwickler:innen, die OpenTelemetry ins Auge fassen, sollten sich folgende Fragen stellen:
- Welche Programmiersprache, Plattform und Frameworks verwenden wir?
- Welche Datentypen möchten wir analysieren?
- An welche Analysetools werden wir unsere Daten senden?
OpenTelemetry funktioniert am besten in Kombination mit Observability. Wenn aussagekräftige Daten und resultierende Informationen von verschiedenen Komponenten des OpenTelemetry Collector (Empfänger, Prozessoren und Exporter) in einem Format erfasst, kompiliert und verteilt werden, das sich zur umfassenden Analyse für Performance-Steigerung und Fehlerbehebung eignet, können Entwickler:innen alle Vorteile von Observability und Monitoring in einem Tool nutzen.
New Relic und OpenTelemetry
New Relic leistet seit der Gründung von OpenTelemetry wichtige Beiträge und ist in führender Kapazität an dessen Weiterentwicklung beteiligt. 2020 haben wir uns öffentlich der Open-Source-Instrumentierung verschrieben. Dazu gehören auch Open-Source-Agents sowie die Standardisierung unseres Observability-Angebots gemäß OpenTelemetry. Dank nativer Unterstützung für das OpenTelemetry Protocol (OTLP) und kuratierter UX können Sie diesen neuen Instrumentierungsstandard zur Analyse, Fehlerbehebung und Optimierung Ihrer Systeme einsetzen.
Probieren Sie OpenTelemetry aus
Testen Sie OpenTelemetry am besten direkt mit Ihren eigenen Anwendungen und Services. Zu diesem Zweck haben wir ein paar OpenTelemetry-Beispiele für Sie vorbereitet.
- Registrieren Sie sich für ein kostenloses New Relic Konto und erleben Sie OpenTelemetry in Aktion.
- Lesen Sie den zweiten Blog-Post in unserer Reihe zu den Hauptelementen von OpenTelemetry.
- Sie möchten die Theorie gleich in die Praxis umsetzen und eine einfache Anwendung in Ihrer bevorzugten Programmiersprache instrumentieren? Hier geht es zur OpenTelemetry Masterclass.
- Um noch mehr Praxiserfahrung zu sammeln, nehmen Sie doch an unserem Online-Selbstlernkurs teil: OpenTelemetry: an open source data collection standard (OpenTelemetry: ein offener Standard für die Datenerfassung; New Relic University, 90 Minuten Dauer)
Dieser Blog-Post ist der erste Teil unserer Reihe zum Thema OpenTelemetry. Hoffentlich haben Sie nun einen besseren Überblick über OpenTelemetry und wissen, warum dieser offene Standard als die Zukunft der Instrumentierung gilt. In den nächsten Folgen werden Alan West, der das OpenTelemetry-Projekt unterstützt, und Jack Berg, der aktiv daran mitwirkt, Sie durch die wichtigsten Elemente von OpenTelemetry führen: die Datenquellen, die Instrumentierung einer Anwendung mit OpenTelemetry, die Darstellung der Daten in New Relic usw.
Teil 2 befasst sich mit den Hauptkomponenten des OpenTelemetry-Projekts, während es in Teil 3 um die wichtigsten Datenquellen von OpenTelemetry geht. In Teil 4 sehen Sie ein paar Beispiele zur Instrumentierung einer Java-Anwendung mit OpenTelemetry, und in Teil 5 schließlich erfahren Sie, wie Sie die OpenTelemetry-Daten an Ihre Backend-Plattform übertragen.
Die in diesem Blog geäußerten Ansichten sind die des Autors und spiegeln nicht unbedingt die Ansichten von New Relic wider. Alle vom Autor angebotenen Lösungen sind umgebungsspezifisch und nicht Teil der kommerziellen Lösungen oder des Supports von New Relic. Bitte besuchen Sie uns exklusiv im Explorers Hub (discuss.newrelic.com) für Fragen und Unterstützung zu diesem Blogbeitrag. Dieser Blog kann Links zu Inhalten auf Websites Dritter enthalten. Durch die Bereitstellung solcher Links übernimmt, garantiert, genehmigt oder billigt New Relic die auf diesen Websites verfügbaren Informationen, Ansichten oder Produkte nicht.