以下の内容はhttps://kmuto.hatenablog.com/entry/2025/09/01/090000より取得しました。


OpenTelemetryのスパンを加工するプロセッサをざっくりまとめてみた

スパンの加工が必要なときにどれを使うといいのだっけ、とたまに思い出せなくなるので、メモ的にまとめてみた。

フィルタリング、サンプリング

フィルタリングおよびサンプリングは、エクスポータへのスパンの送出を減らす役割を担う(たくさん送るとそれだけコストになるので、無駄なものは送りたくない)。

フィルタリングのFilter Processorは、条件に基づいて合致したスパンを削除する。

  • YAMLに列挙したリストがOR評価され、いずれかにマッチすればそのスパンを除去する
  • 1つの評価式内でandを使うことはできる
  • IsMatchで値の正規表現評価ができる
  • 評価項目は属性attributes["〜"]、リソース属性resource.attributes["〜"]、スパン名name、タイプtypeなど

Filter Processorの注意点として、これはスパンを削除するだけで、トレースが削除されるわけではない。トレースとして削除したいときには、「関係するスパンを何らかの条件で削除する」か「テールベースサンプリングを使う」かとなる。

サンプリングでは、スパンの集合体であるトレースを条件に基づいて選び取る。シンプルに確率的に選出するヘッドベースサンプリング(Probabilistic Sampling Processor)と、いったんCollectorに貯めてから選ぶテールベースサンプリング(Tail Sampling Processor)がある。

kmuto.hatenablog.com

パイプラインで設定するときには、フィルタリングをまず実施し、そのあとにサンプリングという順序にすることが推奨される。

属性の加工

属性やリソース属性の追加・削除、および値の変更の目的に対しては、Transform Processorと、用途範囲を絞ってその役割に特化した各種プロセッサがある。

Transform Processorは、強力な属性加工プロセッサである。

処理はOTTLの記法で記載し、OTTLの関数を利用して、属性・リソース属性の追加・削除・値の変更ができる。以下はスパンのレイテンシー値をスパン属性に持たせた例である。

  transform:
    error_mode: ignore
    trace_statements:
      - set(span.attributes["app.duration_ms"], (span.end_time_unix_nano - span.start_time_unix_nano) / 1000000)

Attributes Processorは、スパン属性を加工するプロセッサである。スパン属性の追加(insertおよびupsert)と削除、値のハッシュ化、値のマッチャによる展開(たとえばhttp.url属性値からpattern: ^(?P<http_protocol>.*):\/\/(?P<http_domain>.*)\/(?P<http_path>.*)(\?|\&)(?P<http_query_params>.*)で属性を作る)、属性値の型の変更(int・double・string)ができる。

Resource Processorは、Attributes Processorのリソース属性版で、設定方法も同等である。

Span Processorは、スパンの名前を属性に基づいてリネームしたり、スパンの名前から属性を作ったりできるプロセッサである。スパンのステータスを変更する機能もある。

Redaction Processorは、個人情報・機微情報の除去あるいはマスキングに特化したプロセッサで、ほかのプロセッサでも同じことはできるが、よりシンプルに定義できる。また、データベースクエリ内の機微情報に特化した機能も「Database Query Sanitization」として用意されている。SQL databases、Redis、Memcached、MongoDB、OpenSearch、ElasticsearchがREADMEで挙げられているが、コードを見るとValkeyも対応している。具体的な処理はDataDogのobfuscate.goを利用しているようだ。




以上の内容はhttps://kmuto.hatenablog.com/entry/2025/09/01/090000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14