def metrics(self): if not self._metrics: job_metrics_response = self._job_service.GetJobMetrics( beam_job_api_pb2.GetJobMetricsRequest(job_id=self._job_id)) self._metrics = PortableMetrics(job_metrics_response) return self._metrics
def test_get_job_metrics(self, http_mock): response = { "user-task-accumulators": [{ "name": "__metricscontainers", "type": "MetricsAccumulator", "value": "{\"metrics\": {\"attempted\": [{\"urn\": " "\"metric_urn\", \"type\": \"beam:metrics:sum_int64:v1\", " "\"payload\": \"AA==\", \"labels\": " "{\"PTRANSFORM\": \"ptransform_id\"}}]}}" }] } http_mock.get('http://flink/v1/jobs/flink_job_id/accumulators', json=response) options = pipeline_options.FlinkRunnerOptions() job_server = flink_uber_jar_job_server.FlinkUberJarJobServer( 'http://flink', options) job = flink_uber_jar_job_server.FlinkBeamJob('http://flink', None, 'job_id', 'job_name', None, options) job._flink_job_id = 'flink_job_id' job_server._jobs['job_id'] = job request = beam_job_api_pb2.GetJobMetricsRequest(job_id='job_id') expected = beam_job_api_pb2.GetJobMetricsResponse( metrics=beam_job_api_pb2.MetricResults(attempted=[{ "urn": "metric_urn", "type": "beam:metrics:sum_int64:v1", "payload": b'\000', "labels": { "PTRANSFORM": "ptransform_id" } }])) actual = job_server.GetJobMetrics(request) self.assertEqual(actual, expected)