web-dev-qa-db-ja.com

Google PubSub-トピック内のメッセージのカウント

私はGoogleのPubSubのドキュメントを調べ、Google Cloud Monitoringも調べてみましたが、私のトピックでキューサイズが何であるかを理解する手段が見つかりませんでした。

分析にPubSubを使用することを計画しているので、キューカウントを監視することが重要なので、サブスクライバーカウントを拡大/縮小できます。

何が欠けていますか?

18
Gil Adirim

確認したい指標は「配信されなかったメッセージ」です。 「Pub/Sub Subscription」リソースタイプの下にある Google Cloud Monitoring でこのメトリックを監視するアラートまたはチャートを設定できるはずです。サブスクライバーによってまだ確認されていないメッセージの数、つまりキューサイズは、トピックごとのメトリックではなく、サブスクリプションごとのメトリックです。指標の詳細については、 GCP指標リストpubsub.googleapis.com/subscription/num_undelivered_messagesを参照してください(および利用可能なすべてのPub/Sub指標のその他の情報)。

20

あなたの質問への答えは「いいえ」です。これらのカウントを表示するPubSubの機能はありません。あなたがそれをしなければならない方法は、Stackdriverを使用してログイベントを監視することです(それを見つけるのにも少し時間がかかりました)。

これに対する口語的な答えは、次のステップバイステップです。

  1. GCloud管理コンソールから次の場所に移動します:Monitoring

navigate from gcloud admin console

  1. 別のStackdriverコンソールで新しいウィンドウが開きます
  2. Stackdriverで移動:Dashboards> Create Dashboard

create new dashboard within stackdriver

  1. ダッシュボード画面の右上にあるAdd Chartボタンをクリックします

enter image description here

  1. 入力ボックスにnum_undelivered_messagesと入力し、次にSAVEと入力します

auto suggested metrics to add chart

8
Mike S.

これを実現するためのプログラム的な方法を検討している場合、これが役立つ場合があります。

from google.cloud import monitoring_v3
from google.cloud.monitoring_v3 import query

project = "my-project"
client = monitoring_v3.MetricServiceClient()
result = query.Query(
         client,
         project,
         'pubsub.googleapis.com/subscription/num_undelivered_messages', 
         minutes=60).as_dataframe()

print(result['pubsub_subscription'][project]['subscription_name'][0])
0
Steeve