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 Instrumentierung, 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.
Was sind Telemetriedaten?
Telemetriedaten sind Daten, die von Remote-Geräten oder Geräten außer Reichweite erfasst und für Monitoring, Analyse und Reporting an einen zentralen Ort übertragen werden. Diese Daten stammen in der Regel aus den unterschiedlichsten Quellen, z. B. Sensoren, Software-Anwendungen oder anderen Monitoring-Geräten, und dienen der Überwachung von Performance, Verhaltens- und Nutzungsmustern verschiedener Systeme und Anwendungen.
Telemetriedaten sind aus mehreren Gründen immens wichtig:
- Performance-Monitoring: Telemetriedaten liefern Live-Einblicke in die Ressourcenauslastung, Reaktionszeiten und weitere Performance-Metriken und erleichtern damit eine proaktive Wartung und Optimierung.
- Fehlererkennung und Troubleshooting: Die Analyse von Telemetriedaten erleichtert Teams die Erkennung von Fehlern, Problemen und Anomalien in Systemen und Anwendungen.
- Kapazitätsplanung: IT-Administratoren können sich besser zu aktuellen Nutzungsmustern und Trends informieren und daher fundiertere Entscheidungen hinsichtlich Ressourcenzuweisung und Infrastruktur-Upgrades treffen.
- Security-Monitoring: Mithilfe der Telemetriedaten lassen sich Schwachstellen, Sicherheitsverletzungen und unbefugte Zugriffsversuche erkennen und beheben.
- Verbesserung der User Experience: Telemetriedaten liefern Informationen zu Benutzerverhalten und -vorlieben. Anhand dieser wertvollen Einblicke können Entwickler:innen und Produktteams das Benutzererlebnis verbessern und ihre Produkte auf Basis echter Benutzerdaten optimieren.
Compliance und Reporting: Um gesetzliche Vorgaben und Branchenstandards zu erfüllen, müssen Unternehmen bestimmte Daten erfassen und aufbewahren. Telemetriesysteme können diese Datenerfassung und das Reporting automatisieren, sodass relevante Regularien jederzeit eingehalten werden.
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.
Die Vorteile von OpenTelemetry
- Einheitliche Observability: OpenTelemetry bietet einheitliche APIs und Instrumentierungsbibliotheken für mehrere Programmiersprachen und sorgt so für gleichbleibendes Vorgehen bei der Observability.
- Distributed Tracing: OpenTelemetry ermöglicht Distributed Tracing, sodass Entwickler:innen Anfragen auf ihrem Weg durch verschiedene Dienste und Komponenten einer verteilten Anwendung nachverfolgen können.
- Erfassung von Metriken: OpenTelemetry unterstützt die Erfassung unterschiedlicher Metriken wie Anfragenanzahl, Fehlerquoten und Ressourcennutzung.
- Kontextpropagierung: OpenTelemetry unterstützt Kontextpropagierung und stellt damit sicher, dass Kontextinformationen wie Trace- und Span-IDs zwischen den verschiedenen Diensten und Komponenten weitergeleitet werden.
- Plug-in-Sammlung: OpenTelemetry umfasst zahlreiche Plug-ins und Integrationen, mit denen Benutzer:innen Telemetriedaten in verschiedene Backends und Observability-Plattformen exportieren können.
- Anbieteragnostisch: Als Open-Source-Projekt ist OpenTelemetry anbieteragnostisch, also nicht an bestimmte Anbieter oder Technologien gebunden.
- Innovation in der Community: Die kollaborative Community fördert Innovation und damit eine kontinuierliche Optimierung des Frameworks und seiner Toolsets.
- Standardisierung: Unternehmen, die sich für OpenTelemetry entscheiden, setzen weithin anerkannte Verfahren und Standards zur Erfassung von Telemetriedaten ein. Dadurch sind Konsistenz und Kompatibilität aller Anwendungen und Services stets gewährleistet.
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-Backends. 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.