Splunk Observability Cloud 用のカスタム Go インストルメンテーション

スパンにカスタム属性を追加する必要がある場合、またはスパンとメトリクスを手動で生成する必要がある場合は、Go アプリケーション用にカスタム インストルメンテーションを記述します。

Splunk Distribution of OpenTelemetry Go およびインストルメンテーションライブラリを使用したアプリケーションのインストルメントは、ほとんどのニーズに対応します。アプリケーション用カスタムインストルメンテーションの記述は、たとえば、スパンにカスタム属性を追加する必要がある場合、またはスパンとメトリクスを手動で生成する必要がある場合にのみ必要です。

カスタムトレースの作成

カスタムのスパンとトレースを作成するには、以下の手順に従ってください:

  1. OpenTelemetry API をインポートします:

    import "go.opentelemetry.io/otel"
  2. スパンのトレーサーを作成します:

    tracer := otel.Tracer("ExampleService")
  3. スパンを作成するには、 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 のドキュメント」を参照してください。

カスタムメトリクスの作成

カウンター(デルタ集計の一時性を持つ合計)、累積カウンター(合計)、およびゲージのタイプのカスタムメトリクスを作成できます。

カスタムメトリクスを作成するには、以下の手順に従います:

  1. OpenTelemetry API をインポートします:

    import "go.opentelemetry.io/otel"
  2. メーターを作ります:

    meter := otel.Meter("ExampleService")
  3. 測定を行うインストルメンテーションを作成します:

       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)
       }
  4. 測定を行います:

    counter.Add(ctx, 1);

詳細は、「OpenTelemetry Metrics API のドキュメント」を参照してください。

OpenTelemetry Go インストルメンテーションの種類

次の表は、OpenTelemetry のインストルメンテーションタイプと Splunk Observability Cloud のメトリクスタイプの等価性を示しています。

OpenTelemetry Go

Splunk Observability Cloud

Int64Counter

累積カウンター

Int64Histogram

ヒストグラムタイプは、Splunk Observability Cloud で3つの別々のメトリクスを生成します:

  • _count (累積カウンター)で、項目数を表します。

  • _sum (累積カウンター)で、すべての値の合計を表します。

  • _bucket (累積カウンター)で、バケットにデータポイントを割り当てます。

  • _min (ゲージ)の最小値を示します。

  • _max (ゲージ)の最大値を示します。

バケットには、le というディメンションがあり、バケツにカウントされているアイテムの中で最も高い値が設定されます。

Int64ObservableCounter

累積カウンター

Int64ObservableGauge

ゲージ

Int64ObservableUpDownCounter

ゲージ

Int64UpDownCounter

ゲージ

Float64Counter

累積カウンター

Float64Histogram

ヒストグラムタイプは、Splunk Observability Cloud で以下の個別のメトリクスを生成します:

  • _count (累積カウンター)で、データポイントの総カウント数を表します。

  • _sum (累積カウンター)で、ヒストグラムのすべての値の合計を表します。

  • _bucket (累積カウンター)で、バケットにデータポイントを割り当てます。

  • _min (ゲージ)の最小値を示します。

  • _max (ゲージ)の最大値を示します。

バケットには、le というディメンションがあり、バケツにカウントされているアイテムの中で最も高い値が設定されます。

Float64ObservableCounter

累積カウンター

Float64ObservableGauge

ゲージ

Float64ObservableUpDownCounter

ゲージ

Float64UpDownCounter

ゲージ