BT

MeilleursAgentsでの分散タスク・キューの監視

| 作者: Hrishikesh Barua フォローする 15 人のフォロワー , 翻訳者 編集部T フォローする 1 人のフォロワー 投稿日 2018年2月26日. 推定読書時間: 3 分 |

原文(投稿日:2018/02/18)へのリンク

読者の皆様へ:ノイズを減らすための一連の機能を開発しました。関心のあるトピックについて電子メールとWeb通知を受け取ることができます新機能の詳細をご覧ください。

不動産販売者が不動産のリストを作成して、その不動産の見積もり価格を取得できるようにするウェブサイトであるMeilleursAgentsは、Celeryベースの分散タスクキューの監視方法の詳細を共有した。Python、StatsD、Bucky、Graphite、Grafanaの組み合わせによりパイプラインが形成され、タスクのライフサイクルと実行速度が監視される。

この記事では、Celeryワーカをどのように監視するかに焦点を当てる。CeleryはPythonで書かれた分散タスクキューであり、ブローカ/クライアントモデルを使用してワーカにタスクを割り当てる。分散タスクキューの監視は困難である。それは、ワーカノードが分散しており、特に複数のシステムを通過する場合、特定の要求のステータスを追跡することは困難なためである。ただし、この場合の監視は、全体の成功/失敗と実行率に関するものである。各ステージでの受信、処理の累積数も、いずれかのキューに処理速度低下があるかどうかを示す。InfoQは詳細を知るため、MeilleursAgentsのEngineering ManagerであるPierre Boeuf氏と連絡を取った。

メトリクスコレクションパイプラインはPythonエージェントで構成されており、Celeryイベントを監視し、StatsD APIを使用してStatsDにデータをプッシュする。これがBuckyに送信され、BuckyはGraphiteにデータを書き込む。Buckyは、サーバプロセスとして実行され、入力メトリックをGraphiteが理解できる形式に変換するツールである。Buckyのメトリックは、StatsDやCollectdのようなメトリクス収集ツールからのものを利用することができる。これは、受信メトリック形式がGraphiteによって認識されない場合に便利である。MeilleursAgentsにおけるGraphiteインストールでは、Whisperをバックエンドデータベースとして使用する。Boeuf氏によると、チームはGraphiteとのスケーリングの問題にまだ直面していない。

我々が遭遇した唯一のスケーリングの問題は、StatsDとGraphiteを同じサーバにホストしたことによるものでした。リクエストで高負荷となったため、現在は、メトリックをプッシュする各マシンでローカルのBuckyプロセスが動きます。

Grafanaは、フロントエンドとして使用され、メトリックをクエリする。監視には、タスク、ブローカ、およびワーカが含まれる。Boeuf氏によると、ダッシュボードはウェブとデータチームによって使われる。

画像提供 - https://medium.com/meilleursagents-engineering/how-we-monitor-asynchronous-tasks-da25728173d6?__s=6cjguhzuufdark8he4bm

diffseries(Graphiteにおいて別の時系列から1つの時系列を減算する方法)とGrafanaの色付け設定の組み合わせにより、考えられる問題を視覚的に強調する。例えば、ゼロでなければならないメトリックに対してゼロ以外の値がある場合、赤い背景にするなどがある。NewRelicGoogle Cloud Monitoring(1つは外部ツールで、もう1つは製品がホストされているクラウドの一部)は、アラート部分を処理する。さらに、NewRelicはCeleryプロセス自体を監視し、Celeryプロセスが実行されていることを確認する。GrafanaにはPagerdutyOpsGenieのようなサービスとの統合だけでなくアラートに対するサポートが組み込まれている。しかし、チームはこれらを使用していない。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

特集コンテンツ一覧

.NETの派生を理解する

Wayne Citrin 2018年7月18日 午前3時44分

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT