自動化SaaSクラウド

【Observability】可観測性における三つの要素とは

メトリクス、ログ、トレース。

 
こんにちわ、みなさんっ!
最近ようやく”O11y”を”おぶざーばびりてぃ”と読めるようになりました!
つばさちゃん@令和最新版です!ʕ•̫͡•ʕ•̫͡•ʔ•̫͡•ʔ•̫͡•ʕ•̫͡•ʔ

オブザーバビリティとは?

オブザーバビリティ(= Observability)とは、日本語にすると"可観測性"や"観測可能性"と呼ばれる概念で、「Observe(注意深く見る)」と「ability(能力)」を組み合わせた言葉です。つまり、システム内部の状態や挙動を外部から観測できるようにする能力のことを指します。文字で表記すると少々長いので、"O11y"と略して表記されることもしばしば見受けれます。

オブザーバビリティを導入することで、本番環境で稼働しているシステムの状態を把握するときに、単にデータ収集するだけでなく、トラブルの原因を特定したり、システムの挙動を深く理解することができます。みなさんも、こんな経験はあったりしませんか?

  • 原因は良く分からないが、いつも決まった時間に連続してエラーログが吐かれている
  • CPU使用率の高騰やメモリリークが発生しているようだが、商用影響も無いため静観している
  • 期待通りのユーザーエクスペリエンスを提供出来ているかは不明だが、特に問い合わせが来ていないため、サービスレベルはおそらく問題無いと想定している

上記のような課題を解決し、「何が起きたのか」「なぜ起きたのか」「どうすればシステムやサービスをより良くできるのか」をより正確に理解・把握できるようになるのが、オブザーバビリティです。


従来のモニタリング(監視)との違い

さて、海に浮かぶ氷山の姿を思い浮かべてください。とても綺麗ですね。

 
 

氷山というのは、海面から見えているのは実は全体のほんの10%程度しか無いらしいです。つまり、残りの90%は海の下に隠れていて外からは見えないようになっています。これは従来のモニタリング(監視)とオブザーバビリティ(可観測性)の関係にも非常によく似ていると思います。

従来のモニタリングで監視する対象は、CPU使用率、メモリ使用量、ディスク稼働状況、などなど。
これらはまさに水面から顔を出している氷山の一角と言えるかと思います。問題が発生していれば「何かおかしい?」と気づくことはできますが、「なぜそうなっているのか?」「どのコンポーネントが原因か?」まで特定することは困難かと思います。

一方で、オブザーバビリティは海の中にある氷山の大部分である、顕在化していない情報にまでアクセスし全体像を把握するアプローチを取ります。つまり、普段は見えていない問題の根本原因や、影響し得る範囲まで可視化することが可能となります。


オブザーバビリティの三つの要素

顕在化していないシステムやサービスの情報にまでアクセスし全体像を把握するために、オブザーバビリティでは主に三つの要素(データソース)を用いています。


Metrics(メトリクス)

メトリクスは、レイテンシやエラーカウンタ、ユーザーのサインインまで、環境に関する情報を表したものです。原則、数値(VALUE)と時刻情報(タイムスタンプ)で構成されます。例を挙げましょう。

[ 17.82, 22:11:01 ]

・・・うーん、良く分かりませんね。じゃあこれは?

[ 17.82, 22:11:01 ]
[ 6.38, 22:11:12 ]
[ 2.87, 22:11:38 ]
[ 7.06, 22:12:00 ]

・・・少し情報が掴めてきたかもしれない?じゃあこれは?

・・・非常に分かり易い情報となったのではないでしょうか!メトリクスの変化を時系列で分析すれば、システムの動作傾向や予兆も把握できるようになります。ただの値、されど値。必須といえる要素ではないでしょうか。


Logs(ログ)

ログは、システムが出力するテキストベースの情報を指します。”Syslog”と言えば馴染みがある方もいるのではないでしょうか。

ログを収集する主な理由は、サービスやシステムの状態を正確に把握するためや、トラブルシューティングに備えて、というのが一般的ででしょうか。それだけではなく、コンプライアンスやセキュリティ監査のためにログの保存が義務付けられているケースもあるかと思います。

しかし、このままログを加工せずに情報を追っていこうとすると情報量が多く、少々辛いところがあるのも事実です。


Traces(トレース)

トレースは、あるリクエストを処理するために掛かった時間とリクエストを処理するために実行されたパス情報を追跡することを指します。例えば、アプリケーションからデータベースに対するリクエストのボトルネック特定や、リクエストに対するレスポンス遅延が発生している箇所を特定するために使用されます。

正直なところ、当初トレースの概念を理解しようとしたときは今一つ頭に入ってきませんでした・・・。

しかし、複雑なマイクロサービスアーキテクチャが主流になるにつれ「どこで遅延が発生しているのか?」「どこがボトルネックなのか?」という原因特定の難易度が上がっていきます。トレースは今後必須の要素となってくるでしょう。


統合型オブザーバビリティプラットフォーム”Datadog”とは?

オブザーバビリティが重要と言われても難しそう、何から始めればよいか分からない、という方もいるのではないでしょうか。当社ではDatadogという、お手軽にオブザーバビリティを実現するソリューションを取り扱っています。

Datadog(データドッグ)は、そんなオブザーバビリティを実現するためのAll-in-Oneな統合型SaaSプラットフォームです。Metrics、Logs、Tracesなど、あらゆる観測データを1つの画面で可視化・分析・活用できます。

オブザーバビリティを始めてみたい!という方は東京エレクトロンデバイスでオブザーバビリティの紹介から導入支援まで対応させて頂ければと思いますので、是非こちらからお問合せ頂ければと思います!


いかがでしたか?

今回はオブザーバビリティと、重要な三つの要素について取り上げさせて頂きました!
メトリクス、ログ、トレースを極めてオブザーバビリティの専門家を目指したら格好良いですよね! 
次回はDatadogの特徴や強みをご紹介出来ればと思います( ‘ω’ )و
 

参考:DALL-Eの生成AIによる画像を使用

この記事に関連する製品・サービス

この記事に関連する記事