Docs » Splunk Observability Cloud でサポートされているインテグレーション » バックエンドアプリケーションをインストルメンテーションして、スパンを Splunk APM に送信する » Splunk Observability Cloud けに Go アプリケーションをインストルメンテーションする » Splunk Observability Cloud 用のカスタム Go インストルメンテーション

Splunk Observability Cloud 用のカスタム 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 documentation を参照してください。

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

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

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

  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 docs を参照してください。

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

ゲージ

This page was last updated on 2023年07月24日.