私のアプリケーション開発者としてのキャリアはC#の登場間もない頃に開花しました。そして今日、ひどいコードを書いていた新人は立派なアドボケートになり、C#構文と.NETフレームワークを偏愛しています。そのため、.NETコアアプリケーションのトレースを自動インストルメンテーションするSplunkの新機能の話題に大いに興奮しています。
Splunkのエンジニアリングチームと製品チームは常に、システムへのデータ取り込み機能の向上に注力しています。そしてついに、Splunk APMをはじめとするSplunkのオブザーバビリティ(可観測性)ツールを使って、コードレベルでオブザーバビリティを自動インストルメンテーションすることにより、.NETアプリケーション開発者がコード運用を簡単にサポートできるようになりました。
.NET統合とMicrosoftスタック向けの既存の充実したツールライブラリによって、メトリクスの収集は簡単で持続的なものになりつつあります。
マイクロサービスアーキテクチャを取り入れた最新式のアプリケーションを開発するときは、これらのアプリケーションの分散特性と高いベロシティを考慮して管理プロセスを追跡する必要があります。オブザーバビリティの概念、およびトレースとスパンの基礎となるテクノロジーに忠実であることは、最新のアプリケーションアーキテクチャに対応するために欠かせません。サービスからデータを収集することも大切です。そこで役立つのがOpenTracing、OpenCensus、OpenTelemetryなどのオープンソースプロジェクトです。
.NETトレーシングプロジェクトもオープンソースで行われています。このプロジェクトでは、OpenTracingやOpenTelemetryとの互換性確保にも取り組んでいます。対象となるのは、LinuxまたはWindowsで動作する.NET Core 2.0以上のアプリケーションです。トレースデータ収集機能の追加に加えて、特定の共通ライブラリ(ASP.NET、MongoDB、GraphQLなど)の自動インストルメンテーションもサポートする予定です。.NETトレーシングプロジェクトは、アプリケーションのデータ収集の標準を築き、開発者によるインストルメンテーションの負担を軽減することになるでしょう。
開発プロジェクトでの利用は簡単
セットアップ:
- MSIまたはパッケージマネージャーを使用してCLRプロファイラーをインストールします。
- 環境変数を設定します。
- SignalFxスマートエージェントまたはOpenTelemetry Collector用のエンドポイントを設定します。
データの送信:
- インストルメンテーションを自動で実行するには、OpenTracingの依存関係をプロジェクトに追加し、GolbalTracerインスタンスを使用して特定のコンテキストのスパンを収集します。
最新の.NETアプリケーションのオブザーバビリティは、長期的な成功とサポートに重要な要素です。オープンスタンダードにSignalFxのオブザーバビリティプラットフォームが加わることで、すべてのサービスとそのスタック全体のトレースとスパンからデータを取り込むための方法を標準化できるというさらなるメリットが生まれます。
.NETスタックのサポート
SignalFxでは、.NET統合以外に、以下のMicrosoftスタックの監視がサポートされます。
- .NETアプリケーションのメトリクス
- Microsoft AzureとさまざまなAzureサービス
- Microsoft Internet Information Service (IIS)
- Microsoft SQL Server
すべてを組み合わせることで、アプリケーションチームはアプリケーションやクラウドインフラの運用を大規模に可視化できます。
Splunk APMの.NET自動インストルメンテーション機能を利用すれば、開発チームは、アプリケーションをランタイムレベルで可視化できます。このデータと、インフラやアプリケーションから収集したその他のメトリクスをSignalFxに送信すれば、アプリケーションのサポートを強化し、問題をすばやく特定して、解決に役立つコンテキストを得ることができます。
このブログはこちらの英語ブログの翻訳です。SignalFx Microservices APMは、Splunk APMに製品名称が変わりました。