ASP.NET Core 10:MCP サーバー(OpenTelemetry・Jaeger・Redis)実装例
概要
このリポジトリは「aspnetcore10-mcp-otel-jaeger-redis_contagem」と名付けられたサンプル実装で、.NET 10(ASP.NET Core)を使った MCP サーバーの簡易版です。アプリケーションは Redis インスタンスを使ってアクセス回数(カウント)を保持し、OpenTelemetry を導入してトレース/メトリクスを収集、Jaeger を用いてトレースを可視化するための Docker Compose スクリプトが同梱されています。開発者がローカル環境で観測可能性や分散トレーシングを試験・学習する用途に向いています。リポジトリは小規模で、実例としての導入が主目的です。
リポジトリの統計情報
- スター数: 2
- フォーク数: 0
- ウォッチャー数: 2
- コミット数: 2
- ファイル数: 4
- メインの言語: C#
主な特徴
- ASP.NET Core(.NET 10)で実装された軽量な MCP サーバーのサンプル
- Redis を用いたアクセスカウント機能の実装例
- OpenTelemetry によるトレース/メトリクス収集と Jaeger での可視化を Docker Compose で簡単に起動可能
- ローカルで観測性(observability)のハンズオンができる構成
技術的なポイント
このプロジェクトは「アプリケーションの動作」と「観測データの収集・可視化」を結びつける典型的なサンプル構成を提供します。ポイントは大きく分けて 1) Redis を使った状態管理(アクセスカウント)と 2) OpenTelemetry を中心とした観測性の導入です。
Redis 側はアクセス回数を保存・増分する単純な用途で使われるため、Atomic なインクリメント操作(INCR)や TTL を組み合わせることで実装できます。ASP.NET 側では Redis クライアント(一般的には StackExchange.Redis 等)が使われ、DI(依存性注入)で接続を共有する形が想定されます。接続プールや再接続の設定、タイムアウトなどは本番を意識する場合に重要です。
観測性については、OpenTelemetry が .NET にネイティブで統合可能であり、HTTP リクエストごとのトレースやカスタムスパン(Redis との往復、カウント処理)を生成して Jaeger に送る構成が考えられます。典型的には:
- System.Diagnostics.Activity を介したスパン生成(自動インストルメンテーションと手動スパンの組合せ)
- OpenTelemetry SDK の TracerProvider、MeterProvider を設定し、Jaeger エクスポーターやコンソールエクスポーターを有効にする
- リクエストレイテンシやエラー頻度などのメトリクスを収集し、Prometheus 等にエクスポートする拡張も想定可能
Docker Compose によりアプリケーション・Redis・Jaeger(および必要ならば Jaeger UI)を同時に立ち上げられるため、ローカルで素早く観測パイプラインを確認できます。これにより分散トレーシングのコンテキスト伝搬(ヘッダー伝搬)が正しく行われているかや、Redis 呼び出しの遅延がトレース上で可視化されるかを確認できます。
拡張ポイントとしては、サンプルのままではログの構造化(Serilog 等)やメトリクスの永続化、サンプルレートの調整、セキュリティ(Redis の認証・TLS)を追加することで実運用に近づけられます。また、Redis の負荷対策(非同期処理、バックプレッシャー)や健全性チェック(Health Checks)の導入も推奨されます。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- LICENSE: file
- README.md: file
- src: dir
(src ディレクトリには ASP.NET Core アプリケーション本体と、Redis / OpenTelemetry の設定コードが含まれている想定です)
まとめ
小規模ながら .NET アプリの観測可能性と Redis 連携を学ぶのに良いサンプルです。(約50字)
リポジトリ情報:
- 名前: aspnetcore10-mcp-otel-jaeger-redis_contagem
- 説明: Implementação em ASP.NET Core + .NET 10 de MCP Server para contagem de acessos a partir de uma instância do Redis. Inclui o uso de um script do Docker Compose para monitoramento/observabilidade com OpenTelemetry + Jaeger.
- スター数: 2
- 言語: C#
- URL: https://github.com/renatogroffe/aspnetcore10-mcp-otel-jaeger-redis_contagem
- オーナー: renatogroffe
- アバター: https://avatars.githubusercontent.com/u/8309296?v=4
READMEの抜粋:
aspnetcore10-mcp-otel-jaeger-redis_contagem
Implementação em ASP.NET Core + .NET 10 de MCP Server para contagem de acessos a partir de uma instância do Redis. Inclui o uso de um script do Docker Compose para monitoramento/observabilidade com OpenTelemetry + Jaeger. …