OpenTelemetry は、マイクロサービスアーキテクチャにおける観測性(observability)を実現するためのオープンソースプロジェクトであり、ログ、トレース、メトリクスの収集・処理を標準化しています。特に、OpenTelemetry Collector はデータの変換やフィルタリングに不可欠な役割を果たしており、その処理ロジックを定義するための OTTL(OpenTelemetry Transformation Language) が採用されています。本記事では、OTTL とその実験的ツールである OTTL Playground の特徴、利用方法、およびトラブルシューティングにおける実用性について解説します。
OTTL は OpenTelemetry Collector 內部で使用される、データ変換を目的とした領域特定言語(DSL)です。logs、traces、metrics などのデータをフィルタリングや構造化処理に適した形式に変換するための機能を提供します。內蔵の関數は約 100 個あり、條件文や論理演算子をサポートしており、柔軟なデータ操作が可能です。
set_severity_number
、parse_json
)。if
文によるフィルタリング)。例として、ログの severity_number
を error
に設定する処理は、ログ內容に error
が含まれる場合にのみ実行されるように條件付きで記述されます。
OTTL の処理ロジックを検証する際、従來は以下のような方法が用いられていました。
これらの方法では、処理の可視化や共有が難しいという課題がありました。
CNCF(Cloud Native Computing Foundation)が後押しする OpenTelemetry において、OTTL Playground は、処理ロジックのテストとデバッグを効率化するための Web 基盤の実験環境です。以下がその主な機能です。
debug
、info
)によるフィルタリング。body
と timestamp
を含む JSON ログ。body
を獨立したフィールドにパース。timestamp
を文字列から時間形式に変換。severity_text
を error
に設定。body
を message
に置き換え。body
が message
に置き換えられ、severity_text
が追加され、timestamp
のフォーマットが更新される。level
が debug
または info
の複數ログ。level
が debug
のログを除外。debug
ログが削除され、info
ログのみ殘る。OTTL Playground は、OpenTelemetry の処理ロジックを効率的にテスト・デバッグするための強力なツールです。特に、視覚化機能と共有機能により、チーム內での協業や知識共有が容易になります。今後は、より高度な機能の拡張と利用の容易さ向上が期待されます。OpenTelemetry は CNCF が推進する技術であり、観測性の実現に不可欠な基盤となるため、積極的な利用が推奨されます。