Open31

「可観測性」って何

OhnoOhno

可観測性とは、システムやアプリケーションの出力、ログ、パフォーマンス指標を調べることにより、その状態を監視、測定、理解する能力を指します。

可観測性は、従来の監視システムを統合および拡張し、チームが問題の根本原因を特定できるようにします。可観測性によりステークホルダーは、アプリケーションやビジネスに関する質問に答えられるようになり、潜在的な問題についての予測や予想も可能になります。

OhnoOhno

「可観測性の側面とトレンド」について

人工知能 (AI) や機械学習 (ML) は、異常の自動検出、根本原因の分析、予測的知見を提供するために、可観測性プラットフォームでますます使用されるようになりました。

ハイブリッドクラウドやマルチクラウド戦略を採用する企業が増える中、アプリケーションやサービスのデプロイ場所に関わらず、インフラストラクチャ全体を見渡すことができる可観測性ツールが求められています。

近年、Grafana、Jaeger、Kafka、OpenTelemetry、Prometheus といったオープンソースの可観測性ツールの普及が進んでおり、この傾向は今後も続くと言われています。この背景には、組織がプロプライエタリーな可観測性ツールに関連するコストの削減を望んでいることや、オープンソースツールが提供する柔軟性やカスタマイズのオプションが魅力ということがあります。

OhnoOhno

補足

ハイブリッドクラウドはプライベートクラウド(オンプレ環境など)とパブリッククラウド(AWSなど)を併用すること

参考

OhnoOhno

「可観測性の利点は何か」

信頼性の向上、トラブルシューティングの効率化、最適化されたパフォーマンス、データ駆動型の意思決定

OhnoOhno

「可観測性と監視の違い」

可観測性とは、外部からシステムの動作を調べることで、システムに関する疑問を投げかけることができる能力のことです。

OhnoOhno

可観測性とは、一般に、外部出力の知識のみに基づいて、複雑なシステムの内部状態を理解できる程度を指します。システムの可観測性が高いほど、パフォーマンスの問題を確認したときに、追加のテストやコーディングを行わなくても、その根本原因までより迅速かつ正確にたどり着けるようになります。

OhnoOhno

可観測性とモニタリング、APMの違い

モニタリングは、テレメトリー・データなどの進行状況や品質を一定期間にわたって追跡し分析する方法です。

APMツールはメトリクス、トレース、ログを収集し、通常はインフラストラクチャーの監視や、アプリケーションの依存関係、ビジネス・トランザクション、ユーザー・エクスペリエンスに焦点を当てます。

可観測性は、モニタリングとAPMをさらに一歩進めて、すべての資産間にコンテキストを適用します。

OhnoOhno

しかし、ここで1つ注意しておきたいのは、可観測性と監視(モニタリング)は同義ではないということです。

監視によって、ソフトウェアチームはシステムに関するデータを収集し、エラーや問題の発生時に迅速に対応できるようになります。つまり、監視とはデータを収集することを目的としてシステムを構築することであり、問題を検知し、迅速に対応する体制を整えることが目的です。

一方、可観測性とはエラーや問題が発生したことを検知するだけでなく、それが「なぜ」起きたのか、その原因を探り、改善のアクションに繋げることを目的としてデータを収集します。最新のデジタルサービス、ソフトウェアに必要なのは、緊急事態が起きても迅速な対応と原因の特定、解決を可能にする後者の「可観測性」です。

OhnoOhno

New Relicでは、可観測性に不可欠なデータのタイプは、メトリクス、イベント、ログ、トレース(M.E.L.T.)だと考えています。

OhnoOhno

「この5年、10年での技術革新」による影響

迅速なイノベーションへのプレッシャー
パフォーマンスの高い企業(High Performer)は、1 時間に 1 回から 1 日に 1 回の頻度でソフトウェアをデプロイし、パフォーマンスの優れた企業(Elite Performer)は、必要に応じて 1 日に複数回のデプロイを行います。

顧客からの高い期待値
モバイルアプリ開発者の Dot Com Infowayによると、モバイルでクラッシュやフリーズ、エラーが発生した場合、62% の人がアプリをアンインストールする

優れたパフォーマンスの企業は、ユーザーに影響を与えるインシデントや不具合が発生した場合、1 時間以内にサービスを復旧するのに対し、パフォーマンスの低い企業の場合は、サービスの復旧に 1 週間から 1 ヵ月の時間を要することがあります。

豊富なテクノロジーの選択肢

DevOps と自動化の発展

OhnoOhno

課題

複雑化
個々のアプリケーションは数十個のマイクロサービスに分解される可能性がある

ハイリスク
頻繁なデプロイとダイナミックなインフラストラクチャは、リスクが入り込む回数も増えます。リスクが増えたことで、デプロイ頻度の低い時代よりも、リスクの迅速な検出とロールバックの重要性が高まっています

スキルの格差
チームメンバーは、あまり知識のないアプリケーションについても理解し、トラブルシューティングすることが求められます

ツールの煩雑化
複数の監視ツールと、最も重要なデータの検出と関連づけ、または問題の検出と解決に必要なコンテキストの切り替えを同時に実行した場合、生産環境で問題が発生したとしても、チームにとって貴重な時間を費やさなければならなくなります

OhnoOhno

可観測性は、問題が発生した原因を伝えるもので、何らかの問題があるという事実のみを通知する監視とは異なります。

OhnoOhno

「監視は事前に決めておいた項目を測定するもので、可観測性とはシステムに関して知らないことを尋ねることができる機能です。」

OhnoOhno

可観測性の 3 つのポイント

  1. オープンインストゥルメンテーション
    ビジネスクリティカルなアプリケーションとインフラストラクチャの全体を可視化すること

Open instrumentationの意味

Open instrumentation means gathering telemetry data without being tied to vendor-specific entities that produce that data. Examples of open-source or telemetry data sources include vendor-agnostic observability frameworks like OpenTelemetry and Prometheus.

  1. 関連付けエンティティ
    テレメトリデータを生成するエンティティを識別して接続するには、すべてのテレメトリデータを分析する必要があり、エンティティとデータ間の相関を生成するためにはメタデータを組み込む必要があります。
    エンティティ連携の利点は、人工知能を応用してさらに多くの意味を導き出せること

Telemetryの意味

Telemetry, as defined in its broadest context, is a process that involves collecting data that's measured by an instrument and sending that data to some receiver.

  1. プログラマビリティ
    ビジネスには、すべてのテレメトリデータの上に、重要なビジネスデータとディメンジョンを組み合わせて、独自のコンテキストとキュレーションを作成する必要があります。
OhnoOhno

オープンインストゥルメンテーション

M.E.L.T.:簡単な定義

ほとんどの場合、可観測性はメトリクスから始まります。
コストを抑えて収集、保存できます。また、迅速な分析ができる規模で、全体的な健全性を評価するのに最適な方法

トレースは、分散アーキテクチャにおける個々のコール(呼び出し)のエンドツーエンドレイテンシーを示すのに便利です。これらのコールは、システムによるさまざまなカスタマージャーニー(購買までのプロセス)に関して独自のインサイトをもたらします。

ログは、エンジニアが問題の根本原因を追求する「ディープ」なデバッグモードに入った場合、特に重要です。

イベントは、あらゆる可観測性ソリューションの一部でなければならない重要な(そして見落とされがちな)テレメトリタイプのデータです。
イベントは、分析の重要なポイントを個別かつ詳細に記録したものです。しかし、ログが提供する詳細レベルよりも高い抽象度を含んでいます。ログはシステム内で起こったすべてのことを包括的かつ離散的に記録したものであり、イベントは起こった重要なことを選択して記録したものであり、その記録にメタデータを付加して文脈をより鮮明にします。

  • ログとイベントの違いに関する自分の解釈
    • ログ:システム内のすべての出来事を詳細に記録。包括的で細かい。
    • イベント:重要な出来事を選択して記録。メタデータを付加して文脈を明確にし、抽象度が高い。
OhnoOhno

アラートはイベントに該当します。デプロイメントもイベントで、トランザクションもエラーもそうです。イベントは、リアルタイムで詳細な分析を実行することができます。

OhnoOhno

関連付けデータとキュレートデータ

比較的長い章だったが、要約すると、「データは集めるだけではなく関連付けないと意味がない。ただし、それには膨大なコストがかかる。New Relicならうまくやれる。」という話だった。

OhnoOhno

プログラマビリティ

独自のニーズに合わせてアプリケーションを構築できる可観測性プラットフォームがあれば、以下のような作業が可能になります。
• ソフトウェアへの投資に優先順位を付け、リアルタイムで投資の効果を測定する。
• 豊富なコンテキストを使用して、テクノロジー、ビジネス、顧客の関係を理解する。
• 特定の KPI に直接影響する意思決定をデータに基づいて行う。
• テクノロジー環境だけでなく、企業特有のビジネスをモデル化するために構築されたインタラクティブで視覚的な表示により、理解を共有する。

OhnoOhno

あらゆる機能を一元化

可観測性プラットフォームの要件:
• オープンソースと独自のソースからテレメトリデータを収集し、一ヵ所で組み合わせる。このオープンインストゥルメンテーションでは、ソースに関係なく、あらゆるデータの相互運用が可能になるので、問題や緊急事態が発生した場合でも、ツールが急激に増えることがなく、コンテキストを切り替える手間を軽減します。
• エンティティ間の関連付けと関係性を形成し、これらのつながりを適用して、データをより深く理解できるようにコンテキストと意味を作成します。コンテキストは、最も重要な情報を強調するキュレートされたビューで提示します。
• その上にカスタムアプリケーションを構築する機能を提供します。ダッシュボードとは異なり、アプリケーションはインタラクティブでキュレートされた体験を提供します。ワークフローが組み込まれていることも多く、リアルタイムで外部データを組み合わせることもできます。プログラマビリティは、可観測性の可能性を再定義します。

OhnoOhno

後半はNew Relicの宣伝だったな。

OhnoOhno

オブザーバビリティ(可観測性)とは、システムの出力を調査することによって内部の状態を測定する能力を指します。

OhnoOhno

オブザーバビリティは、メトリクス、ログ、トレースの3種類のテレメトリデータを使用して分散システムを詳細に可視化し、さまざまな問題の根本原因の究明やシステムのパフォーマンス向上につなげることを意味します。

OhnoOhno

オブザーバビリティ(可観測性)と監視の違い

監視はシステムのオブザーバビリティを向上させるために行う活動のことです。オブザーバビリティは機能性やテスト容易性などと同じく、システムの属性です。

監視では、何を監視すべきかを事前に判断する必要があるのに対して、オブザーバビリティでは、システムのパフォーマンスを継続的に監視し、その結果について質問を投げかけることによって、何が重要かを判断できる点です。

OhnoOhno

オブザーバビリティ(可観測性)が重要な理由

オブザーバビリティは、分散システムの予測不可能性への対応に適しています。その大きな理由は、問題が発生したときにシステムの動作について「なぜXが故障したのか?」、「現在起きている遅延の原因は何か?」などの質問を投げかけて答えを得ることができるためです。

OhnoOhno

オブザーバビリティの軸となるデータクラスとその使い方

オブザーバビリティの軸となるデータクラスは、ログ、メトリクス、トレースの3つです。これらはよく「オブザーバビリティの3つの柱」と呼ばれます。

ログ:ログは、特定の時点で発生したイベントのテキストレコードであり、発生日時を示すタイムスタンプとコンテキストを示すペイロードが記録されます
メトリクス:メトリクスは、一定の期間にわたって測定された数値であり、タイムスタンプ、名前、KPI、値などの属性が記録されます。
トレース:トレースは、分散システムでのリクエストの処理経路をエンドツーエンドで表すデータです。

これらのデータクラスを収集していても、別々に扱っていたり、それぞれ異なるツールで調査したりしていると、オブザーバビリティは保証されません。オブザーバビリティを実現するには、ログ、メトリクス、トレースを単一のソリューションに統合する必要があります。

OhnoOhno

まとめ: 可観測性とは

  • システムの外部出力から内部状態を把握できる程度のこと
  • 「可観測性が高いほど、パフォーマンスの問題を確認したときに、追加のテストやコーディングを行わなくても、その根本原因までより迅速かつ正確にたどり着ける」
  • 主要要素はログ、メトリクス、トレース