1章オブザーバビリティの必要性

ここ数年、テクノロジー業界でオブザーバビリティという言葉の人気が高まっています。 OpenTelemetryを深く掘り下げ、どのようにして私たちのシステムをよりオブザーバブル(観測可能)にしていくかを見ていく前に、 まずオブザーバビリティが何であるか、そして何よりも、特に現代の分散システムにおいてそれがなぜ必要なのかを理解していきましょう。

1.1. なぜオブザーバビリティが重要なのか

多くの人にとって、オブザーバビリティはソフトウェア開発のキャリアの初期段階から始まっています。 通常、コードの実行が特定の関数や分岐に入ったときに「いまここ」のようなメッセージを出力するprint文が、スクリプトのあちこちに点在しています。 何らかの変更を加え、スクリプトを再度実行し、何か違うものが表示されることを期待します。

これはもっとも単純でおそらくもっとも非効率的なデバッグ方法であり、 ローカルで数行のコードを実行する以上にスケールしないのは明らかですが、 スクリプト実行の内部的な洞察が得られるため、 コードが何をしていて、変更がどう影響しているかを理解するのに(多少は)役立ちます。 一般用語で言うオブザーバビリティ [1] とは、外部出力の観測から内部状態をどの程度推測できるかを測るシステムの品質です。 これは1960年に、Rudolf E. Kálmánが制御システム理論の概念として初めて説明したもので、 論文「On the general theory of control systems」の一部として、 https://ieeexplore.ieee.org/document/1104873に掲載されています。 任意の時点でシステムが生成するテレメトリーを評価することで、 ...