0

私はPython Dataflow SDKを使用してカスタムSourceを書き込んで、JSONデータをRESTエンドポイントから並列に読み取るようにしています。HttpIO - データフロー変換での外部リソースの消費

など。 IDの特定のセットのために、私は、データを取得する必要があるから:私は必要な主要機能は制限&率を監視している https://foo.com/api/results/1 https://foo.com/api/results/2 ... https://foo.com/api/results/{maxID}

:私は並列処理(スレッド/プロセスベースまたはasync /コルーチンを使用してのいずれか)を必要とするにもかかわらず、私は自分の仕事がAPIのエンドポイントに向かって「丁寧」にとどまることを確かめ、不本意なDDoSを効果的に回避する必要があります。 psqを使用して

は、私は、レート制限メカニズムのいくつかの種類を実装することができるはずですが、その後、私は、彼らが一緒によく働くが、Dataflow Service Monitoring

を使用して& ETAは、それは、と思われる進捗状況を監視する能力を失うだろうGoogle Cloud DataflowとGoogle Cloud Pub/Sub(Google Stackdriverモニタリングを使用)の間の監視は統一されていません。

レートリミットを実装し、ウェブベースのHTTPコンシューマワークフローを構築するにはどうすればよいですか監視?

答えて

1

現在のところ、Dataflowにはグローバルレート制限の組み込み方法はありませんが、ソースAPIを使用してこれを行うことができます。重要な概念は、ソースの各分割が最大で1つのスレッドによって処理されるため、分割ごとにローカルレート制限を実装できることです。

このソリューションはPub/Subをまったく使用しないため、Dataflow Monitoring UIのみを使用できます。パイプラインの特定のイベントに基づいてアラートを設定する場合は、this

+0

などのような処理を行うことができます。 パイプライン実行中に実行されているスレッドの数を確認する方法はありますか? –

+0

デフォルトでは、バッチDataflowは、(n1-standard-1 VMを使用している限り)ワーカー1つにつき1つのスレッドを使用します。これにより、エンドポイントからアクティブに読み取っているスレッドの数の上限が得られます – danielm

関連する問題