TT Lab
はじめる
学ぶ 学習パス コース

OTCA — OpenTelemetry認定アソシエイト

トレースが繋がり、切れるのを見る

TT Labで続きを見る

このラボは本物のOpenTelemetry上で動きます

VMの中でOTelコレクター・Jaeger・互いを呼び合う2つのサービスが実際に起動しています。リクエストが行き交い、スパンが作られ、コレクターを経由してJaegerにたまります。

前のモジュールのトレーシングのラボは、疑似クラスターで動いていました。リクエストが行き交わないため、伝播が途切れる現象そのものが起こりませんでした。それがOTCAで最もよく問われる箇所であるにもかかわらずです。

SDKはインストールしません。サービスが標準ライブラリでOTLP/HTTPを直接作ります。OTCAが問うのはtraceparentの形とOTLPの形なので、手で作ってみるほうが、むしろ試験範囲に近いです。

初回の起動には4分ほどかかります。

用意されているもの

frontend   http://127.0.0.1:30080   backend 를 부릅니다
backend    obs 네임스페이스 안
컬렉터     설정은 /etc/otelcol/config.yaml
Jaeger     http://127.0.0.1:30686
질의 도구  traces frontend

このコードブロックの韓国語は、frontendがbackendを呼び出すこと、backendがobsネームスペースの中にあること、コレクターの設定ファイルの場所、Jaegerのアドレス、クエリ用ツールがtraces frontendであることを説明しています。

ステップ

  1. リクエストを1つ流して、スパンがつながる様子を残してください(保存先: /root/otca/flow.txt)。
  2. traceparentを分解して、結果を残してください(保存先: /root/otca/traceparent.txt)。
  3. OTLPで送ったものを確認して、結果を残してください(保存先: /root/otca/otlp.txt)。
  4. コレクターのパイプラインにプロセッサーを入れ、順序が処理順序であることを残してください(保存先: /root/otca/pipeline.txt)。
  5. 伝播を切って、トレースが2つに分かれる様子を残してください(保存先: /root/otca/broken.txt)。
  6. リソース属性とセマンティック規約を残してください(保存先: /root/otca/semconv.txt)。
  7. サンプリングを設定し、何が捨てられるかを残してください(保存先: /root/otca/sampling.txt)。
  8. services=、broken_traces=、pipeline_order=の3行と説明を書いてください(保存先: /root/otca/report.md)。

参考

1回のリクエストが残すもの

リクエストを1つ流して、スパンがつながる様子を残してください(保存先: /root/otca/flow.txt)。

応答のtraceIdを、2つのサービスで比べてみてください。

ヘッダー1行の形

traceparentを分解して、結果を残してください(保存先: /root/otca/traceparent.txt)。

00-<32자리>-<16자리>-<2자리>の4つの部分でできています(プレースホルダーは32桁、16桁、2桁の部分です)。

OTLPはストレージではなくプロトコルである

OTLPで送ったものを確認して、結果を残してください(保存先: /root/otca/otlp.txt)。

コレクターのdebugエクスポーターのログに、受け取ったスパン数が出力されます。

プロセッサーの順序が処理順序になる

コレクターのパイプラインにプロセッサーを入れ、順序が処理順序であることを残してください(保存先: /root/otca/pipeline.txt)。

memory_limiterは先頭、batchは末尾です。なぜそうなのか考えてみてください。

伝播が途切れると何が見えるか

伝播を切って、トレースが2つに分かれる様子を残してください(保存先: /root/otca/broken.txt)。

スパンは両方とも残ります。1つにつながらないだけです。

名前を勝手に付けてはいけない理由

リソース属性とセマンティック規約を残してください(保存先: /root/otca/semconv.txt)。

service.nameはリソース属性で、http.request.methodはスパン属性です。

何を捨てるか

サンプリングを設定し、何が捨てられるかを残してください(保存先: /root/otca/sampling.txt)。

ヘッドは最初に決めて、あとから取り消せません。テールはすべて集めておいて、あとから選びます。

何を学んだか

services=、broken_traces=、pipeline_order=の3行と説明を書いてください(保存先: /root/otca/report.md)。

services=、broken_traces=、pipeline_order=の3行と説明を書いてください。