API 経由でメトリクスを取得するために単純な curl を使用しています。問題は、出力が引数の量で固定されているが、出力内の位置が固定されていないことです。
ツールはこれのみを受け入れるため、「単純な」正規表現を使用してこれを行う必要があります。
/"name":"(.*)".*?"memory":(\d+).*?"consumer_utilisation":(\w+|\d+).*?"messages_unacknowledged":(\d+).*?"messages_ready":(\d+).*?"messages":(\d+)/s
それはうまくいきます:
{"name":"queue1","memory":89048,"consumer_utilisation":null,"messages_unacknowledged":0,"messages_ready":0,"messages":0}
ただし、出力順序が変更されると、一致しなくなります。
{"name":"queue2","consumer_utilisation":null,"messages_unacknowledged":0,"messages_ready":0,"messages":0,"memory":21944}
{"name":"queue3","consumer_utilisation":null,"messages_unacknowledged":0,"messages_ready":0,"memory":21944,"messages":0}
文字列がどの位置に表示されるかわからないため、一致する文字列の相対的な定義が必要です。その合計で 9 つの異なるキュー メトリック グループ。