Cansu Kavili
制御理論(control theory)において、可観測性(Observability)とは、システム外部から、システムの内部状態がどの程度良好であるかを決定する能力のことです。
ソフトウェアにおける可観測性とは、システムで何が起こっているかを知り、発見する能力のことです。システムを全体的に把握し、深く理解することで、問題をより早く特定し、問題の原因を理解し、最終的にはより良いカスタマー・エクスペリエンスを提供することができます。
システムは指数関数的に複雑化しているため、障害や失敗も増えています。昨日とは違う疑問に対して、違う答えを探していることがよくあります。このように複雑さが増しているからこそ、今日、可観測性が非常に重要で必要になります。観測可能なシステムであれば、どの時点でもどのような疑問でも対応することができ、結果から原因への道筋を見つけるのに役立つためです。
可観測性は、何が遅いのか、何を最適化する必要があるのか、エラーや問題がいつ発生するのか、さらに重要なのはその理由を理解するのに役立ちます。 観測可能なシステムは、次のような多くのことを伝えます:
そのため、ユーザーに関する質問に答えたり、私たちのアイデアを検証(または無効化)したり、意思決定をしたりするのにも役立ちます。
言い換えれば、可観測性によって、システムや迅速に対応すべきことについて、より深く共通の理解を得ることができます。
可観測性は、システムがどのように機能するかについてあらゆる質問をすることにフォーカスします。つまり、私たちは質問を始め、それに答えられるように良いデータを集める必要があります。
伝統的に、可観測性とは、テレメトリーデータ:メトリクス/ログ/トレースの組み合わせです(これらは「可観測性の3本柱」とも呼ばれる)。
これらが唯一の情報源になるという意味ではないが、通常は主要な情報源です。重要なのは、何が価値があり、何が自分のシステムにとって適格かを判断することです。次のステップは、これらの異なるソースを関連付け、質問に素早く答えられるようにすることです。例えば、一意のリクエストIDを使用することで、特定の時点におけるユーザーのリクエストからすべてのコンテキストを得ることができます。
可観測性 をチームや顧客、ステークホルダーと実施するにあたりより詳細にお知りになりたい場合は、以下のリンクを参照してください。