DUICUO

Apache Kafka と SigNoz を使用したアプリケーション可観測性の実装

[[397257]]

SigNoz は、開発者が最小限の労力で迅速に観測可能性の目標を達成できるように支援します。

SigNozはオープンソースのアプリケーション可観測性プラットフォームです。ReactとGoで記述されたSigNozは、開発者が最小限の労力で可能な限り迅速に可観測性の目標を達成できるように、ゼロから設計されています。

この記事では、アーキテクチャ、Kubernetes ベースのデプロイメント、SigNoz の一般的な使用方法など、ソフトウェアについて詳しく紹介します。

SigNozアーキテクチャ

SigNozは複数のコンポーネントをバンドルすることで、学習と使用が容易な、スケーラブルで疎結合なシステムを構築します。重要なコンポーネントには以下が含まれます。

  • オープンテレメトリコレクター
  • アパッチカフカ
  • アパッチドルイド

OpenTelemetry Collectorは、データの追跡や測定のためのデータ収集エンジンです。これにより、SigNozはJaeger、Zipkin、OpenConsensusといった業界標準の形式でデータを取得できます。収集されたデータはApache Kafkaに転送されます。

SigNozはKafkaとストリームプロセッサを用いて、大量の観測可能なデータをリアルタイムで取得します。取得したデータはApache Druidに送られ、短期および長期のSQL分析に適した保存が可能です。

データがフラット化され、Druid に保存されると、SigNoz のクエリサービスがクエリを実行し、データを SigNoz React フロントエンドに渡します。フロントエンドはユーザー向けに美しいチャートを作成し、観察可能なデータを視覚化します。

SigNozアーキテクチャ

SigNozをインストールする

SigNoz のコンポーネントには、Apache Kafka と Druid が含まれます。これらのコンポーネントは疎結合されており、連携して動作することでエンドユーザーにシームレスなエクスペリエンスを提供します。これらのコンポーネントを考慮すると、SigNoz を Kubernetes または Docker Compose(ローカルテスト用)上のマイクロサービス構成として実行するのが最適です。

この例では、Kubernetes Helm Chart ベースのデプロイメントを使用して、Kubernetes に SigNoz をインストールする方法を説明します。前提条件として、Kubernetes クラスターが必要です。Kubernetes クラスターがない場合は、MiniKube や Kind などのツールを使用して、ローカルマシンにテストクラスターを作成できます。このマシンが機能するには、少なくとも 4GB の空き容量が必要です。

使用可能なクラスターを作成し、それと通信するように kubectl を構成したら、次のコマンドを実行します。

  1. $ git clone https : //github.com/SigNoz/signoz.git && cd signoz
  2. $ helm dependency update deploy / kubernetes / platform
  3. $ kubectl create ns platform
  4. $ helm - n platform install signoz deploy / kubernetes / platform
  5. $ kubectl - n platform apply - Rf deploy / kubernetes / jobs
  6. $ kubectl - n platform apply - f deploy / kubernetes / otel - collector

これにより、SigNozと関連コンテナがクラスターにインストールされます。ユーザーインターフェース(UI)にアクセスするには、 kubectl port-forwardコマンドを実行してください。例:

  1. $ kubectl - n platform port - forward svc / signoz - frontend 3000 : 3000

これで、ローカル ブラウザを使用してhttp://localhost:3000で SigNoz ダッシュボードにアクセスできるようになります。

可観測性プラットフォームが稼働したら、可視化と追跡のために観測可能なデータを生成するアプリケーションが必要です。この例では、Jaegarチームが開発したサンプルアプリケーションであるHotRODを使用できます。

インストールするには、次のコマンドを実行してください:

  1. $ kubectl create ns sample - application
  2. $ kubectl - n sample - application apply - Rf sample - apps / hotrod /

機能を見る

これで、適切なメーターがインストールされ、デモ環境内で実行されているアプリケーションが完成しました。SigNozダッシュボードでメトリクスとトラッキングデータを確認してください。ダッシュボードのホームページにログインすると、SigNozにメーターデータを送信しているすべての設定済みアプリケーションのリストが表示されます。

SigNozダッシュボード

索引

特定のアプリケーションをクリックすると、そのアプリケーションのホームページに移動します。メトリクスページには、アプリケーションのレイテンシ、平均スループット、エラー率、最もアクセスされたインターフェースなど、過去15分間(この数値は設定可能)の情報が表示されます。これにより、アプリケーションのステータスを大まかに把握できます。エラー、レイテンシの急上昇、負荷のピークなどがあれば、すぐに確認できます。

SigNozのメトリクス

追跡

トラッキングページには、各リクエストの詳細情報(概要)が時系列で表示されます。関心のあるリクエスト(例:予想よりも時間がかかっているリクエストなど)を見つけたら、トラッカーをクリックして、そのリクエスト内で発生した各アクションの個別の時間範囲を確認できます。詳細モードでは、各リクエストを詳細に調査できます。

SigNozでのトレース

SigNozでのトレース

使用リソースマネージャー

ほとんどの指標とトラッキングデータは非常に有用ですが、その有効期間は限られています。時間の経過とともに、ほとんどの場合、データの有用性は低下します。つまり、データの適切な保持期間を計画することが重要です。そうしないと、ストレージに余計な費用がかかってしまうことになります。Usage Explorerでは、時間、日、週単位でデータ取得の概要を確認できます。

SigNoz 使用状況エクスプローラー

メーターを追加

これまで、HotRODアプリケーションのメトリクスとトラックを確認してきました。理想的には、アプリケーションの監視を有効にして、SigNozに観測可能なデータを送信できるようにする必要があります。SigNozのウェブサイトにあるメーターの概要を参照してください。

SigNozは、ベンダーに依存しない計測ライブラリであるOpenTelemetryを、計測器の設定の主な方法としてサポートしています。OpenTelemetryは様々な言語で計測ライブラリを提供し、自動計測と手動計測の両方をサポートしています。

もっと詳しく知る

SigNozは、開発者がアプリケーションの測定と追跡を迅速に開始できるよう支援します。詳細については、ドキュメントを参照したり、コミュニティに参加したり、GitHubのソースコードにアクセスしたりしてご確認ください。