[
https://issues.apache.org/jira/browse/BEAM-4775?focusedWorklogId=281239&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-281239
]
ASF GitHub Bot logged work on BEAM-4775:
----------------------------------------
Author: ASF GitHub Bot
Created on: 23/Jul/19 19:13
Start Date: 23/Jul/19 19:13
Worklog Time Spent: 10m
Work Description: lgajowy commented on pull request #9020: [BEAM-4775]
Support returning metrics from job service
URL: https://github.com/apache/beam/pull/9020#discussion_r306487472
##########
File path:
runners/java-fn-execution/src/test/java/org/apache/beam/runners/fnexecution/jobsubmission/JobInvocationTest.java
##########
@@ -130,6 +128,40 @@ public void testNoCancellationWhenDone() throws Exception
{
assertThat(pipelineResult.cancelLatch.getCount(), is(1L));
}
+ @Test(timeout = 10_000)
+ public void testReturnsMetricsFromJobInvocationAfterSuccess() throws
Exception {
+ JobApi.MetricResults expectedMonitoringInfos =
JobApi.MetricResults.newBuilder().build();
+ TestPipelineResult result =
+ new TestPipelineResult(PipelineResult.State.DONE,
expectedMonitoringInfos);
+
+ jobInvocation.start();
+ runner.setResult(result);
+
+ awaitJobState(jobInvocation, JobApi.JobState.Enum.DONE);
+
+ assertThat(
+ jobInvocation.getMetrics(),
+ allOf(is(notNullValue()), is(sameInstance(result.portableMetrics()))));
+ }
+
+ @Test(timeout = 10_000)
+ public void testReturnsMetricsFromJobInvocationAfterCancellation() throws
Exception {
+ JobApi.MetricResults expectedMonitoringInfos =
JobApi.MetricResults.newBuilder().build();
+ TestPipelineResult result =
+ new TestPipelineResult(PipelineResult.State.RUNNING,
expectedMonitoringInfos);
+
+ jobInvocation.start();
+ runner.setResult(result);
+ awaitJobState(jobInvocation, JobApi.JobState.Enum.RUNNING);
+
+ jobInvocation.cancel();
+ awaitJobState(jobInvocation, JobApi.JobState.Enum.CANCELLED);
+
+ assertThat(
Review comment:
@ibzib, @angoenka I thought I fixed this test with [the recent
commit](https://github.com/apache/beam/pull/9020/commits/ebe630f668d0e83d4445f13402d1a53e35307a6b)
but it turns out I didn't.
However, on the second thought, I think I cannot meet this assertion
requirements in this test - if [`onFailure()`
callback](https://github.com/apache/beam/blob/de8c987f0cf5749d4913379f0fc3901dc2825192/runners/java-fn-execution/src/main/java/org/apache/beam/runners/fnexecution/jobsubmission/JobInvocation.java#L167)
gets invoked in `JobInvocation.cancel()`, the metrics cannot be set because we
do not have access to pipelineOptions in `onFailure(Throwable throwable)`. I
currently suspect that this is the reason why the test is flaky (still
investigating).
I think I have to test this differently.
Could you share your opinion about this?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 281239)
Time Spent: 47h 20m (was: 47h 10m)
> JobService should support returning metrics
> -------------------------------------------
>
> Key: BEAM-4775
> URL: https://issues.apache.org/jira/browse/BEAM-4775
> Project: Beam
> Issue Type: Bug
> Components: beam-model
> Reporter: Eugene Kirpichov
> Assignee: Lukasz Gajowy
> Priority: Major
> Time Spent: 47h 20m
> Remaining Estimate: 0h
>
> Design doc: [https://s.apache.org/get-metrics-api].
> Further discussion is ongoing on [this
> doc|https://docs.google.com/document/d/1m83TsFvJbOlcLfXVXprQm1B7vUakhbLZMzuRrOHWnTg/edit?ts=5c826bb4#heading=h.faqan9rjc6dm].
> We want to report job metrics back to the portability harness from the runner
> harness, for displaying to users.
> h1. Relevant PRs in flight:
> h2. Ready for Review:
> * [#8022|https://github.com/apache/beam/pull/8022]: correct the Job RPC
> protos from [#8018|https://github.com/apache/beam/pull/8018].
> h2. Iterating / Discussing:
> * [#7971|https://github.com/apache/beam/pull/7971]: Flink portable metrics:
> get ptransform from MonitoringInfo, not stage name
> ** this is a simpler, Flink-specific PR that is basically duplicated inside
> each of the following two, so may be worth trying to merge in first
> * #[7915|https://github.com/apache/beam/pull/7915]: use MonitoringInfo data
> model in Java SDK metrics
> * [#7868|https://github.com/apache/beam/pull/7868]: MonitoringInfo URN tweaks
> h2. Merged
> * [#8018|https://github.com/apache/beam/pull/8018]: add job metrics RPC
> protos
> * [#7867|https://github.com/apache/beam/pull/7867]: key MetricResult by a
> MetricKey
> * [#7938|https://github.com/apache/beam/pull/7938]: move MonitoringInfo
> protos to model/pipeline module
> * [#7883|https://github.com/apache/beam/pull/7883]: Add
> MetricQueryResults.allMetrics() helper
> * [#7866|https://github.com/apache/beam/pull/7866]: move function helpers
> from fn-harness to sdks/java/core
> * [#7890|https://github.com/apache/beam/pull/7890]: consolidate MetricResult
> implementations
> h2. Closed
> * [#7934|https://github.com/apache/beam/pull/7934]: job metrics RPC + SDK
> support
> * [#7876|https://github.com/apache/beam/pull/7876]: Clean up metric protos;
> support integer distributions, gauges
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)