クイックスタート
OpenTelemetryコレクターは、トレース、メトリクス、ログなどのテレメトリーを受け取り、それらを処理し、コンポーネントのパイプラインを通じて1つ以上のオブザーバビリティバックエンドへ転送します。
このクイックスタートのデモは、基本的なローカルセットアップを構築します。 目的はコレクターがどのように動作するかを示すことであり、本番環境向けのセットアップを構築するためのものではありません。
本ガイドでは、次のことを行います。
- OpenTelemetryコレクターのローカルインスタンスを起動する
- トレースデータを生成してコレクターに送信する
- コレクターがデータを受信して処理することを確認する
最後には、シンプルなパイプラインがマシン上で動作するようになり、オブザーバビリティスタックの中でコレクターがどのような位置にあるのかをはっきり理解できるようになります。 始める前にもう少し背景情報が必要であれば、コレクターの概要を参照してください。
事前要件
始める前に、以下のツールが環境にインストールされていることを確認してください。
- Docker または互換性のあるコンテナランタイム — コレクターの実行に使用します
- Go の最新2つのマイナーバージョンのいずれか — テレメトリージェネレーターのインストールに使用します
GOBIN環境変数 が設定されていること — インストールした Go のバイナリが PATH から参照できるようになります1
GOBIN が設定されていない場合は、次のコマンドを実行します。
export GOBIN=${GOBIN:-$(go env GOPATH)/bin}
本ガイドでは bash のコマンドを使用しています。
別のシェルを使っている場合は、必要に応じてコマンドの構文を読み替えてください。
環境の設定
OpenTelemetryコレクターのコアディストリビューションの Docker イメージをプルします。
docker pull otel/opentelemetry-collector:0.153.0テレメトリーを生成するクライアントをシミュレートするために使う telemetrygen をインストールします。
go install github.com/open-telemetry/opentelemetry-collector-contrib/cmd/telemetrygen@latest
テレメトリーの生成と収集
コレクターを起動します。
docker run \ -p 127.0.0.1:4317:4317 \ -p 127.0.0.1:4318:4318 \ -p 127.0.0.1:55679:55679 \ otel/opentelemetry-collector:0.153.0 \ 2>&1 | tee collector-output.txt上記のコマンドは、コレクターをローカルで実行し、3つのポートを公開します。
4317— OTLP over gRPC。ほとんどの SDK がデフォルトで使うポート4318— OTLP over HTTP。gRPC に対応していないクライアント向け55679— ZPages。ブラウザで開ける組み込みのデバッグ UI
別のターミナルで、いくつかのトレースを生成します。
$GOBIN/telemetrygen traces --otlp-insecure --traces 3トレースが送信されたことを確認できる出力が表示されます。
2024-01-16T14:33:15.692-0500 INFO traces/worker.go:99 traces generated {"worker": 0, "traces": 3} 2024-01-16T14:33:15.692-0500 INFO traces/traces.go:58 stop the batch span processorコレクターを実行しているターミナルに戻ると、以下の例のようなトレースの取り込み状況が表示されるはずです。
$ grep -E '^Span|(ID|Name|Kind|time|Status \w+)\s+:' ./collector-output.txt Span #0 Trace ID : f30faffbde5fcf71432f89da1bf7bc14 Parent ID : 6f1ff7f9cf4ec1c7 ID : 8d1e820c1ac57337 Name : okey-dokey Kind : Server Start time : 2024-01-16 14:13:54.585877 +0000 UTC End time : 2024-01-16 14:13:54.586 +0000 UTC Status code : Unset Status message : Span #1 Trace ID : f30faffbde5fcf71432f89da1bf7bc14 Parent ID : ID : 6f1ff7f9cf4ec1c7 Name : lets-go Kind : Client Start time : 2024-01-16 14:13:54.585877 +0000 UTC End time : 2024-01-16 14:13:54.586 +0000 UTC Status code : Unset Status message : ...トレースを視覚的に確認するには、ブラウザで http://localhost:55679/debug/tracez を開き、表の中から1つトレースを選択してください。
Control-C を押してコレクターを停止します。
この次のステップ
ここまでで、コレクターをローカルで実行し、テレメトリーが端から端まで処理される様子を見てきました。 ここからは、実際のセットアップでどのように使われるかを学んでいきましょう。
- 設定: コレクターの設定ファイルがどのように動作し、Jaeger や Prometheus のような実際のバックエンドにどう接続するかを学びます。
- デプロイメントパターン: コレクターをエージェントとして実行する場合とゲートウェイとして実行する場合の違いを理解します。
- コレクターのインストール: バイナリや Kubernetes など、Docker 以外のインストール方法を探します。
- コンポーネントレジストリ: パイプラインを拡張するために利用できるレシーバー、プロセッサー、エクスポーターを閲覧します。
詳細については、Your first program を参照してください。 ↩︎
フィードバック
このページは役に立ちましたか?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!