OpenTelemetry のヘルプ、サポート、フィードバック
この記事では、Azure Monitor Application Insights for .NET、Java、Node.js、Python アプリ上の OpenTelemetry に関するヘルプ、サポート、フィードバックのオプションについて説明します。
よく寄せられる質問
OpenTelemetry とは何ですか?
監視のための新しいオープンソース標準です。 詳細については、「OpenTelemetry」を参照してください。
Microsoft Azure Monitor が OpenTelemetry に投資しているのはなぜですか?
Microsoft は次の理由から OpenTelemetry への投資を行っています。
- ベンダーに依存せず、複数の言語にわたって一貫した API/SDK を提供する。
- 時間の経過とともに、Microsoft は、OpenTelemetry によって、Azure Monitor のお客様がサポートされている言語以外の言語で記述されたアプリケーションを監視できるようになると考えるようになりました。
- インストルメンテーション ライブラリのリッチなセットを通じて、利用者が収集できるデータの種類を拡大する。
- OpenTelemetry ソフトウェア開発キット (SDK) は、先行製品である Application Insights SDK よりも大部分で良いパフォーマンスを示す傾向がある。
- OpenTelemetry はオープンソースを推進するという Microsoft の戦略に沿うものである。
OpenTelemetry はどのような状況ですか?
OpenTelemetry の状態を参照してください。
Azure Monitor OpenTelemetry Distro とは
これは、Azure で最上級のエクスペリエンスが得られるように、すべての OpenTelemetry コンポーネントをバンドルするシン ラッパーと考えることができます。 このラッパーは、OpenTelemetry のディストリビューションとも呼ばれます。
Azure Monitor OpenTelemetry Distro を使用する必要がある理由
コミュニティのネイティブ OpenTelemetry よりも Azure Monitor OpenTelemetry Distro を使用することには、いくつかの利点があります。
- 有効化作業を減らす
- Microsoft によってサポートされている
- 次のような Azure 固有の機能が導入されます。
- 従来の Application Insights SDK と互換性のあるサンプリング
- Microsoft Entra 認証
- オフライン ストレージと自動再試行
- Statsbeat
- Application Insights 標準メトリック
- さまざまな Azure 環境でクラウド ロール名とクラウド ロール インスタンスを自動入力するためのリソース メタデータを検出する
- ライブ メトリック
OpenTelemetry の精神に基づいて、ディストリビューションはオープンで拡張できるように設計されています。 たとえば、次のようなものを追加できます。
- OpenTelemetry Protocol (OTLP) エクスポーターと 2 番目の宛先に同時に送信する
- ディストリビューションに含まれていない他のインストルメンテーション ライブラリ
このディストリビューションは OpenTelemetry ディストリビューションを提供しているため、このディストリビューションは OpenTelemetry でサポートされているものすべてをサポートしています。 たとえば、OpenTelemetry でサポートされている場合は、テレメトリ プロセッサ、エクスポーター、インストルメンテーション ライブラリをさらに追加できます。
Note
このディストリビューションは、サンプラーを Application Insights のカスタムの固定レート サンプラーに設定します。 これを別のサンプラーに変更できますが、変更した場合、このディストリビューションに含まれる機能の一部が無効になる可能性があります。 サポートされているサンプラーの詳細については、「Azure Monitor OpenTelemetry を構成する」の「サンプリングの有効化」セクションを参照してください。
サポートされているスタンドアロンの OpenTelemetry エクスポーターがない言語の場合、Azure Monitor OpenTelemetry Distro が、Azure Monitor で OpenTelemetry を使用するための現在サポートされている唯一の方法です。 スタンドアロンの OpenTelemetry エクスポーターがサポートされている言語では、テレメトリ シナリオに応じて、Azure Monitor OpenTelemetry Distro または適切なスタンドアロンの OpenTelemetry エクスポーターのいずれかを使用できます。 詳細については、「どのようなときに Azure Monitor OpenTelemetry エクスポーターを使う必要がありますか?」を参照してください。
Azure Monitor OpenTelemetry Distro をテストするにはどうすればよいですか?
.NET、Java、JavaScript (Node.js)、Python に関する Microsoft 提供のドキュメントを確認してください。
OpenTelemetry または Application Insights SDK を使用する必要がありますか?
Application Insights SDK の正式なサポートでのみ利用できる機能が必要な場合を除き、OpenTelemetry Distro を使うことをお勧めします。
OpenTelemetry を採用すると、後で移行する必要がなくなります。
どのようなときに Azure Monitor OpenTelemetry エクスポーターを使う必要がありますか?
ASP.NET Core、Java、Node.js、Python では、Azure Monitor OpenTelemetry Distro の使用をお勧めします。 1 行のコードで始められます。
他のすべての .NET シナリオ (従来の ASP.NET、コンソール アプリ、Windows フォーム (WinForms) など) では、.NET Azure Monitor OpenTelemetry エクスポーター (Azure.Monitor.OpenTelemetry.Exporter
) の使用をお勧めします。
高度な構成を必要とするより複雑な Python テレメトリ シナリオでは、Python Azure Monitor OpenTelemetry エクスポーターの使用をお勧めします。
Azure Monitor OpenTelemetry Distro 内の機能は、現在どのようなリリース状態ですか?
次のグラフは、各言語に対する OpenTelemetry 機能のサポートを示しています。
機能 | .NET | Node.js | Python | Java |
---|---|---|---|---|
分散トレース | ✅ | ✅ | ✅ | ✅ |
カスタム メトリック | ✅ | ✅ | ✅ | ✅ |
標準メトリック | ✅ | ✅ | ✅ | ✅ |
固定レート サンプリング | ✅ | ✅ | ✅ | ✅ |
オフライン ストレージと自動再試行 | ✅ | ✅ | ✅ | ✅ |
例外のレポート | ✅ | ✅ | ✅ | ✅ |
ログの収集 | ✅ | ⚠️ | ✅ | ✅ |
[カスタム イベント] | ⚠️ | ⚠️ | ⚠️ | ✅ |
Microsoft Entra 認証 | ✅ | ✅ | ✅ | ✅ |
ライブ メトリック | ✅ | ✅ | ✅ | ✅ |
Live Metrics のフィルター処理 | ✅ | ❌ | ❌ | ❌ |
VM/VMSS と App Service のリソース コンテキストを検出する | ✅ | ❌ | ✅ | ✅ |
Azure Kubernetes Service (AKS) と関数のリソース コンテキストを検出する | ❌ | ❌ | ❌ | ✅ |
Track Availability API を使って生成された可用性テスト イベント | ❌ | ❌ | ❌ | ✅ |
匿名ユーザー ID と合成ソースによる要求、依存関係、ログ、例外のフィルター処理 | ❌ | ❌ | ❌ | ✅ |
操作名による依存関係、ログ、例外のフィルター処理 | ❌ | ❌ | ❌ | ✅ |
アダプティブ サンプリング | ❌ | ❌ | ❌ | ✅ |
Profiler | ❌ | ❌ | ❌ | ⚠️ |
スナップショット デバッガー | ❌ | ❌ | ❌ | ❌ |
キー
- ✅ この機能は、正式なサポートを受けるすべてのお客様が利用できます。
- ⚠️ この機能は、パブリック プレビューとして利用できます。 「Microsoft Azure プレビューの追加利用規約」を参照してください。
- ❌ この機能は利用できないか、適用されません。
OpenTelemetry は Web ブラウザーで使用できますか?
はい。ただし、お勧めしません。また、Azure ではサポートされていません。 OpenTelemetry JavaScript は、Node.js 用に非常に最適化されています。 代わりに、Application Insights JavaScript SDK を使用することをお勧めします。
Web ブラウザーで OpenTelemetry SDK を使用できるようになるのはいつですか?
OpenTelemetry Web SDK が利用可能になるタイムラインはまだ決定されていません。 Application Insights JavaScript SDK の有効な代替手段となるブラウザー SDK が登場するのは、おそらく数年先です。
現在、Web ブラウザーで OpenTelemetry をテストできますか?
OpenTelemetry Web Sandbox は、ブラウザーで OpenTelemetry を動作させるために設計されたフォークです。 Application Insights にテレメトリを送信することはまだできません。 この SDK では、一般的なクライアント イベントは定義されていません。
AppDynamics、DataDog、NewRelic などの競合エージェントと共に Application Insights を実行することはサポートされていますか?
このような実行をテストまたはサポートする予定はありませんが、Distro では、Azure Monitor と共に同時に OTLP エンドポイントにエクスポートできます。
運用環境でプレビュー機能を使用できますか?
それは推奨されません。 「Microsoft Azure プレビューの追加利用規約」を参照してください。
手動インストルメンテーションと自動インストルメンテーションの違いは何ですか?
「OpenTelemetry の概要」を参照してください。
OpenTelemetry Collector を使用できますか?
Microsoft がアプリケーション監視のためのエージェントベースのアプローチをまだ正式にサポートしていないにもかかわらず、一部のお客様は、エージェントの代替として OpenTelemetry-Collector を使い始めています。 その間、オープンソース コミュニティは OpenTelemetry-Collector Azure Monitor エクスポーターを提供してきました。一部のお客様は、これを使ってデータを Azure Monitor Application Insights に送信しています。 これは、Microsoft ではサポートされません。
OpenCensus と OpenTelemetry の違いは何ですか?
OpenCensus は OpenTelemetry の前段階です。 Microsoft は、OpenTracing と OpenCensus を統合して、世界の単一の監視標準である OpenTelemetry の作成を支援しました。 Azure Monitor 用に現在の運用環境で推奨されている Python SDK は、OpenCensus に基づいています。 Microsoft は、Azure Monitor を OpenTelemetry に基づくものにすることに取り組んでいます。
Grafana で Status: 500. Can't visualize trace events using the trace visualizer
が表示される理由
OpenTelemetry トレースでなく、生のテキスト ログを視覚化しようとしている可能性があります。
Application Insights の "トレース" テーブルには、診断目的で生のテキスト ログが格納されます。 ユーザー要求、その他のイベント、および例外レポートに関連付けられているトレースを識別して関連付けるのに役立ちます。 ただし、"トレース" テーブルは、Grafana などの視覚化ツールのエンドツーエンドのトランザクション ビュー (ウォーターフォール チャート) に直接提供されるわけではありません。
クラウドネイティブの実践の導入が拡大するにつれて、テレメトリの収集と用語は進化しています。 OpenTelemetry は、テレメトリ データの収集とインストルメント化の標準となりました。 このコンテキストでは、"トレース" という用語は新しい意味を持ちます。 OpenTelemetry の "トレース" は、生のログではなく、個々の作業単位を表すスパンを含む、より豊富で構造化された形式のテレメトリを意味します。 これらの範囲の拡大は、詳細なトランザクション ビューを構築し、クラウドネイティブ アプリケーションの監視と診断を向上するうえで重要です。
トラブルシューティング
手順 1: 診断ログを有効にする
Azure Monitor エクスポーターでは、その内部ログのために EventSource を使用します。 エクスポーター ログは、OpenTelemetry-AzureMonitor-Exporter
という名前のソースにオプトインすることで、EventListener で使用できます。 トラブルシューティングの手順については、GitHub の OpenTelemetry のトラブルシューティングに関するページを参照してください。
手順 2: アプリケーション ホストとインジェスト サービスの間の接続をテストする
Application Insights ソフトウェア開発キット (SDK) とエージェントからテレメトリが送信され、インジェスト エンドポイントで REST 呼び出しとして取り込まれます。 Web サーバーまたはアプリケーション ホスト コンピューターからインジェスト サービス エンドポイントへの接続をテストするには、cURL コマンドまたは PowerShell の生の REST 要求を使用します。 詳細については、「Azure Monitor Application Insights でアプリケーション テレメトリがない場合のトラブルシューティング」を参照してください。
既知の問題
Azure Monitor OpenTelemetry Exporter の既知の問題を次に示します。
依存関係テレメトリに操作名がない。 操作名がないと、エラーが発生し、パフォーマンス タブのエクスペリエンスに悪影響を及ぼします。
要求と依存関係のテレメトリにデバイス モデルがない。 デバイス モデルがないと、デバイスのコーホート分析に悪影響を及ぼします。
サポート
選択した言語のタブを選択して、サポート オプションを検出します。
- Azure サポートの問題については、Azure サポート チケットを開いてください。
- OpenTelemetry の問題については、OpenTelemetry .NET コミュニティに直接問い合わせてください。
- Azure Monitor Exporter に関連する未解決の問題の一覧については、GitHub のイシュー ページを参照してください。
OpenTelemetry のフィードバック
フィードバックを提供するには:
- OpenTelemetry コミュニティのカスタマー フィードバック アンケートに記入してください。
- Microsoft の OpenTelemetry 早期導入者コミュニティに参加して、お客様自身のことをお知らせください。
- Microsoft Tech Community で他の Azure Monitor ユーザーと交流してください。
- Azure フィードバック フォーラムで機能に関する要求を行ってください。