telemetrygen は、OpenTelemetry Collector Contrib のデータ生成ツールです。合成 OTLP ログ、トレース、メトリクスを生成し、データの内容を調整できる各種フラグを備えています。たとえば、複数のサービス、ログの重大度、span の status や子 span、さまざまなメトリクスタイプを指定できます。これを使うことで、ClickStack OpenTelemetry collector がデータを受け付けていることや、多様で現実的なイベントが ClickStack UI に表示されることを確認できます。
このガイドでは、collector がすでに稼働しており、4317 (gRPC) と 4318 (HTTP) で OTLP エンドポイントを公開していることを前提としています。
- Managed ClickStack
- ClickStack Open Source
1
前提条件
このガイドは、Managed ClickStack の Getting Started Guide を完了しており、telemetrygen を実行するマシンから OTLP gRPC (4317) および HTTP (4318) のエンドポイントにアクセスできる OpenTelemetry collector が稼働していることを前提としています。collector を OTLP_AUTH_TOKEN で保護 している場合は、その値をすぐ使えるようにしておいてください。2
telemetrygen をインストールする
Dockerイメージからtelemetrygen を実行します (インストールは不要です) 。以降のコマンドを見やすくするために、簡単なラッパーを定義します。--add-host を使うと、コンテナーからホスト上で待ち受けている collector に接続できます。localhost を対象にします。3
環境変数を設定する
collector が保護されている場合は、認証トークンを設定します。認証されていない collectorClickStack OpenTelemetry collector はデフォルトで認証されていません。
OTLP_AUTH_TOKEN を設定するために collector の保護 の手順を実施していない場合は、以下のヘルパーから --otlp-header の行を削除してください。tg ヘルパーを定義します:4
ログを生成する
ログは、単一で均一なストリームではなく、複数のサービスにまたがって、主に情報レベルを中心に警告やエラーも含めた現実的な重大度の組み合わせで送信します。--serviceはservice.nameを設定し、イベントをサービスに紐付けられるようにします。--severity-textと--severity-numberはレベルを設定します (severity-numberは 1 ~ 24 の範囲です) 。--bodyはログメッセージを設定します。--otlp-attributesはリソースレベルの属性を設定します (key="value"、key=true、またはkey=<integer>) 。--telemetry-attributesはレコード単位の属性を設定します。
5
トレースを生成する
正常な複数のサービスと、障害が発生している 1 つの依存先から、複数のスパンを含むトレースを送信します。これにより、サービスマップは大半が正常で 1 つのサービスのみがエラーを返す、より現実的な構成となり、エラービューにもデータが投入されます。--child-spansは、trace ごとに指定した数の子 span を生成し、各 trace に実際の深さを持たせます。--span-durationは、各 span の継続時間を設定します (例:120ms、2s) 。--status-codeは、Unset、Error、Ok(または0、1、2) のいずれかです。エラービューを試すにはErrorを使用します。--span-linksは、span 間にリンクを追加します。--workersは、より多く、より変化に富んだボリュームを得るために、複数のジェネレーターを並列に実行します。
6
メトリクスを生成
ダッシュボードでカウンター、Gauge、分布を利用できるよう、一般的な3種類のメトリクスタイプを送信します。一部のジェネレーターとは異なり、telemetrygen はメトリクスでも --duration を尊重するため、手動で停止する必要はありません。--metric-type には Gauge、Sum、Histogram、または ExponentialHistogram を指定できます。--otlp-metric-name は series 名を指定するオプションで、UI で見つけやすくなります。--aggregation-temporality には delta または cumulative を指定します。7
ClickStack で確認する
ClickHouse Cloud コンソールから ClickStack UI を開きます。Search ビューで、時間範囲を Last 15 minutes に設定し、ログソースを Logs と Traces に切り替えます。ServiceName で絞り込んで frontend、checkout、cart、payment の各サービスを表示し、SeverityText で絞り込んで warning と error のログ行を探します。payment の trace を開き、子 span とエラーステータスを確認します。Chart Explorer を開き、Metrics を選択して、上で設定したメトリクス名の 1 つ (たとえば http.server.requests) をチャート化し、メトリクスのインジェストを確認します。