このクライアント ライブラリは、OpenTelemetry データを Azure Monitor にエクスポートするためのサポートを提供します。 このパッケージは、OpenTelemetry 仕様に従って、アプリケーションが OpenTelemetry SDK で既にインストルメント化されていることを前提としています。
ソースコード | パッケージ (Maven) | API リファレンス ドキュメント | 製品ドキュメント | サンプル
作業の開始
前提条件
詳細については、 Application Insights の概要に関するページを参照してください。
パッケージをインクルードする
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-monitor-opentelemetry-exporter</artifactId>
<version>1.0.0-beta.8</version>
</dependency>
認証
ポータルからインストルメンテーション キーを取得する
テレメトリ データを Azure Monitor にエクスポートするには、 Application Insights リソースへのインストルメンテーション キーが必要です。 インストルメンテーション キーを取得するには、 Azure Portal に移動し、リソースを検索します。 リソースの概要ページで、右上隅にインストルメンテーション キーが表示されます。
Azure Monitor 用エクスポーター ビルダーの作成
AzureMonitorExporterBuilder azureMonitorExporterBuilder = new AzureMonitorExporterBuilder()
.connectionString("{connection-string}");
スパン データのエクスポート
次の例では、 を使用してトレース データを Azure Monitor にエクスポートする方法を示します。 AzureMonitorTraceExporter
Azure Monitor エクスポーターを使用するように OpenTelemetry SDK を設定する
// Create Azure Monitor exporter and initialize OpenTelemetry SDK
// This should be done just once when application starts up
AutoConfiguredOpenTelemetrySdkBuilder sdkBuilder = AutoConfiguredOpenTelemetrySdk.builder();
new AzureMonitorExporterBuilder()
.connectionString("{connection-string}")
.build(sdkBuilder);
OpenTelemetry openTelemetry = sdkBuilder.build().getOpenTelemetrySdk();
Tracer tracer = openTelemetry.getTracer("Sample");
スパンを作成する
// Make service calls by adding new parent spans
ConfigurationClient client = new ConfigurationClientBuilder()
.connectionString("{app-config-connection-string}")
.buildClient();
Span span = tracer.spanBuilder("user-parent-span").startSpan();
final Scope scope = span.makeCurrent();
try {
// Thread bound (sync) calls will automatically pick up the parent span and you don't need to pass it explicitly.
client.setConfigurationSetting("hello", "text", "World");
} finally {
span.end();
scope.close();
}
主要な概念
Azure Monitor エクスポーターの主な概念には、次のようなものがあります。
OpenTelemetry: OpenTelemetry は、ソフトウェアのパフォーマンスと動作を理解するために分析のためにテレメトリ データ (メトリック、ログ、トレース) を収集およびエクスポートするために使用される一連のライブラリです。
インストルメンテーション: OpenTelemetry API を任意のアプリケーションから直接呼び出す機能は、インストルメンテーションによって容易になります。 別のライブラリに対して OpenTelemetry の可観測性を有効にするライブラリをインストルメンテーション ライブラリと呼びます。
トレース: トレースは分散トレースを参照します。 スパン間のエッジが親子関係として定義されているスパンの有向非循環グラフ (DAG) と考えることができます。
トレーサー プロバイダー: 指定されたインストルメンテーション ライブラリで使用する を提供
Tracer
します。スパン プロセッサ: スパン プロセッサを使用すると、SDK の開始メソッドと終了メソッドの
Span
呼び出しにフックを使用できます。 詳細については、リンクをクリックしてください。サンプリング: サンプリングは、収集してバックエンドに送信されるトレースのサンプルの数を減らすことで、OpenTelemetry によって導入されるノイズとオーバーヘッドを制御するメカニズムです。
OpenTelemetry プロジェクトの詳細については、「 OpenTelemetry の仕様」を参照してください。
例
その他の例については、サンプルを参照 してください。
トラブルシューティング
ログ記録の有効化
Azure SDK for Java には、アプリケーション エラーのトラブルシューティングと解決の迅速化に役立つ一貫したログ記録のストーリーが用意されています。 生成されたログでは、最終状態に達する前のアプリケーションのフローがキャプチャされ、根本原因を特定するのに役立ちます。 ログ記録の有効化に関するガイダンスについては、ログ Wiki を参照してください。
次の手順
Open Telemetry の詳細を確認する
共同作成
このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。
pull request を送信すると、CLA を提供して PR (ラベル、コメントなど) を適宜装飾する必要があるかどうかを CLA ボットが自動的に決定します。 ボットによって提供される手順にそのまま従ってください。 この操作は、Microsoft の CLA を使用するすべてのリポジトリについて、1 回だけ行う必要があります。
このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。