可観測性

未知の問題にどう対処するか
Contributed by

Cansu Kavili

Published March 19, 2021
Collection
0

概要

制御理論(control theory)において、可観測性(Observability)とは、システム外部から、システムの内部状態がどの程度良好であるかを決定する能力のことです。

ソフトウェアにおける可観測性とは、システムで何が起こっているかを知り、発見する能力のことです。システムを全体的に把握し、深く理解することで、問題をより早く特定し、問題の原因を理解し、最終的にはより良いカスタマー・エクスペリエンスを提供することができます。

メリット

システムは指数関数的に複雑化しているため、障害や失敗も増えています。昨日とは違う疑問に対して、違う答えを探していることがよくあります。このように複雑さが増しているからこそ、今日、可観測性が非常に重要で必要になります。観測可能なシステムであれば、どの時点でもどのような疑問でも対応することができ、結果から原因への道筋を見つけるのに役立つためです。

可観測性は、何が遅いのか、何を最適化する必要があるのか、エラーや問題がいつ発生するのか、さらに重要なのはその理由を理解するのに役立ちます。 観測可能なシステムは、次のような多くのことを伝えます:

  • ユーザーが当社製品をどのように使用しているかを把握することで、機能や修正のスコープを設定することができる
  • 機能と修正について、次に何を優先させるか
  • 私たちが提供するコードは、私たちが期待する価値を提供するか、しないか。

そのため、ユーザーに関する質問に答えたり、私たちのアイデアを検証(または無効化)したり、意思決定をしたりするのにも役立ちます。

言い換えれば、可観測性によって、システムや迅速に対応すべきことについて、より深く共通の理解を得ることができます。

実施方法

可観測性は、システムがどのように機能するかについてあらゆる質問をすることにフォーカスします。つまり、私たちは質問を始め、それに答えられるように良いデータを集める必要があります。

伝統的に、可観測性とは、テレメトリーデータ:メトリクス/ログ/トレースの組み合わせです(これらは「可観測性の3本柱」とも呼ばれる)。

  • メトリクス: ソフトウェアの特性を数値化したり、数えたりできる指標。あるサービスによって処理されている1秒あたりのリクエスト数や、使用されているメモリ量などがそれにあたります。通常、メトリクスは出発点であり、全体的なパフォーマンスと健全性を測定する優れた方法です。
  • イベント: イベントとは、システムが行ったことの詳細な記録です。
  • ログ: ログとは、不変で、タイムスタンプが押され、人間が読むことのできる、時間の経過に伴う各イベントのテキストです。
  • トレース: トレースとは、1つのリクエストやトランザクションのエンド・ツー・エンドの経路を示す、一連の関連イベントの表現です。トレースは、各レベルで行われた処理を特定し、パスに沿った待ち時間や、どのレイヤーがボトルネックや障害を引き起こしているかを特定するのに役立ちます。

これらが唯一の情報源になるという意味ではないが、通常は主要な情報源です。重要なのは、何が価値があり、何が自分のシステムにとって適格かを判断することです。次のステップは、これらの異なるソースを関連付け、質問に素早く答えられるようにすることです。例えば、一意のリクエストIDを使用することで、特定の時点におけるユーザーのリクエストからすべてのコンテキストを得ることができます。

参考

可観測性 をチームや顧客、ステークホルダーと実施するにあたりより詳細にお知りになりたい場合は、以下のリンクを参照してください。


Except where noted, content on this site is licensed under a Creative Commons Attribution 4.0 International license. This site is graciously hosted by Netlify