データフロー
Qmonus SDKで、リソースのメトリック情報を収集・加工・蓄積・転送するための機構としてCollectorとReflectorを提供しています。
Collectorは、収集ターゲットと収集項目及び収集手段を管理し、最小周期60秒の内部クロックで定期的に収集対象を決定し、指定されたプロトコルに従って事前定義された収集アイテムを収集します。
Reflectorは、収集データにマッチングする条件とアクションを管理、Collectorによって収集されたデータに対して様々な加工や一時キャッシュ、及び外部転送などのカスタムアクションを実行します。収集データに対するマッチング条件は高速ルックアップを実現するため、ツリー展開されリフレクションツリーとして管理されます。
CollectorとReflectorは、同一のRedisクラスターに属し、キュー結合することで、データの永続性を確保しながら高速なデータフローを実現します。
各種ジョブの動作について

データフロー図に記載されている各種ジョブ(Collection Manager M など)の役割を以下表にて解説します。
| Role | Job | Master/Slave | Description | 
|---|---|---|---|
|  | Collection Manager | Master | 起動パラメータ collection_trigger_inteval周期で最新のCollectionを検索し、collector.job.queueにエントリします。処理開始時に collector.job.queueが停滞している場合は、キューをクリアし、時間内に収集できなかったデータを破棄します。 | 
|  | Collection Consumer | Master/Slave | 常時 collector.job.queueを監視し、最大一括読み取りサイズ(起動パラメータcollection_bulk_size)まで読み取り、収集処理を多重実行します。収集結果は、 collector.data.queueにエントリします。 | 
|  | Reflection Consumer | Master/Slave | 常時 collector.data.queueを監視し、最大一括読み取りサイズ(起動パラメータreflection_bulk_size)まで読み取り、collection_sniffer_modeが有効な場合は、collector.data.sniffer.queueにエントリします。キャッシュがリフレクションに設定されている場合、データは時間制限付きでキャッシュされます。 組込み関数 push_metricsをreflectorスクリプトで実行すると、metrics.send.queueにエントリされます。 | 
|  | Reflection Sniffer | Master | 常時 collector.data.sniffer.queueを監視し、最大一括読み取りサイズ(起動パラメータcollection_sniffer_bulk_size)まで読み取り、 | 
|  | Reflection Sender | Master | 常時 metrics.send.queueを監視し、最大一括読み取りサイズ(起動パラメータmetrics_send_bulk_size)まで読み取り、指定されたメトリックサーバーに転送されます(現在Zabbixプロトコルのみサポート)。送信が成功した場合、送信データバックアップモードの場合は metrics.sent.queueにエントリされます。送信が失敗した場合、未送信データのバックアップモードでは、metrics.unsent.queueにエントリされます。 | 
|  | Reflection Sent Metrics Writer | Master | 常時 metrics.sent.queueを監視し、最大一括読み取りサイズ(起動パラメータmetrics_send_bulk_size)まで読み取り、送信済データテーブルに保存します。 | 
|  | Reflection Unsent Metrics Writer | Master | 常時 metrics.unsent.queueを監視し、最大一括読み取りサイズ(起動パラメータmetrics_send_bulk_size)まで読み取り、未送信データテーブルに保存します。 | 
|  | Sent Metrics Expire | Master | 送信済データテーブルを定期的に検索し、起動パラメータ metrics_sent_expire_daysを超えるレコードを削除します。 | 
|  | Unsent Metrics Expire | Master | 未送信データテーブルを定期的に検索し、起動パラメータ metrics_unsent_expire_daysを超えるレコードを削除します。 | 
データ収集を行うCollection Consumerとアクション実行を担当するReflection Consumerは、master/slaveノード上のすべてのプロセスによって駆動し、それ以外のジョブはmasterノードのリーダープロセスでのみ実行されます。
起動パラメータ
起動パラメータが影響を及ぼすコンポーネントの対応関係は次のとおりです。デフォルト値などはDocs » Appendix » チューニングパラメータを参考にしてください。

障害発生時の影響範囲について
各種プロセスの動作を阻害する障害が発生した場合の影響有無を以下の表に記載しています。
