この記事は英語の原文を日本語に翻訳したものです。原文: https://opentelemetry.io/docs/specs/semconv/how-to-write-conventions/t-shaped-signals/
翻訳元: open-telemetry/semantic-conventions v1.44.0(コミット e10a930)
T-shaped Signals
セマンティック規約は、T字型の考え方でオブザーバビリティに取り組みます。これは、シグナルを「T」の形をした2つの種類に分割するものです。
block-beta
columns 3
Broad["Broadly Applicable Signals"]:3
columns 3
space:1
Deep("Rich,\nDeep\nSignals")
space:1
これは80-20の法則に対応しています。ユーザー(または使用事例)の80%は広く適用可能なシグナルを活用でき、残り20%のユーザー(または使用事例)は、深いシグナルを使って問題を深く掘り下げます。
広く適用可能なシグナル(Broadly Applicable Signals)
これらは、ある領域全体にわたって基本的なオブザーバビリティ体験を提供することを意図した規約です。例えば、HTTP(マイクロ)サービスに対する汎用的なダッシュボード化、アラート、診断を可能にするHTTPセマンティック規約が挙げられます。これらのシグナルは、オブザーバビリティに対して「水平的な」カバレッジを提供すべきです。
例は次のとおりです。
- Golden Signals / REDメトリクス(Saturation、Rate、Error、Duration)
- 高レベルのスパン
- エラーログ、クラッシュレポート
- リクエスト・レスポンスのログ
リッチで深いシグナル(Rich, Deep Signals)
これらは、特定のシステム、ライブラリ、モジュール、アプリケーション、サービスについて深い理解を提供することを意図した規約です。これらは、そのシステムに固有の問題を診断するために使われます。
例は次のとおりです。
- Linuxのslabメモリ使用量
- 特定のデータベースに関するシグナル(MySQLのインデックス使用状況など)
- 言語固有のガベージコレクションメトリクス(JVM、Go、.NETなど)
推奨事項
セマンティック規約を定義することは、広く適用可能なシグナルを生成することと、特定の技術に対するリッチなオブザーバビリティを確保することの間のバランスです。特定の領域については、まず広い使用事例とシグナルから始めることが推奨されます。その領域に対する基本的なシグナルの集合を提供した後、ベンダーや実装に固有の、より深い統合を検討してください。
例えば、データベースのセマンティック規約では、データベースとの通信に関するスパンの汎用的なガイダンスがあり、さらに、その汎用ガイダンスの拡張として、データベース固有のガイダンスもあります。