NATS測量士による高度モニタリング


この記事では、我々は設定されますnats-surveyor 高度監視のためにNATS servers 通しPrometheus and Grafana .

NATS測量士とは何か



NATS測量士はNATSサーバを投票しますStatz プロメテウスのデータを生成するメッセージ.これは、単一の輸出国は、任意のNATSサーバーに接続し、余分な監視コンポーネントやサイドカーを必要とせずにNATS展開の全体像を取得することができます.
これは本当に私たちは今のために生成されたデータを接続できるように強力ですPrometheus と同様に可観測プラットフォームのセットアップダッシュボードGrafana .

セットアップ


地元のスーパークラスターを設定して測量サービスを始めましょう.
ローカルクラスター
ローカルスーパークラスタを設定するにはthis repo . トポロジーです.
$ git clone https://github.com/ColinSullivan1/nats-local-supercluster.git
$ cd nats-local-supercluster
$ ./start_supercluster.sh

測量士
私たちのローカルスーパークラスタが稼働しているので、セットアップができますnats-surveyor .
今のところ、我々はそれを行うdocker and docker-compose .
注:また、インストールすることができますnats-surveyor から直接Github releases
$ git clone https://github.com/nats-io/nats-surveyor.git
$ cd nats-surveyor/docker-compose
$ ./survey.sh "nats://$(ipconfig getifaddr en0):4000" 9 ../../nats-local-supercluster/auth/nkeys/creds/myoperator/SYS/SYS.creds
[+] Running 3/0
 ⠿ Container nats-surveyor  Created                                                      0.0s
 ⠿ Container prometheus     Created                                                      0.0s
 ⠿ Container grafana        Created                                                      0.0s
Attaching to grafana, nats-surveyor, prometheus
...
使用方法通知ipconfig getifaddr en0 システムの現在のIPアドレスを取得するSYS.creds NATS測量士と.
デモデータの生成
トラフィックを生成するためにnats bench コマンド
注:以前のNATS CLIについてもっと学びましょう.
$ nats bench -s 127.0.0.1:4000 --msgs 100000000 --pub 1 --sub 1 --creds ../../nats-local-supercluster/auth/nkeys/creds/myoperator/myaccount/myuser.creds subject
16:38:53 Starting pub/sub benchmark [subject=subject, msgs=100,000,000, msgsize=128 B, pubs=1, subs=1]
16:38:53 Starting subscriber, expecting 100,000,000 messages
16:38:53 Starting publisher, publishing 100,000,000 messages
Finished     40s [==========================================] 100%
Finished     40s [==========================================] 100%

NATS Pub/Sub stats: 4,924,665 msgs/sec ~ 601.16 MB/sec
 Pub stats: 2,462,354 msgs/sec ~ 300.58 MB/sec
 Sub stats: 2,462,346 msgs/sec ~ 300.58 MB/sec
はい、私たちはちょうど同じマシン上でスーパークラスタを実行しながら、わずか40秒で1億のメッセージを転送!NATSは驚くべきパフォーマンスを持っています.
また、使用することができますnats bench with --pubsleep ダッシュボードを見ながら、バックグラウンドでリアルタイムトラフィックをシミュレートするフラグ.
$ nats bench -s 127.0.0.1:4000 --msgs 100000000 --pubsleep 1ms --pub 1 --sub 1 --creds ../../nats-local-supercluster/auth/nkeys/creds/myoperator/myaccount/myuser.creds subject
14:24:20 Starting pub/sub benchmark [subject=subject, msgs=100,000,000, msgsize=128 B, pubs=1, subs=1, js=false, pubsleep=1ms, subsleep=0s]
14:24:20 Starting subscriber, expecting 100,000,000 messages
14:24:20 Starting publisher, publishing 100,000,000 messages
Receiving    18s [--------------------------------------------------------------]   0%
Publishing   18s [--------------------------------------------------------------]   0%

モニタリング


今、我々は行くことができるはずですGrafana 走る[localhost:3000/dashboards](http://localhost:3000/dashboards) すべての利用可能な監視ダッシュボードを参照してください.
注:ログイン画面が表示される可能性がありますadmin パスワードはadminここでは、クライアント、クラスタ、NATSの概要、ネットワークの使用方法、スーパークラスタなどのような別のダッシュボードを見ることができます.

クライアント
クライアントダッシュボードでは、遅い消費者、サブスクリプション、1秒あたりの接続、および大いに多くのようなものを監視することができます.

クラスター
クラスタダッシュボードでは、帯域幅とメッセージ数秒で何クラスタを実行しているかを見ることができます.

概要
概要ダッシュボードは、ルートやゲートウェイの接続で実行されているどのように多くのサーバーとクラスタについての基本的な情報を提供します.
その非常識な300 Kのメッセージ/秒をチェックアウトし、それが開発マシンにある!

ネットワーク使用
ネットワークダッシュボードは、どのくらいのデータが送られているか、または我々のクラスタで受信されているすべてについてです.

ノードリソースの使用
このダッシュボードは個々のノードに関する情報を提供し、CPUのようなメトリックやノードのメモリ使用量を提供します.

スーパークラスター
このダッシュボードは、スーパークラスタレベルで動作し、スーパークラスタの帯域幅、接続、メッセージレートなどのメトリクスを提供し、はるかに.
これは本当に簡単に複数のスーパークラスタを監視することができます.

結論


この記事では、NATS Surveyorをセットアップします.そして、それは簡単に1つのコマンドとして我々のNATsサービスのためにセットアップ・モニタリングを簡単にします.それはあなたがスケールでNATSと分散システムを実行している場合が必要です.チェックアウトしてくださいdocs を参照してください.
私は、この記事が有用であることを望みますreachout あなたがどんな問題にでも直面するならば、私に.良い一日を!