「測定しなければ、管理できない」という言葉はデミングによるもので、可観測性と監視はサービスを測定するための手段です。
Kubernetesは、デプロイメントの処理方法やスケーリングに関して非常に革命的です。しかし、コンテナが継続的に作成され、破棄される方法は、時として監視において課題を呈することがあります。ここで可観測性が重要な役割を果たし、システムのパフォーマンスや問題が発生する理由に関する重要な洞察を提供します。
Kubernetesの用語を再確認したいですか?5分で分かるKubernetesの解明をお読みください。
Kubernetesにおける可観測性とは?
人々は可観測性を傘のような言葉として使いたがります。しかし通常、これはメトリクス、ログ、トレースを意味します。これは、アプリケーションやインフラの核心を透視するレンズを持つようなものです。これらの出力を収集・分析することで、可観測性はサービスに支障をきたす前に潜在的な問題を見つけ出し、全体的なシステムパフォーマンスを最適化するのに役立ちます。
思い浮かぶ三つのことは:
メトリクス
これは数値であり、リソースの使用状況、エラーレート、パフォーマンスに関するデータを提供します。人気のあるメトリクスには、CPU使用率やメモリ使用率のパーセンテージ、そしてメトリクス自体に関する追加のメタデータ(時には次元と呼ばれる)があります。
ログ
ログはシステム内のイベントの詳細な履歴を提供し、エラーやユーザーのアクションなどを記録します。トラブルシューティングやアプリケーションの動作を理解するための文脈を提供します。おそらく「ログ」を以前に見たことがあるでしょう:
[20250101 12:30:00] ERROR: Failed to connect to database on attempt 3, retrying...
トレース
トレースは、リクエストがサービスを通過する際のエンドツーエンドのビューを提供し、ボトルネックやレイテンシの問題を特定するのに役立ちます。複数のマイクロサービスを横断してリクエストを追跡することで、パフォーマンスの問題が発生している箇所を特定できます。
ログとトレースは似ているように聞こえるかもしれませんが、異なります。ログは何が起こったかのスナップショットと考えてください。一方、トレースはシステム全体を通じて何故起こったのかを示します。
観測可能性は組織内の1つの役割に限定されるものではありません。それ自体が異なる役割の間で共有される重要な情報の一部です。たとえば、ソフトウェアエンジニアとして、アプリケーションコードにメトリクス、ログ、およびトレースをインストールします。そして、Prometheusのようなツールを使用してメトリクス、Jaegerを使用してトレースを収集、保存、分析する必要があります。
まだ「観測可能性」に納得していない場合は、以下を要約します:
- すべてがスムーズに効率的に実行されることを確認し、パフォーマンスのボトルネックを特定します。
- システムの弾力性を向上させ、アプリが失敗から迅速に回復するのを助けます(願わくば)。
- 継続的な監視により、チームは早期に異常を検出し、セキュリティ侵害を防ぎ、機密データが保護されることを確認できます。
- 素晴らしい外観のダッシュボードを構築することができ、システムパフォーマンスに関するより良い洞察を得るのに役立ちます。それは、重要なインフラコストを削減するのにも役立つかもしれません(あなたのことを見ています、AWS!)。
待ってください、上で監視についても言及しました。では、それは何であり、どのように異なるのでしょうか?
可観測性と監視は関連していますが、異なる目的に役立ちます。監視は、システムが許容されるパラメータ、つまりSLAs/SLOsの範囲内で機能していることを確認するために、事前定義されたチェック/アラートを設定することを含みます。一方、可観測性はシステムの動作を包括的に理解することによってさらに進みます。何かが壊れたときに知るだけではなく、それがなぜどのように起こったのかを理解することです。監視と可観測性の両方は、効果的なシステム管理にとって不可欠です。
注目: OpenTelemetry
OpenTelemetry(別名OTel)は、主要なオープンソースのAPI、SDK、およびツールのコレクションです。これを使用して、テレメトリデータ(メトリクス、ログ、トレース)を計測、生成、収集、およびエクスポートし、ソフトウェアのパフォーマンスと動作を分析するのに役立ててください。OpenTelemetryは、多くの人気のあるライブラリやフレームワークと統合されており、多様なKubernetes環境でのコードベースおよびゼロコード計測をサポートしています。
結論
結論として、可観測性は単なる技術的要件以上のものであり、今日の競争の激しい市場で先を行くことを目指す組織にとって戦略的な必須条件です。OTelなどの適切なツールと戦略を活用することで、組織はKubernetesアプリケーションを監視、トラブルシューティングし、継続的に最適化することができます。システムパフォーマンスの可視性が向上することで、組織はデータに基づいた意思決定を行い、アプリケーションの信頼性を向上させ、ビジネス目標をより効果的に達成することができます。
誰が言ったのかはわかりませんが、この言葉が大好きです:推測をやめて、知ることを始めよう!
Source:
https://dzone.com/articles/the-must-have-guide-to-kubernetes-observability