完全なリンク監視の 4 つの部分: リンク収集、インジケーター収集、ログ収集、および詳細な分析
-
リンク コレクションにはコール チェーンとサービス トポロジが含まれており、完全なリンク分析のためのシリアライザーです。
-
インジケーターの収集はサービス リンクに統合されており、リンク全体に基本的な監視機能を持たせることができます。
-
ログ収集のデータ ソースは、フルリンク分析のデータ ソースでもあります。
-
詳細な分析には、リンク全体の問題箇所の要件を満たすためのオフライン モジュールとオンライン モジュールが含まれています。
マイクロサービス アーキテクチャでは、ディメンションが異なれば監視方法も異なります。
(1) 健康診断。ヘルスチェックとは、アプリケーション自体の健康状態を監視し、サービスが生きているかどうかを確認することです。
(2) ログ。ログは問題をトラブルシューティングするための主な方法であり、問題を特定して解決するための豊富な情報を提供できます。
(3) コールチェーンの監視。コール チェーン モニタリングでは、サービス コール リンク、費やした時間など、リクエストのすべての情報を完全に表示できます。
(4) 指標の監視。インジケーターは時系列に基づくいくつかの個別のデータ ポイントであり、集計と計算後のいくつかの重要なインジケーターの傾向を反映できます。
上記 4 つの監視方法のうち、ヘルス チェックはクラウド プラットフォームなどのインフラストラクチャによって提供される機能であり、ログは通常、ログの収集、保存、計算、クエリのために別のログ センターを持ち、コール チェーン監視は通常、サービスごとに独立したソリューションを持ちます。埋め込みポイント、呼び出しの収集、計算およびクエリ。
インジケーター監視に Prometheus を選択する主な理由:
(1) 成熟したコミュニティのサポート。Prometheus は、クラウドネイティブ環境で適切に動作する、活発なコミュニティを持つオープンソースの監視ソフトウェアです。
(2) 導入と保守が容易です。Prometheus のコアにはバイナリ ファイルが 1 つだけあり、他のサードパーティへの依存関係がないため、展開と保守が非常に便利です。
(3) Pullモデルを使用し、各監視対象からHTTP Pull方式で監視データをPullします。Pushモデルでは、Agent方式で情報を収集し、コレクタにPushする方式が一般的ですが、サービスごとにAgentで監視データ項目や監視サーバ情報を設定する必要があり、サービス数が多い場合には運用保守の難易度が高くなります。さらに、プッシュ モデルを使用すると、トラフィックのピーク時に、監視サーバーは大量のリクエストとデータを同時に受信するため、監視サーバーに多大な負荷がかかり、サービスさえも低下します。重症の場合は利用できなくなります。
(4) 強力なデータモデル。Prometheus によって収集されたモニタリング データは、組み込みの時系列データベースにインジケーターの形式で存在し、基本的なインジケーター名に加えて、カスタム ラベルもサポートされています。タグを通じて豊富なディメンションを定義して、監視データの集計と計算を容易にすることができます。
(5) 強力なクエリ言語 PromQL。PromQLにより、監視データのクエリ、集計、可視化、アラームを実現できます。
(6) 完璧なエコロジー。Prometheus は、一般的なオペレーティング システム、データベース、ミドルウェア、クラス ライブラリ、プログラミング言語へのアクセス ソリューションを提供し、カスタム モニタリング ロジックを迅速に実装できる Java/Golang/Ruby/Python およびその他の言語のクライアント SDK を提供します。
(7) 高性能。Prometheus の単一インスタンスは、数百の監視インジケーターを処理し、毎秒数十万のデータを処理でき、データ収集とクエリにおいて優れたパフォーマンスを発揮します。