gpt4 book ai didi

java - 如何使用 java sdk 查找 Google DataFlow 中每个步骤所花费的总执行时间

转载 作者:行者123 更新时间:2023-12-02 11:30:18 25 4
gpt4 key购买 nike

我正在使用 Apache-beam-2.3.0 在 Google 云平台中运行 DataFlow 作业。每个数据流作业有 5 个步骤。我想使用 java SDK 跟踪完成作业中每个步骤所需的时间

Pipeline pipeline = Pipeline.create(options);

for(int i=0; i<5; i++) {
PCollection<String> csv = pipeline.apply(transform1);
csv.apply(transform2);
}

pipeline.run().waitUntilFinish();

如何使用 PipelineResult 测量完成作业中每个步骤所需的时间

最佳答案

您可以使用queryMetricsPipelineResult查看步骤级别的指标。例如:

Pipeline p = ...;
p.apply("create1", Create.of("hello")).apply("myStepName1", ParDo.of(new SomeDoFn()));
p.apply("create2", Create.of("world")).apply("myStepName2", ParDo.of(new SomeDoFn()));
PipelineResult result = p.run();
MetricResults metrics = result.metrics();
MetricQueryResults metricResults = metrics.queryMetrics(new MetricsFilter.Builder()
.addNameFilter("my-counter")
.addStepFilter("myStepName1").addStepFilter("myStepName2")
.build());
Iterable<MetricResult<Long>> counters = metricResults.counters();
// counters should contain the value of my-counter reported from each of the ParDo
// applications.

在这种情况下,您可以定义 distribution metric 而不是计数器如上所述 here 。此中的一些示例 link

关于java - 如何使用 java sdk 查找 Google DataFlow 中每个步骤所花费的总执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49346581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com