OTel SDKによるアプリケーションの計装
さまざまなプログラミング言語向けのOpenTelemetry SDKについて概要を学びます。ログ、メトリクス、トレースの生成にどのように使うかを理解します。
「OTel SDKによるアプリケーションの計装」はCoddyKit上の無料System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry)レッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSystem Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry)学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry)コースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
What are OTel SDKs?
OpenTelemetry SDKs are language-specific libraries that enable your applications to generate and export observability data. Think of them as the toolkit for making your code observable.
They provide the necessary APIs (Application Programming Interfaces) to capture logs, metrics, and traces directly from your application's runtime.
Role of OpenTelemetry SDKs
SDKs are crucial because they bridge the gap between your application code and the OpenTelemetry standard. They handle the complex work of:
- Collecting Data: Gathering raw observability signals like method calls or variable values.
- Processing Data: Enriching, filtering, and batching this data.
- Exporting Data: Sending the processed data to an observability backend (like Jaeger, Prometheus, or an ELK stack).
Key OTel SDK Components
An OpenTelemetry SDK typically includes several core components that work together:
- Providers: Such as
TracerProvider,MeterProvider, andLoggerProvider, which manage the creation of Tracers, Meters, and Loggers. - Processors/Readers: These define how collected data (spans, metrics, log records) is processed before being sent to an exporter.
- Exporters: Components that send the processed data to an external system, like a console or a remote endpoint.
Tracing with OTel SDKs
When you want to trace requests through your system, OpenTelemetry SDKs provide tools to create and manage spans. A span represents a single operation within a trace.
The SDK gives you a Tracer object, which you use to start new spans, set attributes on them, and link them to parent spans, effectively building a complete trace of a request's journey.
OTel Tracing Code Example
Here's a simple Python example showing how to initialize OpenTelemetry and create a basic trace with nested spans. We use a ConsoleSpanExporter to print spans to the console.
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import ConsoleSpanExporter, SimpleSpanProcessor
# 1. Configure the TracerProvider
provider = TracerProvider()
processor = SimpleSpanProcessor(ConsoleSpanExporter())
provider.add_span_processor(processor)
trace.set_tracer_provider(provider)
# 2. Get a Tracer
tracer = trace.get_tracer(__name__)
# 3. Create a Span
with tracer.start_as_current_span("my-first-span"):
print("Inside the span!")
with tracer.start_as_current_span("child-span"):
print("Inside the child span!")
print("Tracing example finished.")Metrics with OTel SDKs
OpenTelemetry SDKs allow you to define and record various types of metrics. Metrics are numerical measurements captured over time, useful for aggregated views of system health and performance.
You obtain a Meter object from the SDK, which you then use to create different types of instruments, such as Counters (for incrementing values) or Gauges (for current values).
OTel Metrics Code Example
This Python example demonstrates how to set up OpenTelemetry for metrics and use a Meter to create and update a Counter. The ConsoleMetricExporter prints the collected metrics.
from opentelemetry import metrics
from opentelemetry.sdk.metrics import MeterProvider
from opentelemetry.sdk.metrics.export import ConsoleMetricExporter, PeriodicExportingMetricReader
# 1. Configure the MeterProvider
reader = PeriodicExportingMetricReader(ConsoleMetricExporter())
provider = MeterProvider(metric_readers=[reader])
metrics.set_meter_provider(provider)
# 2. Get a Meter
meter = metrics.get_meter(__name__)
# 3. Create a Counter instrument
counter = meter.create_counter(
"my_example_counter",
description="Counts how many times something happens"
)
# 4. Record a measurement
counter.add(1, {"key": "value"})
counter.add(2, {"another_key": "another_value"})
print("Metrics example finished. May take a moment to export.")Logging with OTel SDKs
OpenTelemetry SDKs also provide a way to capture and enrich logs. While traditional logging often focuses on plain text, OTel logs can be structured and correlated with traces and metrics.
The SDK offers a Logger (or integrates with existing logging frameworks) to create Log Records. These records can then be processed and exported alongside your traces and metrics, providing a unified view.
OTel Logging Code Example
This Python example shows how to integrate OpenTelemetry with the standard Python logging library. Logs emitted through the standard logger are then processed and exported by OTel.
import logging
from opentelemetry._logs import set_logger_provider
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
from opentelemetry.sdk._logs.export import ConsoleLogExporter, SimpleLogRecordProcessor
# 1. Configure the LoggerProvider
provider = LoggerProvider()
processor = SimpleLogRecordProcessor(ConsoleLogExporter())
provider.add_log_record_processor(processor)
set_logger_provider(provider)
# 2. Get a Python standard logger
# and attach the OTel handler
handler = LoggingHandler(logger_provider=provider)
logging.getLogger().addHandler(handler)
logging.getLogger().setLevel(logging.INFO)
# 3. Emit a log record
logging.info("This is an info log from OTel SDK!")
logging.warning("A warning occurred.")
print("Logging example finished.")OTel SDKs Quick Check
OpenTelemetry SDKs are essential for instrumenting applications. Which of the following is NOT a core component or function provided by an OpenTelemetry SDK?
Recap: OTel SDKs
You've learned that OpenTelemetry SDKs are the foundational tools for instrumenting your applications across different programming languages.
- They provide the APIs to generate traces, metrics, and logs.
- They handle the processing and exporting of this data to your chosen observability backend.
- By using SDKs, you ensure your application's observability data adheres to the OpenTelemetry standard, making it portable and vendor-agnostic.
Next, you'll dive deeper into how to effectively instrument your applications.
よくある質問
「OTel SDKによるアプリケーションの計装」レッスンは無料ですか?
はい。「OTel SDKによるアプリケーションの計装」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry)コースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry)コースには全4レッスンが含まれています。
「OTel SDKによるアプリケーションの計装」で何を学びますか?
さまざまなプログラミング言語向けのOpenTelemetry SDKについて概要を学びます。ログ、メトリクス、トレースの生成にどのように使うかを理解します。 ブラウザで直接実行するハンズオンコードでSystem Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry)を演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry)を始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSystem Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry)は初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「OTel SDKによるアプリケーションの計装」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSystem Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry)レッスンでコードを書いて実行できますか?
はい。すべてのSystem Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry)レッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- OpenTelemetry標準
- OTelコレクターとエクスポーター
- OTel SDKによるアプリケーションの計装
- シグナルとセマンティック規約