GoアプリケーションをSplunk Observability Cloudにインストルメンテーションする
Splunk Distribution of OpenTelemetry Go は、Go アプリケーションやサービスをインストルメントできます。次の手順に従って、操作を開始します。
Splunk Distribution of OpenTelemetry Go は、Go アプリケーションやサービスをインストルメントできます。開始するには、ガイド付きセットアップを使用するか、手動で指示に従ってください。
ガイド付きセットアップを使用してカスタマイズされた指示を生成する
環境とアプリケーションのための基本的なインストールコマンドをすべて生成するには、Go ガイド付きセットアップを使用してください。Go ガイド付きセットアップにアクセスするには、次の手順に従ってください:
-
Splunk Observability Cloud にログインします。
-
Go ガイド付きセットアップを開きます。オプションで、ガイド付きセットアップに自分で移動することもできます:
-
ナビゲーションメニューで、Data Management を選択します。
-
Available integrations タブにアクセスするか、Deployed integrations タブで Add Integration を選択します。
-
インテグレーションフィルターメニューで、By Product を選択します。
-
APM 製品を選択します。
-
Go タイルを選択し、Go ガイドセットアップを開きます。
-
Splunk Distribution of OpenTelemetry Go を手動でインストールする
ガイド付きセットアップを使用しない場合は、以下の手順に従って Splunk Distribution of OpenTelemetry Go を手動でインストールしてください。
Goインストルメンテーションをインストールしてアクティブにする
以下の手順に従って、Goインストルメンテーションを使用してアプリケーションをインストルメンテーションしてください:
-
要件を満たしているか確認してください。「Go インストルメンテーションの互換性と要件」を参照してください。
-
ディストリビューションをインストールします:
go get github.com/signalfx/splunk-otel-go/distro -
OTEL_SERVICE_NAME環境変数を設定します:- Linux
-
export OTEL_SERVICE_NAME=<yourServiceName> - Windows PowerShell
-
$env:OTEL_SERVICE_NAME=<yourServiceName>
-
(オプション) Splunk Distribution of OpenTelemetry Collectorが別のホストで実行されている場合は、エンドポイント URL を設定します:
- Linux
-
export OTEL_EXPORTER_OTLP_ENDPOINT=<yourCollectorEndpoint>:<yourCollectorPort> - Windows PowerShell
-
$env:OTEL_EXPORTER_OTLP_ENDPOINT=<yourCollectorEndpoint>:<yourCollectorPort>
-
(オプション)バージョンと環境名を設定します:
- Linux
-
export OTEL_RESOURCE_ATTRIBUTES="service.version=<version>,deployment.environment=<environment>" - Windows PowerShell
-
$env:OTEL_RESOURCE_ATTRIBUTES="service.version=<version>,deployment.environment=<environment>"
-
distroパッケージを使用して、インストルメンテーションを追加します。次の例では、 基本的な関数をインストルメントする方法を示しています。package main import ( "context" "github.com/signalfx/splunk-otel-go/distro" ) func main() { sdk, err := distro.Run() if err != nil { panic(err) } // Flush all spans before the application exits defer func() { if err := sdk.Shutdown(context.Background()); err != nil { panic(err) } }() // ... -
追加のインストルメンテーションを有効にします。詳細については、「サポートされているライブラリとフレームワーク」を参照してください。
-
(オプション)APM と RUM のデータをリンクするには、HTTP インストルメンテーションを有効にします。「サーバートレース情報」を参照してください。
APM に何もデータが表示されない場合は、「Splunk Observability Cloud の Go インストルメンテーションのトラブルシューティング」を参照してください。
GoインストルメンテーションをKubernetesまたはAzureにデプロイする
GoインストルメンテーションをKubernetesまたはAzureにデプロイするには、KubernetesダウンワードAPIを設定して、Kubernetesリソースに環境変数を公開します。
次の例では、.spec.template.spec.containers.env セクションの下に OTel 設定を追加して、環境変数を公開するようにデプロイを更新する方法を示します:
apiVersion: apps/v1
kind: Deployment
spec:
selector:
matchLabels:
app: your-application
template:
spec:
containers:
- name: myapp
env:
- name: SPLUNK_OTEL_AGENT
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "http://$(SPLUNK_OTEL_AGENT):4317"
- name: OTEL_SERVICE_NAME
value: "<serviceName>"
- name: OTEL_RESOURCE_ATTRIBUTES
value: "deployment.environment=<environmentName>"
Splunk Observability Cloud に直接データを送信する
デフォルトでは、すべてのテレメトリは、Splunk Observability Cloud に転送される前にローカルの OpenTelemetry Collector に送信されます。
Splunk Observability Cloud に直接データを送信する必要がある場合は、以下の環境変数を設定します:
- Linux
-
export SPLUNK_ACCESS_TOKEN=<access_token> export SPLUNK_REALM=<realm> - Windows PowerShell
-
$env:SPLUNK_ACCESS_TOKEN=<access_token> $env:SPLUNK_REALM=<realm>
アクセストークンを取得するには、「Splunk Observability Cloud を使用したユーザー API アクセストークンの取得と管理」を参照してください。
Splunk レルムを見つけるには、「Set up a default SSO role」を参照してください。
インジェスト API エンドポイントの詳細については、「APM トレースの送信」および「データポイントの送信」を参照してください。
ソースホストの指定
エージェントが使用するホストを上書きするには、環境変数 OTEL_RESOURCE_ATTRIBUTES を使用して、ホストの名前を希望するソースに設定します。
- Windows PowerShell
-
$env:OTEL_RESOURCE_ATTRIBUTES=host.name=<host_name> - Linux
-
export OTEL_RESOURCE_ATTRIBUTES=host.name=<host_name>