Vereinigung von OpenTracing und OpenCensus: der Weg zur Konvergenz

Vereinigung von OpenTracing und OpenCensus: der Weg zur Konvergenz

Autoren: Ted Young, Pritam Shah und das „Technische Spezifikationskomitee“ (Carlos Alberto, Bogdan Drutu, Sergey Kanzhelev und Yuriy Shkuro).

Das gemeinsame Projekt trägt den Namen: http://opentelemetry.io

Kurz und bündig:

  • Wir entwickeln ein neues, einheitliches Set an Bibliotheken und Spezifikationen zur Überwachung von Telemetrie. Es wird die Projekte OpenTracing und OpenCensus vereinen und eine unterstützte Möglichkeit zur Migration bieten.
  • Die Referenzimplementation in Java wird am 24. April zur Verfügung stehen, die Arbeiten an Implementierungen in anderen Sprachen beginnen vollumfänglich am 8. Mai 2019. Den Zeitplan ansehen hier.
  • Bis September 2019 ist die Angleichung an bestehende Projekte für C#, Golang, Java, NodeJS und Python geplant. Es liegt viel Arbeit vor uns, aber wir werden es schaffen, wenn wir parallel arbeiten. Wenn Sie an diesem Projekt interessiert sind, registrieren Sie sich bitte und teilen Sie uns mit, wie Sie beitragen möchten.
  • Wenn die Implementierung in jeder Sprache ausgereift ist, werden die entsprechenden Projekte OpenTracing und OpenCensus geschlossen. Das bedeutet, dass die alten Projekte eingefroren werden, während das neue Projekt weiterhin das bestehende Toolset über einen Zeitraum von zwei Jahren unterstützt, unter Verwendung von Rückwärtskompatibilität.

Projektübersicht

Vereinigung von OpenTracing und OpenCensus: der Weg zur Konvergenz

Wir führen eine Fusion durch! Das höchste Ziel ist es, die Projekte OpenTracing und OpenCensus in ein gemeinsames Projekt zu integrieren.
Der Kern des neuen Projekts wird aus klaren und durchdachten Schnittstellen bestehen, einschließlich des traditionellen Bündels von Bibliotheken, die diese Schnittstellen in Form sogenannter SDKs implementieren. Das Sahnehäubchen werden empfohlene Standards für Daten und Transportprotokolle sein, einschließlich gemeinsamer Teile der Infrastruktur.
Das Ergebnis wird ein vollständiges Telemetriesystem sein, das geeignet ist zur Überwachung von Mikrodiensten und anderen modernen verteilten Systemen, kompatibel mit den meisten gängigen OSS- und kommerziellen Grundlagenprogrammen.

Wichtige Ereignisse

24.04 — Referenzkandidat zur Überprüfung bereitgestellt.
08.05 — Das Team wird gebildet, das die Arbeit in allen Sprachen aufnimmt.
20.05 — Offizieller Start des Projekts auf der Kubecon Barcelona.
06.09 — Implementierungen in C#, Golang, Java, NodeJS und Python erreichen die Parität mit den Pendants.
06.11 — Offizielles Ende der Projekte OpenTracing und OpenCensus.
20.11 — Abschiedsparty zum Abschluss der Projekte auf dem Observability Summit, Kubecon San Diego.

Chronologie der Konvergenz

Vereinigung von OpenTracing und OpenCensus: der Weg zur Konvergenz

Die Migration für jede Sprache umfasst den Aufbau eines einsatzbereiten SDK, Tools für gängige Bibliotheken, Dokumentation, CI, Abwärtskompatibilität und das Schließen verwandter Projekte OpenCensus und OpenTracing ("Sonnenuntergang"). Wir haben uns ein ehrgeiziges Ziel gesetzt, bis September 2019 Gleichstand für die Sprachen C#, Golang, Java, NodeJS und Python zu erreichen. Wir werden das Datum des "Sonnenuntergangs" solange verschieben, bis alle Sprachen bereit sind. Es ist jedoch vorzuziehen, dies zu vermeiden.
Wenn Sie die Ziele betrachten, denken Sie bitte an Ihre persönliche Teilnahme und lassen Sie es uns wissen, indem Sie das Registrierungsformular, oder indem Sie in den Gitter-Chats der Projekte OpenTracing und OpenCensusHallo sagen. Den Zeitplan als Infografik können Sie einsehen hier.

Ziel: erster Entwurf der sprachübergreifenden Spezifikation (Fertigstellung bis 8. Mai)

Es ist wichtig, eng zusammenzuarbeiten, auch wenn parallel an verschiedenen Sprachen gearbeitet wird. Die sprachübergreifende Spezifikation bietet eine Anleitung für das Projekt. Es klingt prosaisch, aber es ist eine Garantie für die Unterstützung eines integrierten Systems, das unabhängig von der Programmiersprache vertraut erscheint.

Verpflichtende Anforderungen für den ersten Entwurf der Spezifikation für Sprache X:

  • Definitionen von allgemeiner Terminologie.
  • Ein Modell zur Beschreibung von verteilten Transaktionen, Statistiken und Metriken.
  • Erläuterungen zu wichtigen Fragen, die bei der Implementierung aufgetreten sind.

Dieses Ziel blockiert andere Arbeiten, der erste Entwurf muss bis 8. Mai abgeschlossen sein.

Ziel: erster Entwurf für die Datenspezifikation (Fertigstellung bis 6. Juli)

Die Datenspezifikation definiert das gemeinsame Datenformat für Traces und Metriken, sodass die von allen Prozessen exportierten Daten von derselben Telemetrie-Infrastruktur verarbeitet werden können, unabhängig davon, wie die Daten generiert werden. Dazu gehört das Datenmodell für die Trace-Modellbeschreibung, das in der sprachübergreifenden Spezifikation beschrieben wird. Auch enthalten sind Definitionen von Metadaten für allgemeine Operationen, die von Traces zur Erfassung genutzt werden: zum Beispiel HTTP-Anfragen, Fehler und Datenbankanfragen. Diese semantischen Vereinbarungen sind Beispiele.

Der erste Entwurf basiert auf dem aktuellen Datenformat von OpenCensus und wird Folgendes enthalten:

  • Ein Datenmodell, das die sprachübergreifende Spezifikation umsetzt.
  • Definitionen von Metadaten für allgemeine Operationen.
  • Definitionen von JSON und Protobuf.
  • Implementierung von Referenzclients.

Bitte beachten Sie, dass auch ein kabelgebundenes Protokoll existiert, das innerhalb der Bandbreite Traces verteilt und das wir ebenfalls standardisieren möchten. Verteilformat Trace-Context wird über das W3C entwickelt.

Ziel: Parität in allen wichtigen unterstützten Sprachen (Fertigstellung bis 6. September)

Wir müssen Parität für das aktuelle Sprachökosystem erreichen, um alte Projekte durch neue zu ersetzen.

  • Schnittstellendefinitionen für Tracing, Metriken und Kontextexterstellung basierend auf einer sprachübergreifenden Spezifikation.
  • Fertiges SDK, das diese Schnittstellen implementiert und Trace-Daten exportiert. Das SDK wird, wo immer möglich, durch den Transfer bestehender Implementierungen aus OpenCensus erstellt.
  • Toolset für beliebte Bibliotheken, die derzeit in OpenTracing und OpenCensus abgedeckt sind.

Wir legen auch großen Wert auf Abwärtskompatibilität und möchten einen reibungslosen Übergang von bestehenden Projekten gewährleisten.

  • Das neue SDK wird Mittel zur Abwärtskompatibilität mit den aktuellen OpenTracing-Schnittstellen enthalten. Diese ermöglichen es, veraltete OpenTracing-Tools zusammen mit neuen Tools im gleichen Prozess zu verwenden, was es den Benutzern erlaubt, ihre Arbeiten schrittweise zu migrieren.
  • Sobald das neue SDK bereit ist, wird ein Aktualisierungsplan für die aktuellen Benutzer von OpenCensus erstellt. Wie bei OpenTracing werden veraltete Werkzeuge weiterhin zusammen mit neuen funktionieren können.
  • Bis November werden sowohl OpenTracing als auch OpenCensus für Änderungen geschlossen. Die Abwärtskompatibilität mit veralteten Werkzeugen wird für zwei Jahre unterstützt.

Die Schaffung eines erstklassigen SDK für jede Sprache erfordert immense Anstrengungen, und genau das benötigen wir am meisten.

Ziel: Hauptdokumentation (Fertigstellung bis 6. September)

Ein kritischer Erfolgsfaktor für jedes Open-Source-Projekt ist die Dokumentation. Wir möchten erstklassige Dokumentation und Schulungsmittel haben, unsere technischen Redakteure sind die aktivsten Entwickler im Projekt. Entwicklern beizubringen, wie sie korrekt Software beobachten, ist eine der wichtigsten Auswirkungen, die wir auf die Welt haben möchten.

Folgende Teile der Dokumentation sind für den Anfang unbedingt erforderlich:

  • Projektorientierung.
  • Observability 101.
  • Erste Schritte.
  • Sprachenleitfäden (einzeln für jede Sprache).

Wir laden Autoren aller Niveaus ein! Unsere neue Website basiert auf Hugo und verwendet einfache Markup, sodass es sehr einfach ist, sich zu beteiligen.

Ziel: Registry v1.0 (Fertigstellung bis 6. Juli)

Registry — eine weitere kritisch wichtige Komponente, verbesserte Version OpenTracing Registry.

  • Einfach, Bibliotheken, Plugins, Installer und andere Komponenten zu finden.
  • Einfache Verwaltung der Registry-Komponenten.
  • Man kann herausfinden, welche SDK-Funktionen in jeder Sprache verfügbar sind.

Wenn Sie sich für Design, Schnittstellen und UX interessieren, haben wir ein großartiges Projekt für persönliches Engagement.

Ziel: Infrastruktur für Test- und Bereitstellungssoftware (Fertigstellung bis 6. September)

Um weiterhin sicheren Code zu liefern, auf den man sich verlassen kann, haben wir ein Projektz commitment zur Erstellung qualitativ hochwertiger Pipelines für Test- und Bereitstellungssoftware. Bitte lassen Sie uns wissen, ob Sie sich um die Pipelines für Tests, Leistungsmessung und Softwareveröffentlichung kümmern können. Wir definieren den Produktionsbereitschaftsgrad klar, und die Reife der Testinfrastruktur wird für uns ein entscheidender Faktor sein.

Ziel: Schließung der Projekte OpenTracing und OpenCensus (Fertigstellung bis 6. November)

Wir planen, die Schließung der alten Projekte am 6. September zu beginnen, wenn das neue Projekt mit ihnen paritätisch erreicht. Zwei Monate später, bei Parität aller Sprachen, planen wir die Schließung der Projekte OpenTracing und OpenCensus. Das ist zu verstehen als:

  • Die Repositories werden eingefroren, Änderungen werden nicht mehr vorgenommen.
  • Für das aktuelle Toolset ist eine zweijährige Unterstützung geplant.
  • Benutzer können auf das neue SDK aktualisieren, indem sie das alte Toolset verwenden.
  • Ein schrittweises Upgrade wird möglich sein.

Treten Sie bei

Wir freuen uns über jede Hilfe, da dies ein enormes Projekt ist. Wenn Sie mehr über Observability erfahren möchten, ist jetzt die beste Zeit!

Quelle: habr.com

60GB SSD 8Gb DDR4