OpenTelemetry ile Dağıtık İzleme
İstekleri süreçler ve hizmetler arasındaki akışları boyunca OpenTelemetry kullanarak izleyin; dağınık günlükleri tek ve bağlantılı bir zaman çizelgesine dönüştürün.
OpenTelemetry ile Dağıtık İzleme, CoddyKit'te ücretsiz bir Elixir & Phoenix: Scalable Backend Development dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Elixir & Phoenix: Scalable Backend Development öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Elixir & Phoenix: Scalable Backend Development kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
The Distributed Debugging Problem
In a system spread across services and processes, one user request touches many components. Plain logs cannot show how they connect. Distributed tracing stitches the whole journey into one timeline.
Traces and Spans
A trace represents one end-to-end request. It is made of spans — timed units of work like a DB query or an HTTP call. Spans nest to form a tree.
What is OpenTelemetry?
OpenTelemetry (OTel) is a vendor-neutral standard for traces, metrics, and logs. Elixir has first-class support via the opentelemetry packages, exporting to Jaeger, Honeycomb, Datadog, and more.
Adding the Dependencies
Add the API, SDK, and an exporter to your deps.
defp deps do
[
{:opentelemetry, "~> 1.3"},
{:opentelemetry_exporter, "~> 1.6"},
{:opentelemetry_phoenix, "~> 1.1"}
]
endAuto-Instrumenting Phoenix
The opentelemetry_phoenix package hooks into Telemetry events so each request becomes a trace automatically. Set it up in your application start.
def start(_type, _args) do
OpentelemetryPhoenix.setup()
OpentelemetryEcto.setup([:my_app, :repo])
Supervisor.start_link(children, opts)
endCreating a Manual Span
For custom work, wrap it in a span with Tracer.with_span/2. It records start and end times automatically.
require OpenTelemetry.Tracer, as: Tracer
Tracer.with_span "charge_payment" do
PaymentGateway.charge(order)
endAdding Span Attributes
Attributes attach searchable context to a span, like the user id or order total.
Tracer.set_attributes([{"order.id", order.id}, {"order.total", order.total}])Recording Errors
When something fails, mark the span so it stands out in your tracing UI.
Tracer.set_status(:error, "payment declined")
Tracer.record_exception(exception)Context Propagation
The magic of tracing is context propagation: the trace id travels with the request across service boundaries via HTTP headers, so spans from different services join the same trace.
Exporting to a Backend
Configure an exporter to ship spans to your observability backend over OTLP.
config :opentelemetry,
span_processor: :batch,
traces_exporter: :otlp
config :opentelemetry_exporter,
otlp_endpoint: "http://collector:4318"Reading a Trace
In a tracing UI you see a waterfall of spans. Long bars reveal slow steps; gaps reveal waiting. This pinpoints latency far faster than scanning logs.
Quick Check
Test your tracing knowledge.
Recap
You learned distributed tracing with OpenTelemetry:
- Traces are built from nested spans
- Auto-instrument Phoenix and Ecto via Telemetry
- Create manual spans with
with_spanand add attributes - Record errors on spans for visibility
- Context propagation connects spans across services
Tracing turns multi-service requests into one readable timeline.
Yapay zeka eğitmeniyle Elixir öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 12
- Dersler
- 48
Sıkça Sorulan Sorular
“OpenTelemetry ile Dağıtık İzleme” dersi ücretsiz mi?
Evet — “OpenTelemetry ile Dağıtık İzleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Elixir & Phoenix: Scalable Backend Development kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Elixir & Phoenix: Scalable Backend Development kursu toplamda 4 dersten oluşur.
“OpenTelemetry ile Dağıtık İzleme” dersinde ne öğreneceğim?
İstekleri süreçler ve hizmetler arasındaki akışları boyunca OpenTelemetry kullanarak izleyin; dağınık günlükleri tek ve bağlantılı bir zaman çizelgesine dönüştürün. Elixir & Phoenix: Scalable Backend Development ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Elixir & Phoenix: Scalable Backend Development öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Elixir & Phoenix: Scalable Backend Development, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“OpenTelemetry ile Dağıtık İzleme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Elixir & Phoenix: Scalable Backend Development dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Elixir & Phoenix: Scalable Backend Development dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Elixir'de Karşılaştırmalı Ölçüm ve Profil Oluşturma
- Telemetry ve Metriklerle İzleme
- Hata İşleme ve Yapılandırılmış Günlük Kaydı
- OpenTelemetry ile Dağıtık İzleme