2016-11-23 23 views
1

私のチームでは、多くのデータフローパイプライン(毎時、毎日、主にバッチジョブ)を実行しており、時々、各パイプラインの総コストを計算して、コスト。 私たちのエンジニアの1人は、通常、ジョブ監視UIのWebページ(https://console.cloud.google.com/dataflow?project= $ project-name経由)に行き、従業員数、ワーカーマシンタイプ、使用されているPDと使用メモリの総数を調べて手作業でコストを計算します各パイプラインジョブのコスト

最近、このページには、コストを計算する際の時間を節約するのに役立つ「リソースメトリック」が表示されていることに気付きました(これまでに発表された新しい価格モデルと一緒に)。

一方、毎日約60-80件のデータフロージョブを実行するため、ジョブごとのコストを計算するには時間がかかります。 「PipelineResult」を介して、またはマスターノードのログから、ジョブIDが指定されたAPIを介して、vCPU、メモリ、およびPD/SSDの合計使用率メト​​リックを取得する方法はありますか?それが今サポートされていない場合、あなたは近い将来に計画していますか? 独自のスクリプトを作成するか、ジョブIDごとにメトリックを抽出してコストを計算するかを検討する必要があるのだろうかと思っていますが、そうする必要はありません。

ありがとうございます!

答えて

3

私はデータフローチームのエンジニアの一人です。

コマンドラインツールを使用してこれらのメトリックを一覧表示し、出力文字列からメトリックを解析し、それらに基づいてコストを計算するスクリプトを作成することをおすすめします。これを多くのジョブで実行したい場合は、gcloudのベータデータフロージョブリストを使用してジョブをリストすることもできます。私たちはこれを将来的に入手しやすくするためのソリューションに取り組んでいます。

gcloud 135.0を使用していることを確認してください。0+:あなたの仕事を実行しているプロジェクトへのアクセス権を持つアカウントで

gcloud components update 

ログイン:

gcloud version 

あなたは使用してそれを更新することができない場合は

cloud auth login 

をあなたのプロジェクトを設定し

gcloud config set project <my_project_name> 

実行

gcloud beta dataflow metrics list <job_id> --project=<my_project_name> | grep Service -B 1 -A 3 

あなたの結果はそうのような構造する必要があります:

name: 
    name: Service-mem_mb_seconds 
    origin: dataflow/v1b3 
scalar: 192001 
updateTime: '2016-11-07T21:23:46.452Z' 
-- 
name: 
    name: Service-pd_ssd_gb_seconds 
    origin: dataflow/v1b3 
scalar: 0 
updateTime: '2016-11-07T21:23:46.452Z' 
-- 
name: 
    name: Service-cpu_num 
    origin: dataflow/v1b3 
scalar: 0 
updateTime: '2016-11-07T21:23:46.452Z' 
-- 
name: 
    name: Service-pd_gb 
    origin: dataflow/v1b3 
scalar: 0 
updateTime: '2016-11-07T21:23:46.452Z' 
-- 
name: 
    name: Service-pd_gb_seconds 
    origin: dataflow/v1b3 
scalar: 12500 
updateTime: '2016-11-07T21:23:46.452Z' 
-- 
name: 
    name: Service-cpu_num_seconds 
    origin: dataflow/v1b3 
scalar: 50 
updateTime: '2016-11-07T21:23:46.452Z' 
-- 
name: 
    name: Service-pd_ssd_gb 
    origin: dataflow/v1b3 
scalar: 0 
updateTime: '2016-11-07T21:23:46.452Z' 
-- 
name: 
    name: Service-mem_mb 
    origin: dataflow/v1b3 
scalar: 0 
updateTime: '2016-11-07T21:23:46.452Z' 

あなたのために関連するものは以下のとおりです。

  • サービス-cpu_num_seconds
  • メトリックを一覧にし、リソースのメトリックをgrepするためにMAND
  • Service-mem_mb_seconds
  • Service-pd_gb_seconds
  • サービス-pd_ssd_gb_seconds

注:これらのメトリック名がに、すぐに将来的に変更されます:

  • TotalVCPUUsage
  • TotalMemoryUsage
  • TotalHDDPersistentDiskUsage
  • TotalSSDPersistentDiskUsage
+0

このまさに私が必要としていたものです。最新のgcloud sdk(135.0.0)にアップグレードした後は、正常に動作します! –

+0

上記の指標を使用して費用をどのように計算しますか? – ghostcoder

関連する問題