0Pricing
C# Academy · レッスン

バックエンドへのエクスポート

テレメトリをOTLPコレクターやツールに送信します。

「バックエンドへのエクスポート」はCoddyKit上の無料C# Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC# Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C# Academyコースには全4レッスンが含まれています。

テレメトリを外部へ送る

トレースとメトリクスの生成は作業の半分にすぎません。データを保存、検索、可視化するバックエンドへエクスポートする必要があります。OpenTelemetry では、そのためにエクスポーターを使用します。

エクスポーター

エクスポーターは、テレメトリを送信先へ送ります。エクスポーターによって対象システムが異なります。コンソール(開発用)、OTLP(標準プロトコル)、ベンダー固有のエクスポーターなどがあります。

コンソールエクスポーター

コンソールエクスポーターはテレメトリをターミナルに出力するため、開発中の計装の検証に最適です。

builder.Services.AddOpenTelemetry()
    .WithTracing(t => t.AddConsoleExporter())
    .WithMetrics(m => m.AddConsoleExporter());

OTLP とは

OTLP(OpenTelemetry Protocol)は、テレメトリを送信するためのベンダーニュートラルな通信形式です。OTLP 経由でエクスポートすれば、アプリケーションコードを変更せずに、OTLP 対応の任意のバックエンドへ送信できます。

dotnet add package OpenTelemetry.Exporter.OpenTelemetryProtocol

OTLP エクスポーターの構成

AddOtlpExporterを追加し、コレクターまたはバックエンドのエンドポイントを指定します。

builder.Services.AddOpenTelemetry()
    .WithTracing(t => t.AddOtlpExporter(o =>
    {
        o.Endpoint = new Uri("http://localhost:4317");
    }))
    .WithMetrics(m => m.AddOtlpExporter());

OpenTelemetry Collector

Collectorは、テレメトリを受信し、バッチ処理、フィルタリング、情報付加などの処理を行ってから、1つ以上のバックエンドへ転送する独立したプロセスです。アプリケーションを特定のベンダーから切り離せます。

コレクターを使う理由

ベンダーへ直接送信すると、アプリケーションがそのベンダーに依存します。コレクターを使えば、複数のバックエンドへの切り替えや分岐、サンプリングとマスキングの一元適用が可能になり、サービスの負荷も軽減できます。

一般的なバックエンド

トレースはJaegerやTempoへ、メトリクスはPrometheusへ、ダッシュボードはGrafanaへ送ることが多くなります。ログはLokiや ELK スタックへ送信できます。いずれもコレクター経由で OTLP を受信できます。

すべてをつなぐ

一般的な構成では、1つのブロック内でリソース、ソース、メーター、OTLP エクスポーターを設定し、トレースとメトリクスをコレクターへ送信します。

builder.Services.AddOpenTelemetry()
    .ConfigureResource(r => r.AddService("checkout-api"))
    .WithTracing(t => t
        .AddAspNetCoreInstrumentation()
        .AddSource("Checkout.Orders")
        .AddOtlpExporter())
    .WithMetrics(m => m
        .AddAspNetCoreInstrumentation()
        .AddMeter("Checkout.Orders")
        .AddOtlpExporter());

ログのエクスポート

OTel はログもエクスポートします。ロギングパイプラインに組み込むことで、ログレコードに同じトレースコンテキストを持たせ、OTLP 経由でバックエンドへ送信できます。

builder.Logging.AddOpenTelemetry(o =>
{
    o.AddOtlpExporter();
});

バッチ処理と信頼性

エクスポーターはテレメトリをバッチ処理してオーバーヘッドを減らし、失敗時には再試行します。データ量に合わせてバッチサイズとタイムアウトを調整し、アプリケーションのスレッドがエクスポートでブロックされないよう、スパイクの吸収にはコレクターを利用することをおすすめします。

クイックチェック

バックエンドへのエクスポートを確認します。

まとめ

エクスポーターはテレメトリをバックエンドへ送信します。コンソールエクスポーターは開発に役立ち、OTLPはAddOtlpExporterとともに使用するベンダーニュートラルなプロトコルです。OTLP をOpenTelemetry Collectorへ送信すると、アプリケーションを切り離し、バッチ処理、サンプリング、ルーティングを一元化できます。また、Jaeger、Prometheus、Grafana などのバックエンドへ分岐して送信できます。ログもトレースコンテキストを保持したまま同じ方法でエクスポートできます。

よくある質問

「バックエンドへのエクスポート」レッスンは無料ですか?

はい。「バックエンドへのエクスポート」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C# Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C# Academyコースには全4レッスンが含まれています。

「バックエンドへのエクスポート」で何を学びますか?

テレメトリをOTLPコレクターやツールに送信します。 ブラウザで直接実行するハンズオンコードでC# Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

C# Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのC# Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「バックエンドへのエクスポート」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このC# Academyレッスンでコードを書いて実行できますか?

はい。すべてのC# Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 可観測性の3本柱
  2. 分散トレーシング
  3. メトリクスの収集
  4. バックエンドへのエクスポート
← C# Academyに戻る