OTel-Native by Design – Building Products That Export to Any Observability Stack
🇬🇧 English
With contributions from Dan Gomez Blanco(New Relic). If you are building self-hosted software or a SaaS product, users will eventually ask to send logs, traces, and metrics to their own observability stack. Locking them into built-in dashboards or limiting exports to certain vendors creates unnecessary friction.
Instead, supporting export to any Open Telemetry (OTel)-compatible backend is a vendor-neutral, future-proof practice that gives users the freedom to choose their observability stack. This post outlines how to design your product so users can export logs, traces, and metrics to an OTel backend when they want to. Open Telemetry defines four signal types carried over the standard Open Telemetry Protocol (OTLP): Logs (event records, request/access logs, application logs with timestamps and metadata), Traces (distributed traces and spans users can see request flows across services and correlate with logs), Metrics (counters, gauges, and histograms, e.g., request rates, latency, error rates), and Profiles (samples that show where applications consume resources during execution).
The same export story applies to all three signals: let users configure an OTLP endpoint and push telemetry to it. You can support one, two, or all three signals depending on what your product generates. Many platforms that support OTel export support at least traces and logs, and an increasing number now ship with metrics support.
Designing for all three from the start avoids having to retrofit later. A solid export story has a few clear properties for every signal you support: vendor-neutral, no deep custom development, rich context preserved, and support for semantic conventions. Two contexts exist: where does your product run? For self-hosted software, instrument your product with Open Telemetry and let customers configure an endpoint via environment variables or a config file.
For cloud platforms, add a platform feature to manage exports. Examples include Keycloak and Kuma.
🇸🇦 العربية
تصميم أصلي لـ OTel منذ البداية: بناء منتجات تُصدّر إلى أي منظومة مراقبة
بمساهمة من Dan Gomez Blanco (New Relic). إذا كنت تبني برمجيات مستضافة ذاتيًا أو منتج SaaS، فسيطلب المستخدمون عاجلًا أو آجلًا إرسال السجلات والتتبعات والمقاييس إلى منظومة المراقبة الخاصة بهم. إن تقييدهم بلوحات المعلومات المدمجة أو حصر عمليات التصدير بمزوّدين معينين يخلق احتكاكًا غير ضروري. وفي المقابل، فإن دعم التصدير إلى أي نظام خلفي متوافق مع Open Telemetry (OTel) ممارسة محايدة تجاه المزوّدين ومستقبلية، تمنح المستخدمين حرية اختيار منظومة المراقبة التي يريدونها.
توضح هذه المقالة كيفية تصميم منتجك بحيث يتمكن المستخدمون من تصدير السجلات والتتبعات والمقاييس إلى نظام خلفي متوافق مع OTel متى أرادوا ذلك. يحدد Open Telemetry أربعة أنواع من الإشارات تُنقل عبر بروتوكول Open Telemetry القياسي (OTLP): السجلات (سجلات الأحداث وسجلات الطلبات والوصول وسجلات التطبيقات مع الطوابع الزمنية والبيانات الوصفية)، والتتبعات (التتبعات الموزعة والفترات الزمنية التي تتيح للمستخدمين رؤية تدفق الطلبات عبر الخدمات وربطها بالسجلات)، والمقاييس (العدادات والمقاييس اللحظية والمدرجات التكرارية، مثل معدلات الطلبات وزمن الاستجابة ومعدلات الأخطاء)، والملفات الشخصية (عينات توضح أين تستهلك التطبيقات الموارد أثناء التنفيذ). تنطبق قصة التصدير نفسها على الإشارات الثلاث: يتيح للمستخدمين تهيئة نقطة نهاية OTLP ودفع بيانات القياس إليها. يمكنك دعم إشارة واحدة أو اثنتين أو الثلاث جميعًا بحسب ما ينتجه منتجك. تدعم كثير من المنصات التي تتيح تصدير OTel التتبعات والسجلات على الأقل، وبات عدد متزايد منها يوفّر دعم المقاييس أيضًا. إن التصميم للإشارات الثلاث منذ البداية يتجنب الحاجة إلى إعادة الهيكلة لاحقًا.
تتميز استراتيجية التصدير الجيدة بعدة خصائص واضحة لكل إشارة تدعمها: الحياد تجاه المزوّد، وعدم الحاجة إلى تطوير مخصص معقد، والحفاظ على السياق الغني، ودعم الاصطلاحات الدلالية. وهناك سياقان يجب مراعاتهما: أين يعمل منتجك؟ بالنسبة إلى البرمجيات المستضافة ذاتيًا، قم بتزويد منتجك بأدوات قياس باستخدام Open Telemetry، ودع العملاء يهيئون نقطة النهاية عبر متغيرات البيئة أو ملف الإعدادات. أما بالنسبة إلى المنصات السحابية، فأضف ميزة منصة لإدارة عمليات التصدير. ومن الأمثلة على ذلك Keycloak وKuma.
ما هو OpenTelemetry، ولماذا ينبغي للمنتجات أن تُصدّر إلى أنظمة OTel الخلفية؟
OpenTelemetry (OTel) معيار مفتوح المصدر ومحايد تجاه المزوّدين لجمع السجلات والتتبعات والمقاييس والملفات الشخصية ونقلها عبر بروتوكول OTLP. إن دعم التصدير إلى أي نظام خلفي متوافق مع OTel يمنح المستخدمين حرية اختيار منظومة المراقبة دون الارتباط بمزوّد معين أو بلوحات معلومات مدمجة.
🇧🇩 বাংলা
শুরু থেকেই OTel-নেটিভ ডিজাইন: যেকোনো অবজারভেবিলিটি স্ট্যাকে এক্সপোর্ট করা যায় এমন পণ্য তৈরি
Dan Gomez Blanco (New Relic)-এর অবদানে। আপনি যদি স্ব-হোস্টেড সফটওয়্যার বা SaaS পণ্য তৈরি করেন, তবে ব্যবহারকারীরা একদিন না একদিন তাদের লগ, ট্রেস ও মেট্রিক্স নিজেদের অবজারভেবিলিটি স্ট্যাকে পাঠাতে চাইবেই। তাদের অন্তর্নির্মিত ড্যাশবোর্ডে আবদ্ধ করে রাখা অথবা নির্দিষ্ট কয়েকটি বিক্রেতায় এক্সপোর্ট সীমাবদ্ধ করা অপ্রয়োজনীয় বাধা সৃষ্টি করে। বরং যেকোনো Open Telemetry (OTel)-সামঞ্জস্যপূর্ণ ব্যাকএন্ডে এক্সপোর্টের সুবিধা দেওয়া একটি বিক্রেতা-নিরপেক্ষ ও ভবিষ্যৎ-উপযোগী পদ্ধতি, যা ব্যবহারকারীদের তাদের অবজারভেবিলিটি স্ট্যাক বেছে নেওয়ার স্বাধীনতা দেয়।
এই পোস্টে ব্যাখ্যা করা হয়েছে কীভাবে আপনার পণ্যকে এমনভাবে ডিজাইন করবেন যাতে ব্যবহারকারীরা যখন চান তখন লগ, ট্রেস ও মেট্রিক্স একটি OTel ব্যাকএন্ডে এক্সপোর্ট করতে পারেন। Open Telemetry স্ট্যান্ডার্ড Open Telemetry Protocol (OTLP)-এর মাধ্যমে বহনযোগ্য চারটি সিগন্যাল টাইপ নির্ধারণ করে: লগ (ইভেন্ট রেকর্ড, রিকোয়েস্ট/অ্যাক্সেস লগ, টাইমস্ট্যাম্প ও মেটাডেটাসহ অ্যাপ্লিকেশন লগ), ট্রেস (ডিস্ট্রিবিউটেড ট্রেস ও স্প্যান, যা ব্যবহারকারীদের সার্ভিসগুলোর মধ্যে রিকোয়েস্ট প্রবাহ দেখতে এবং লগের সাথে মেলাতে সাহায্য করে), মেট্রিক্স (কাউন্টার, গজ ও হিস্টোগ্রাম, যেমন রিকোয়েস্টের হার, লেটেন্সি ও এরর রেট), এবং প্রোফাইল (নমুনা, যা দেখায় এক্সিকিউশনের সময় অ্যাপ্লিকেশন কোথায় রিসোর্স ব্যবহার করে)। তিনটি সিগন্যালের জন্যই এক্সপোর্টের পদ্ধতি একই: ব্যবহারকারীরা একটি OTLP এন্ডপয়েন্ট কনফিগার করে সেখানে টেলিমেট্রি পাঠাতে পারবেন। আপনার পণ্য কী তৈরি করে তার ওপর নির্ভর করে আপনি একটি, দুটি বা তিনটি সিগন্যালই সমর্থন করতে পারেন। OTel এক্সপোর্ট সমর্থনকারী অনেক প্ল্যাটফর্ম অন্তত ট্রেস ও লগ সমর্থন করে, এবং ক্রমবর্ধমান সংখ্যক প্ল্যাটফর্ম মেট্রিক্সও সরবরাহ করছে। শুরু থেকেই তিনটির জন্য ডিজাইন করলে পরে পুনর্গঠনের প্রয়োজন হয় না।
একটি শক্তিশালী এক্সপোর্ট কৌশলের প্রতিটি সমর্থিত সিগন্যালের জন্য কয়েকটি স্পষ্ট বৈশিষ্ট্য থাকে: বিক্রেতা-নিরপেক্ষতা, গভীর কাস্টম ডেভেলপমেন্টের প্রয়োজন না থাকা, সমৃদ্ধ প্রসঙ্গ সংরক্ষণ এবং সেম্যান্টিক কনভেনশন সমর্থন। দুটি প্রেক্ষাপট বিবেচনা করতে হবে: আপনার পণ্য কোথায় চলে? স্ব-হোস্টেড সফটওয়্যারের জন্য, আপনার পণ্যকে Open Telemetry দিয়ে ইনস্ট্রুমেন্ট করুন এবং গ্রাহকদের এনভায়রনমেন্ট ভেরিয়েবল বা কনফিগ ফাইলের মাধ্যমে এন্ডপয়েন্ট সেট করতে দিন। ক্লাউড প্ল্যাটফর্মের জন্য, এক্সপোর্ট পরিচালনার জন্য একটি প্ল্যাটফর্ম ফিচার যুক্ত করুন। উদাহরণ হিসেবে Keycloak ও Kuma-র নাম করা যায়।
OpenTelemetry কী, এবং পণ্যগুলোর OTel ব্যাকএন্ডে এক্সপোর্ট সমর্থন করা উচিত কেন?
OpenTelemetry (OTel) হলো লগ, ট্রেস, মেট্রিক্স ও প্রোফাইল সংগ্রহ ও OTLP প্রোটোকলের মাধ্যমে পাঠানোর জন্য একটি বিক্রেতা-নিরপেক্ষ, ওপেন-সোর্স স্ট্যান্ডার্ড। যেকোনো OTel-সামঞ্জস্যপূর্ণ ব্যাকএন্ডে এক্সপোর্ট সমর্থন করলে ব্যবহারকারীরা কোনো নির্দিষ্ট বিক্রেতা বা অন্তর্নির্মিত ড্যাশবোর্ডে আবদ্ধ না হয়ে নিজেদের অবজারভেবিলিটি স্ট্যাক বেছে নিতে পারেন।
🇩🇪 Deutsch
Von Anfang an OTel-nativ: Produkte, die in jeden Observability-Stack exportieren
Mit Beiträgen von Dan Gomez Blanco (New Relic). Wenn Sie selbst gehostete Software oder ein SaaS-Produkt entwickeln, werden Nutzer früher oder später verlangen, Logs, Traces und Metriken an ihren eigenen Observability-Stack zu senden. Sie in integrierte Dashboards einzuschließen oder Exporte auf bestimmte Anbieter zu beschränken, erzeugt unnötige Reibung. Stattdessen ist die Unterstützung des Exports in jedes Open Telemetry (OTel)-kompatible Backend eine herstellerneutrale, zukunftssichere Praxis, die Nutzern die Freiheit gibt, ihren Observability-Stack selbst zu wählen.
Dieser Beitrag beschreibt, wie Sie Ihr Produkt so gestalten, dass Nutzer Logs, Traces und Metriken bei Bedarf an ein OTel-Backend exportieren können. Open Telemetry definiert vier Signaltypen, die über das standardisierte Open Telemetry Protocol (OTLP) übertragen werden: Logs (Ereignisdatensätze, Request- und Zugriffslogs, Anwendungslogs mit Zeitstempeln und Metadaten), Traces (verteilte Traces und Spans, mit denen Nutzer Anfrageflüsse über Dienste hinweg nachvollziehen und mit Logs korrelieren können), Metriken (Zähler, Messwerte und Histogramme, etwa Anfrageraten, Latenz und Fehlerraten) sowie Profile (Stichproben, die zeigen, wo Anwendungen während der Ausführung Ressourcen verbrauchen). Für alle drei Signale gilt dasselbe Exportprinzip: Nutzer konfigurieren einen OTLP-Endpunkt und senden Telemetriedaten dorthin. Je nachdem, was Ihr Produkt erzeugt, können Sie ein, zwei oder alle drei Signale unterstützen. Viele Plattformen mit OTel-Export unterstützen mindestens Traces und Logs, und immer mehr bieten inzwischen auch Metriken an. Eine Auslegung auf alle drei von Beginn an vermeidet spätere Nachrüstungen.
Eine solide Exportstrategie weist für jedes unterstützte Signal einige klare Eigenschaften auf: Herstellerneutralität, keine aufwendige individuelle Entwicklung, Erhalt des reichhaltigen Kontexts und Unterstützung semantischer Konventionen. Zwei Kontexte sind zu beachten: Wo läuft Ihr Produkt? Bei selbst gehosteter Software instrumentieren Sie Ihr Produkt mit Open Telemetry und lassen Kunden den Endpunkt über Umgebungsvariablen oder eine Konfigurationsdatei festlegen. Bei Cloud-Plattformen fügen Sie eine Plattformfunktion zur Verwaltung der Exporte hinzu. Beispiele dafür sind Keycloak und Kuma.
Was ist OpenTelemetry, und warum sollten Produkte in OTel-Backends exportieren?
OpenTelemetry (OTel) ist ein herstellerneutraler, quelloffener Standard zum Erfassen von Logs, Traces, Metriken und Profilen und zu deren Übertragung über das OTLP-Protokoll. Die Unterstützung des Exports in jedes OTel-kompatible Backend gibt Nutzern die Freiheit, ihren Observability-Stack zu wählen, ohne an einen Anbieter oder integrierte Dashboards gebunden zu sein.
🇪🇸 Español
Diseñado para OTel desde el inicio: cómo crear productos que exportan a cualquier stack de observabilidad
Con aportaciones de Dan Gomez Blanco (New Relic). Si estás desarrollando software autoalojado o un producto SaaS, los usuarios acabarán pidiendo enviar sus logs, trazas y métricas a su propio stack de observabilidad. Encerrarlos en paneles integrados o limitar las exportaciones a ciertos proveedores genera fricciones innecesarias. En cambio, dar soporte a la exportación a cualquier backend compatible con Open Telemetry (OTel) es una práctica neutral respecto al proveedor y preparada para el futuro, que da a los usuarios la libertad de elegir su stack de observabilidad.
Esta publicación explica cómo diseñar tu producto para que los usuarios puedan exportar logs, trazas y métricas a un backend OTel cuando lo deseen. Open Telemetry define cuatro tipos de señales transmitidas mediante el protocolo estándar Open Telemetry Protocol (OTLP): logs (registros de eventos, logs de peticiones o accesos y logs de aplicación con marcas de tiempo y metadatos), trazas (trazas distribuidas y spans que permiten a los usuarios ver el flujo de las peticiones entre servicios y correlacionarlas con los logs), métricas (contadores, medidores e histogramas, como tasas de peticiones, latencia o tasas de error) y perfiles (muestras que muestran dónde consumen recursos las aplicaciones durante su ejecución). La historia de exportación es la misma para las tres señales: permite que los usuarios configuren un endpoint OTLP y envíen la telemetría a él. Puedes admitir una, dos o las tres señales según lo que genere tu producto. Muchas plataformas que soportan la exportación OTel admiten al menos trazas y logs, y cada vez más incluyen soporte para métricas. Diseñar para las tres desde el principio evita tener que rehacer el trabajo más adelante.
Una buena estrategia de exportación tiene algunas propiedades claras para cada señal que soportes: neutralidad respecto al proveedor, sin necesidad de desarrollo personalizado profundo, conservación del contexto enriquecido y soporte para las convenciones semánticas. Hay dos contextos que considerar: ¿dónde se ejecuta tu producto? En el caso de software autoalojado, instrumenta tu producto con Open Telemetry y permite que los clientes configuren un endpoint mediante variables de entorno o un archivo de configuración. Para plataformas en la nube, añade una función de plataforma que gestione las exportaciones. Ejemplos de ello son Keycloak y Kuma.
¿Qué es OpenTelemetry y por qué debería un producto exportar a backends OTel?
OpenTelemetry (OTel) es un estándar abierto y neutral respecto al proveedor para recopilar logs, trazas, métricas y perfiles, y transmitirlos mediante el protocolo OTLP. Permitir la exportación a cualquier backend compatible con OTel da a los usuarios la libertad de elegir su stack de observabilidad sin quedar atados a un proveedor o a paneles integrados.
🇫🇷 Français
Conçu pour OTel dès l'origine : créer des produits exportables vers n'importe quelle pile d'observabilité
Avec la contribution de Dan Gomez Blanco (New Relic). Si vous développez un logiciel auto-hébergé ou un produit SaaS, vos utilisateurs finiront par vouloir envoyer leurs logs, traces et métriques vers leur propre pile d'observabilité. Les enfermer dans des tableaux de bord intégrés ou limiter les exportations à certains fournisseurs crée des frictions inutiles. Au contraire, prendre en charge l'export vers tout backend compatible avec Open Telemetry (OTel) est une pratique neutre vis-à-vis des fournisseurs et pérenne, qui laisse aux utilisateurs la liberté de choisir leur pile d'observabilité.
Cet article décrit comment concevoir votre produit pour que les utilisateurs puissent exporter logs, traces et métriques vers un backend OTel lorsqu'ils le souhaitent. Open Telemetry définit quatre types de signaux transmis via le protocole standard Open Telemetry Protocol (OTLP) : les logs (enregistrements d'événements, journaux de requêtes et d'accès, journaux applicatifs avec horodatage et métadonnées), les traces (traces distribuées et spans permettant de suivre le parcours des requêtes entre services et de les corréler aux logs), les métriques (compteurs, jauges et histogrammes, par exemple débits de requêtes, latence, taux d'erreur) et les profils (échantillons montrant où les applications consomment des ressources pendant l'exécution). La logique d'export est la même pour les trois signaux : permettre aux utilisateurs de configurer un point de terminaison OTLP et d'y transmettre leur télémétrie. Vous pouvez prendre en charge un, deux ou les trois signaux selon ce que génère votre produit. De nombreuses plateformes compatibles avec l'export OTel supportent au moins les traces et les logs, et de plus en plus proposent aussi les métriques. Concevoir pour les trois dès le départ évite d'avoir à tout reprendre plus tard.
Une bonne stratégie d'export repose sur quelques propriétés claires pour chaque signal pris en charge : neutralité vis-à-vis des fournisseurs, absence de développement sur mesure approfondi, préservation d'un contexte riche et prise en charge des conventions sémantiques. Deux contextes sont à considérer : où s'exécute votre produit ? Pour un logiciel auto-hébergé, instrumentez votre produit avec Open Telemetry et laissez les clients configurer un point de terminaison via des variables d'environnement ou un fichier de configuration. Pour les plateformes cloud, ajoutez une fonctionnalité de plateforme permettant de gérer les exports. Keycloak et Kuma en sont des exemples.
Qu'est-ce qu'OpenTelemetry, et pourquoi un produit devrait-il exporter vers des backends OTel ?
OpenTelemetry (OTel) est un standard open source, neutre vis-à-vis des fournisseurs, pour collecter logs, traces, métriques et profils, et les transmettre via le protocole OTLP. Prendre en charge l'export vers tout backend compatible OTel offre aux utilisateurs la liberté de choisir leur pile d'observabilité sans être liés à un fournisseur ni à des tableaux de bord intégrés.
🇮🇳 हिन्दी
शुरुआत से ही OTel-नेटिव डिज़ाइन: ऐसे उत्पाद बनाना जो किसी भी observability स्टैक में डेटा निर्यात करें
Dan Gomez Blanco (New Relic) के योगदान के साथ। यदि आप self-hosted सॉफ़्टवेयर या SaaS उत्पाद बना रहे हैं, तो उपयोगकर्ता देर-सवेर अपने लॉग, ट्रेस और मेट्रिक्स अपने स्वयं के observability स्टैक में भेजने के लिए कहेंगे। उन्हें अंतर्निहित डैशबोर्ड में बाँधना या निर्यात को कुछ विशेष विक्रेताओं तक सीमित करना अनावश्यक बाधाएँ पैदा करता है। इसके बजाय, किसी भी Open Telemetry (OTel)-संगत बैकएंड में निर्यात का समर्थन करना एक विक्रेता-तटस्थ और भविष्य-सुरक्षित तरीका है, जो उपयोगकर्ताओं को अपना observability स्टैक चुनने की स्वतंत्रता देता है।
यह पोस्ट बताती है कि आप अपने उत्पाद को इस तरह कैसे डिज़ाइन करें कि उपयोगकर्ता जब चाहें तब लॉग, ट्रेस और मेट्रिक्स को OTel बैकएंड में निर्यात कर सकें। Open Telemetry मानक Open Telemetry Protocol (OTLP) पर चार सिग्नल प्रकार परिभाषित करता है: Logs (इवेंट रिकॉर्ड, request/access लॉग, टाइमस्टैम्प और मेटाडेटा वाले एप्लिकेशन लॉग), Traces (distributed traces और spans, जिनसे उपयोगकर्ता सेवाओं के बीच request flows देख सकते हैं और उन्हें लॉग से जोड़ सकते हैं), Metrics (counters, gauges और histograms, जैसे request rates, latency और error rates), और Profiles (नमूने जो दिखाते हैं कि execution के दौरान एप्लिकेशन संसाधनों का उपयोग कहाँ करते हैं)। तीनों सिग्नलों के लिए निर्यात की कहानी एक जैसी है: उपयोगकर्ता एक OTLP endpoint कॉन्फ़िगर करें और उसमें telemetry भेजें। आपका उत्पाद जो उत्पन्न करता है उसके आधार पर आप एक, दो या तीनों सिग्नल सपोर्ट कर सकते हैं। OTel निर्यात का समर्थन करने वाले कई प्लेटफ़ॉर्म कम से कम traces और logs सपोर्ट करते हैं, और अब बढ़ती संख्या में metrics भी सपोर्ट करते हैं। शुरू से तीनों के लिए डिज़ाइन करने से बाद में बदलाव की ज़रूरत नहीं पड़ती।
एक ठोस निर्यात रणनीति के हर समर्थित सिग्नल के लिए कुछ स्पष्ट गुण होते हैं: विक्रेता-तटस्थता, गहन कस्टम विकास की आवश्यकता न होना, समृद्ध संदर्भ का संरक्षण, और semantic conventions का समर्थन। दो संदर्भ विचारणीय हैं: आपका उत्पाद कहाँ चलता है? Self-hosted सॉफ़्टवेयर के लिए, अपने उत्पाद को Open Telemetry से instrument करें और ग्राहकों को environment variables या config file के ज़रिए endpoint कॉन्फ़िगर करने दें। Cloud प्लेटफ़ॉर्म के लिए, निर्यात प्रबंधित करने हेतु एक प्लेटफ़ॉर्म फ़ीचर जोड़ें। उदाहरण के लिए Keycloak और Kuma।
OpenTelemetry क्या है, और उत्पादों को OTel बैकएंड में निर्यात क्यों करना चाहिए?
OpenTelemetry (OTel) एक विक्रेता-तटस्थ, ओपन-सोर्स मानक है जो logs, traces, metrics और profiles एकत्र करता है और OTLP प्रोटोकॉल के ज़रिए भेजता है। किसी भी OTel-संगत बैकएंड में निर्यात का समर्थन करने से उपयोगकर्ता किसी विशेष विक्रेता या अंतर्निहित डैशबोर्ड से बंधे बिना अपना observability स्टैक चुन सकते हैं।
🇮🇩 Bahasa Indonesia
Didesain OTel-Native dari Awal: Membangun Produk yang Dapat Diekspor ke Stack Observabilitas Apa Pun
Dengan kontribusi dari Dan Gomez Blanco (New Relic). Jika Anda membangun perangkat lunak self-hosted atau produk SaaS, pengguna pada akhirnya akan meminta untuk mengirim log, trace, dan metrik ke stack observabilitas mereka sendiri. Mengunci mereka pada dasbor bawaan atau membatasi ekspor ke vendor tertentu menimbulkan hambatan yang tidak perlu. Sebaliknya, mendukung ekspor ke backend apa pun yang kompatibel dengan Open Telemetry (OTel) adalah praktik yang netral terhadap vendor dan tahan masa depan, yang memberi pengguna kebebasan untuk memilih stack observabilitas mereka.
Artikel ini menguraikan cara mendesain produk Anda agar pengguna dapat mengekspor log, trace, dan metrik ke backend OTel kapan pun mereka membutuhkannya. Open Telemetry mendefinisikan empat tipe sinyal yang dikirim melalui Open Telemetry Protocol (OTLP) standar: Logs (catatan peristiwa, log permintaan/akses, log aplikasi dengan timestamp dan metadata), Traces (trace terdistribusi dan span yang memungkinkan pengguna melihat alur permintaan antarlayanan dan mengorelasikannya dengan log), Metrics (counter, gauge, dan histogram, misalnya laju permintaan, latensi, dan laju error), dan Profiles (sampel yang menunjukkan di mana aplikasi mengonsumsi sumber daya selama eksekusi). Konsep ekspor untuk ketiga sinyal tersebut sama: biarkan pengguna mengonfigurasi endpoint OTLP dan mengirim telemetri ke sana. Anda dapat mendukung satu, dua, atau ketiga sinyal tergantung pada apa yang dihasilkan produk Anda. Banyak platform yang mendukung ekspor OTel setidaknya mendukung trace dan log, dan semakin banyak yang kini juga menyediakan metrik. Mendesain untuk ketiganya sejak awal menghindari kebutuhan untuk melakukan perombakan di kemudian hari.
Strategi ekspor yang solid memiliki beberapa properti yang jelas untuk setiap sinyal yang didukung: netral terhadap vendor, tanpa pengembangan kustom yang mendalam, mempertahankan konteks yang kaya, serta mendukung konvensi semantik. Ada dua konteks yang perlu dipertimbangkan: di mana produk Anda berjalan? Untuk perangkat lunak self-hosted, instrumentasikan produk Anda dengan Open Telemetry dan biarkan pelanggan mengonfiguras
🇯🇵 日本語
最初から OTel ネイティブに設計する: あらゆるオブザーバビリティ基盤へエクスポートできる製品づくり
Dan Gomez Blanco(New Relic)の寄稿による記事です。セルフホスト型ソフトウェアや SaaS 製品を開発している場合、ユーザーはいずれ自分たちのオブザーバビリティ基盤へログ、トレース、メトリクスを送信したいと求めるようになります。組み込みのダッシュボードに閉じ込めたり、エクスポート先を特定のベンダーに限定したりすると、不必要な摩擦が生まれます。代わりに、Open Telemetry(OTel)互換の任意のバックエンドへのエクスポートをサポートすることは、ベンダー中立で将来性のあるアプローチであり、ユーザーが自分のオブザーバビリティ基盤を自由に選べるようにします。
この記事では、ユーザーが必要なときにログ、トレース、メトリクスを OTel バックエンドへエクスポートできるように製品を設計する方法を説明します。Open Telemetry は、標準の Open Telemetry Protocol(OTLP)で送信される 4 種類のシグナルを定義しています。ログ(タイムスタンプとメタデータを持つイベント記録、リクエスト/アクセスログ、アプリケーションログ)、トレース(サービス間のリクエストの流れを確認し、ログと関連付けられる分散トレースとスパン)、メトリクス(リクエスト率、レイテンシ、エラー率などのカウンター、ゲージ、ヒストグラム)、プロファイル(実行中にアプリケーションがどこでリソースを消費しているかを示すサンプル)です。3 つのシグナルすべてに共通するエクスポートの流れは、ユーザーが OTLP エンドポイントを設定し、そこへテレメトリを送信できるようにすることです。製品が生成するデータに応じて、1 つ、2 つ、あるいは 3 つすべてのシグナルをサポートできます。OTel エクスポートに対応する多くのプラットフォームは少なくともトレースとログをサポートしており、メトリクスをサポートする製品も増えています。最初から 3 つすべてを想定して設計しておけば、後から改修する手間を避けられます。
優れたエクスポート戦略には、サポートする各シグナルについて明確な特性があります。ベンダー中立であること、大がかりなカスタム開発を必要としないこと、豊富なコンテキストを保持すること、セマンティック規約をサポートすることです。考慮すべき文脈は 2 つあります。製品はどこで動作するのか、という点です。セルフホスト型ソフトウェアの場合は、Open Telemetry で製品を計装し、顧客が環境変数や設定ファイルでエンドポイントを設定できるようにします。クラウドプラットフォームの場合は、エクスポートを管理するためのプラットフォーム機能を追加します。Keycloak や Kuma がその例です。
OpenTelemetry とは何ですか。製品が OTel バックエンドへエクスポートすべき理由は何ですか。
OpenTelemetry(OTel)は、ログ、トレース、メトリクス、プロファイルを収集し、OTLP プロトコルで送信するためのベンダー中立なオープンソース標準です。OTel 互換の任意のバックエンドへのエクスポートをサポートすると、特定のベンダーや組み込みダッシュボードに縛られることなく、ユーザーが自由にオブザーバビリティ基盤を選択できるようになります。
🇧🇷 Português
Projetado para OTel desde o início: criando produtos que exportam para qualquer stack de observabilidade
Com contribuições de Dan Gomez Blanco (New Relic). Se você está construindo software self-hosted ou um produto SaaS, os usuários acabarão pedindo para enviar seus logs, traces e métricas para a própria stack de observabilidade. Prendê-los a dashboards integrados ou limitar as exportações a determinados fornecedores cria atritos desnecessários. Já oferecer suporte à exportação para qualquer backend compatível com Open Telemetry (OTel) é uma prática neutra em relação a fornecedores e preparada para o futuro, que dá aos usuários a liberdade de escolher sua stack de observabilidade.
Este post descreve como projetar seu produto para que os usuários possam exportar logs, traces e métricas para um backend OTel quando quiserem. O Open Telemetry define quatro tipos de sinais transportados pelo protocolo padrão Open Telemetry Protocol (OTLP): Logs (registros de eventos, logs de requisições e acesso, logs de aplicação com timestamps e metadados), Traces (traces distribuídos e spans que permitem ver o fluxo das requisições entre serviços e correlacioná-las com os logs), Metrics (contadores, medidores e histogramas, como taxas de requisição, latência e taxas de erro) e Profiles (amostras que mostram onde as aplicações consomem recursos durante a execução). A mesma lógica de exportação vale para os três sinais: permita que o usuário configure um endpoint OTLP e envie a telemetria para ele. Você pode oferecer suporte a um, dois ou os três sinais, dependendo do que seu produto gera. Muitas plataformas que suportam exportação OTel oferecem pelo menos traces e logs, e um número crescente agora também oferece métricas. Projetar para os três desde o início evita ter que refazer o trabalho depois.
Uma boa estratégia de exportação tem algumas propriedades claras para cada sinal suportado: neutralidade em relação a fornecedores, sem necessidade de desenvolvimento customizado complexo, preservação do contexto rico e suporte às convenções semânticas. Há dois contextos a considerar: onde seu produto roda? Para software self-hosted, instrumente seu produto com Open Telemetry e deixe os clientes configurarem um endpoint por variáveis de ambiente ou arquivo de configuração. Para plataformas em nuvem, adicione um recurso de plataforma para gerenciar as exportações. Exemplos incluem Keycloak e Kuma.
O que é OpenTelemetry e por que um produto deve exportar para backends OTel?
OpenTelemetry (OTel) é um padrão aberto e neutro em relação a fornecedores para coletar logs, traces, métricas e profiles e transmiti-los pelo protocolo OTLP. Oferecer exportação para qualquer backend compatível com OTel dá aos usuários a liberdade de escolher sua stack de observabilidade, sem ficar presos a um fornecedor ou a dashboards integrados.
🇷🇺 Русский
OTel-ориентированный дизайн с самого начала: продукты, экспортирующие данные в любой стек наблюдаемости
При участии Dan Gomez Blanco (New Relic). Если вы разрабатываете программное обеспечение для самостоятельного развёртывания или SaaS-продукт, пользователи рано или поздно попросят отправлять логи, трассировки и метрики в их собственный стек наблюдаемости. Привязка их к встроенным дашбордам или ограничение экспорта определёнными вендорами создаёт ненужные трудности. Вместо этого поддержка экспорта в любой бэкенд, совместимый с Open Telemetry (OTel), — это нейтральный к вендорам и перспективный подход, который даёт пользователям свободу выбора стека наблюдаемости.
В этой статье описано, как спроектировать продукт так, чтобы пользователи могли экспортировать логи, трассировки и метрики в бэкенд OTel, когда захотят. Open Telemetry определяет четыре типа сигналов, передаваемых по стандартному протоколу Open Telemetry Protocol (OTLP): логи (записи событий, журналы запросов и доступа, логи приложений с временными метками и метаданными), трассировки (распределённые трассировки и спаны, позволяющие видеть путь запросов между сервисами и сопоставлять их с логами), метрики (счётчики, датчики и гистограммы, например частота запросов, задержка и частота ошибок) и профили (выборки, показывающие, где приложения потребляют ресурсы во время выполнения). Схема экспорта одинакова для всех трёх сигналов: позвольте пользователям настроить OTLP-эндпоинт и отправлять туда телеметрию. Вы можете поддерживать один, два или все три сигнала в зависимости от того, что генерирует ваш продукт. Многие платформы с поддержкой экспорта OTel поддерживают как минимум трассировки и логи, а всё больше из них поддерживают и метрики. Проектирование сразу под все три сигнала позволяет избежать последующей переделки.
Хорошая стратегия экспорта обладает несколькими чёткими свойствами для каждого поддерживаемого сигнала: нейтральность к вендорам, отсутствие необходимости в глубокой кастомной разработке, сохранение богатого контекста и поддержка семантических соглашений. Нужно учитывать два контекста: где работает ваш продукт? Для программного обеспечения с самостоятельным развёртыванием инструментируйте продукт с помощью Open Telemetry и позвольте клиентам настраивать эндпоинт через переменные окружения или конфигурационный файл. Для облачных платформ добавьте функцию платформы для управления экспортом. Примеры — Keycloak и Kuma.
Что такое OpenTelemetry и зачем продуктам экспортировать данные в бэкенды OTel?
OpenTelemetry (OTel) — это открытый нейтральный к вендорам стандарт для сбора логов, трассировок, метрик и профилей и их передачи по протоколу OTLP. Поддержка экспорта в любой бэкенд, совместимый с OTel, даёт пользователям свободу выбирать стек наблюдаемости, не завися от конкретного вендора или встроенных дашбордов.
🇨🇳 简体中文
原生支持 OTel 的设计理念:构建可导出至任意可观测性平台的产品
与 Dan Gomez Blanco(New Relic)共同撰写。如果你正在构建自托管软件或 SaaS 产品,用户迟早会要求将日志、追踪和指标发送到他们自己的可观测性平台。将用户锁定在内置仪表板中,或将导出功能限制在特定供应商,会造成不必要的障碍。相反,支持导出至任何兼容 Open Telemetry(OTel)的后端,是一种与供应商无关、面向未来的做法,让用户可以自由选择其可观测性平台。
本文概述了如何设计你的产品,使用户在需要时能够将日志、追踪和指标导出到 OTel 后端。Open Telemetry 定义了四种信号类型,并通过标准的 Open Telemetry 协议(OTLP)传输:日志(事件记录、请求/访问日志、带时间戳和元数据的应用日志)、追踪(分布式追踪和跨度,用户可借此查看跨服务的请求流并与日志关联)、指标(计数器、仪表和直方图,例如请求速率、延迟、错误率)以及性能剖析(显示应用在执行期间消耗资源位置的采样数据)。三种信号的导出方式相同:让用户配置一个 OTLP 端点,并将遥测数据推送到该端点。你可以根据产品生成的数据,支持其中一种、两种或全部三种信号。
许多支持 OTel 导出的平台至少支持追踪和日志,而且越来越多的平台也开始支持指标。从一开始就为三种信号做好设计,可以避免日后再进行改造。一套完善的导出方案,对于所支持的每种信号都应具备以下几个明确特性:与供应商无关、无需深度定制开发、保留丰富的上下文信息,以及支持语义约定。
需要考虑两种场景:你的产品运行在哪里?对于自托管软件,请使用 Open Telemetry 对产品进行插桩,并允许客户通过环境变量或配置文件设置端点。对于云平台,则应添加用于管理导出的平台功能。例如 Keycloak 和 Kuma。
什么是 OpenTelemetry,为什么产品应支持导出至 OTel 后端?
OpenTelemetry(OTel)是一个供应商中立的开源标准,用于收集日志、追踪、指标和性能剖析数据,并通过 OTLP 协议传输。支持导出至任何 OTel 兼容后端,可让用户自由选择可观测性平台,避免被锁定在特定供应商或内置仪表板中。