0Pricing
C# Academy · レッスン

可観測性の3本柱

トレース、メトリクス、ログについて理解します。

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

可観測性とは

可観測性とは、システムが出力するデータから内部状態を理解できる能力です。稼働中のサービスについて、正常か、なぜ遅いのか、何が失敗したのかを把握できます。可観測性はトレース、メトリクス、ログの3本柱で成り立ちます。

OpenTelemetry とは

OpenTelemetry(OTel)は、テレメトリを生成およびエクスポートするための、ベンダーに依存しない標準とライブラリ群です。一度インストルメンテーションを行えば、Jaeger、Prometheus、Grafana など多くのバックエンドにデータを送信できます。

dotnet add package OpenTelemetry.Extensions.Hosting

第1の柱: ログ

ログは、個別のイベント(「ユーザー42がログインした」「支払いに失敗した」)を時刻付きで記録したものです。詳細で人間が読みやすいコンテキストを提供しますが、単独では情報量が多く、集約も困難になりがちです。

logger.LogInformation("Order {OrderId} placed by {UserId}", orderId, userId);

第2の柱: メトリクス

メトリクスは、時間の経過に伴って集計された数値データです(リクエスト数、エラー率、レイテンシーのパーセンタイル、CPU 使用率など)。保存コストが低く、ダッシュボードやアラートに適しています。

第3の柱: トレース

トレースは、サービス間を流れる1つのリクエストを追跡し、時間が計測されたスパンに分割します。どこで時間がかかっているのか、どの依存関係が遅延の原因なのかを明らかにします。

3本の柱が互いを補完する仕組み

メトリクスは問題が起きていることを示します(エラー率が急上昇した)。トレースは問題がどこで起きているかを示します(決済サービス)。ログはなぜ起きたのかを示します(特定の注文で null 参照が発生した)。これらを組み合わせることで、デバッグに必要な全体像が得られます。

相関付けが鍵

真の力を発揮するのは、データを相関付けたときです。ログとスパンに共通のトレース IDを付与すると、メトリクスのアラートから、失敗した1つのリクエストの正確なトレースとログへ移動できます。

OpenTelemetry のシグナル

OTel では、これらの柱をシグナルと呼びます。.NET では、トレースに Activity/ActivitySource、メトリクスに Meter、ログに ILogger という使い慣れたプリミティブを対応させます。

ホストへの OpenTelemetry の追加

AddOpenTelemetry() を使ってシグナルを有効にし、トレースとメトリクスを構成します。各シグナルについては、次のレッスンで詳しく説明します。

builder.Services.AddOpenTelemetry()
    .WithTracing(tracing => { })
    .WithMetrics(metrics => { });

リソース属性

リソースは、テレメトリを生成するエンティティ(サービス名、バージョン、環境)を表します。一貫して設定すると、バックエンドでデータを正しくグループ化・フィルタリングできます。

builder.Services.AddOpenTelemetry()
    .ConfigureResource(r => r.AddService(
        serviceName: "checkout-api",
        serviceVersion: "1.4.0"));

自動計装と手動計装

OTel では ASP.NET Core、HttpClient などの自動計装に加え、ビジネス固有の洞察を得るために独自のスパンやメトリクスを追加する手動計装も利用できます。

クイックチェック

3つの柱を確認します。

まとめ

オブザーバビリティは3つの柱で成り立っています。ログ(イベント、なぜ起きたか)、メトリクス(集約された数値、何が起きたか)、トレース(リクエスト単位のスパン、どこで起きたか)です。OpenTelemetryは、3つすべてをシグナルとして出力するベンダーニュートラルな標準であり、.NET ではそれぞれActivity、Meter、ILoggerに対応します。トレース ID と適切に設定したリソースによる関連付けで、これらを結び付けられます。

よくある質問

「可観測性の3本柱」レッスンは無料ですか?

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

「可観測性の3本柱」で何を学びますか?

トレース、メトリクス、ログについて理解します。 ブラウザで直接実行するハンズオンコードでC# Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「可観測性の3本柱」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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