Splunk Observability Cloud 用のカスタム Go インストルメンテーション 🔗
Splunk Distribution of OpenTelemetry Go とインストルメンテーション・ライブラリを使用したアプリケーションのインストルメンテーションは、ほとんどのニーズに対応しています。アプリケーション用にカスタムインストルメンテーションを記述する必要があるのは、たとえばスパンにカスタム属性を追加する必要がある場合や、スパンやメトリクスを手動で生成する必要がある場合のみです。
カスタムトレースの作成 🔗
カスタムのスパンとトレースを作成するには、以下の手順に従ってください:
OpenTelemetry API をインポートします:
import "go.opentelemetry.io/otel"
スパンのトレーサーを作成します:
tracer := otel.Tracer("ExampleService")
スパンを作成するには、
context.Context
インスタンスのハンドルが必要です。タグを設定することもできます。例:func() { ctx, span := tracer.Start(ctx, "hello", trace.WithAttributes(attribute.String("foo", "bar"))) defer span.End() // your logic for "hello" span }()
詳細は OpenTelemetry Traces API documentation を参照してください。
カスタムメトリクスの作成 🔗
カウンター(デルタ集計の一時性を持つ合計)、累積カウンター(合計)、およびゲージのタイプのカスタムメトリクスを作成できます。
カスタムメトリクスを作成するには、以下の手順に従います:
OpenTelemetry API をインポートします:
import "go.opentelemetry.io/otel"
メーターを作ります:
meter := otel.Meter("ExampleService")
測定を行うインストルメンテーションを作成します:
counter, err := meter.Int64Counter( "business.requests.count", metric.WithUnit("{request}"), metric.WithDescription("The numer of business requests."), ) if err != nil { // handle error (e.g. log it) }
測定を行います:
counter.Add(ctx, 1);
詳細は OpenTelemetry Metrics API docs を参照してください。
OpenTelemetry Go インストルメンテーションの種類 🔗
次の表は、OpenTelemetry のインストルメンテーションタイプと Splunk Observability Cloud のメトリクスタイプの等価性を示しています。
OpenTelemetry Go |
Splunk Observability Cloud |
---|---|
|
累積カウンター |
|
ヒストグラムタイプは、Splunk Observability Cloud で3つの別々のメトリクスを生成します:
バケットには、 |
|
累積カウンター |
|
ゲージ |
|
ゲージ |
|
ゲージ |
|
累積カウンター |
|
ヒストグラムタイプは、Splunk Observability Cloud で以下の個別のメトリクスを生成します:
バケットには、 |
|
累積カウンター |
|
ゲージ |
|
ゲージ |
|
ゲージ |