Google の PubSub のドキュメントを調べ、Google Cloud Monitoring も調べてみましたが、トピックのキュー サイズを把握する手段が見つかりませんでした。
分析に PubSub を使用する予定なので、キュー数を監視することが重要です。これにより、サブスクライバー数をスケールアップ/スケールダウンできます。
私は何が欠けていますか?
Google の PubSub のドキュメントを調べ、Google Cloud Monitoring も調べてみましたが、トピックのキュー サイズを把握する手段が見つかりませんでした。
分析に PubSub を使用する予定なので、キュー数を監視することが重要です。これにより、サブスクライバー数をスケールアップ/スケールダウンできます。
私は何が欠けていますか?
確認したい指標は「未配信メッセージ」です。「Pub/Sub サブスクリプション」リソース タイプの下で、Google Cloud Monitoringでこの指標を監視するアラートまたはグラフを設定できるはずです。サブスクライバによってまだ確認応答されていないメッセージの数、つまりキュー サイズは、トピックごとのメトリックではなく、サブスクリプションごとのメトリックです。メトリクスの詳細についてpubsub.googleapis.com/subscription/num_undelivered_messages
は、GCP メトリクス リスト(および利用可能なすべての Pub/Sub メトリクスについてはその他) を参照してください。
@steeve の回答に基づいて更新されたバージョン。(pandas
依存関係なし)
end_time
default を使用する代わりに指定する必要があることに注意してくださいutcnow()
。
import datetime
from google.cloud import monitoring_v3
from google.cloud.monitoring_v3 import query
project = 'my-project'
sub_name = 'my-sub'
client = monitoring_v3.MetricServiceClient()
result = query.Query(
client,
project,
'pubsub.googleapis.com/subscription/num_undelivered_messages',
end_time=datetime.datetime.now(),
minutes=1,
).select_resources(subscription_id=sub_name)
for content in result:
print(content.points[0].value.int64_value)