[ 
https://issues.apache.org/jira/browse/BEAM-6165?focusedWorklogId=171461&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-171461
 ]

ASF GitHub Bot logged work on BEAM-6165:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 03/Dec/18 04:45
            Start Date: 03/Dec/18 04:45
    Worklog Time Spent: 10m 
      Work Description: ryan-williams commented on a change in pull request 
#7183: [BEAM-6165] send metrics to Flink in portable Flink runner
URL: https://github.com/apache/beam/pull/7183#discussion_r238143711
 
 

 ##########
 File path: sdks/python/apache_beam/runners/portability/flink_runner_test.py
 ##########
 @@ -59,25 +65,63 @@
   environment_type = known_args.environment_type.lower()
   environment_config = (
       known_args.environment_config if known_args.environment_config else None)
+  test = known_args.test
 
   # This is defined here to only be run when we invoke this file explicitly.
   class FlinkRunnerTest(portable_runner_test.PortableRunnerTest):
     _use_grpc = True
     _use_subprocesses = True
 
+    conf_dir = None
+
+    @classmethod
+    def tearDownClass(cls):
+      if cls.conf_dir and exists(cls.conf_dir):
+        logging.info("removing conf dir: %s" % cls.conf_dir)
+        rmtree(cls.conf_dir)
+      super(FlinkRunnerTest, cls).tearDownClass()
+
+    @classmethod
+    def _create_conf_dir(cls):
+      """Create (and save a static reference to) a "conf dir", used to provide 
metrics configs and
+       verify metrics output
+
+       It gets cleaned up when the suite is done executing"""
+
+      if hasattr(cls, 'conf_dir'):
+        cls.conf_dir = mkdtemp(prefix='flinktest-conf')
+
+        # path for a FileReporter to write metrics to
+        cls.test_metrics_path = path.join(cls.conf_dir, 'test-metrics.txt')
+
+        # path to write Flink configuration to
+        conf_path = path.join(cls.conf_dir, 'flink-conf.yaml')
+        with open(conf_path, 'w') as f:
+          f.write(linesep.join([
+            'metrics.reporters: test',
+            'metrics.reporter.test.class: 
org.apache.beam.runners.flink.metrics.FileReporter',
+            'metrics.reporter.test.file: %s' % cls.test_metrics_path
+          ]))
+
     @classmethod
     def _subprocess_command(cls, port):
-      tmp_dir = tempfile.mkdtemp(prefix='flinktest')
+      # will be cleaned up at the end of this method, and recreated and used 
by the job server
+      tmp_dir = mkdtemp(prefix='flinktest')
+
+      cls._create_conf_dir()
+
       try:
         return [
             'java',
             '-jar', flink_job_server_jar,
+            '--flink-master-url', '[local]',
 
 Review comment:
   I think we are agreeing that this change is OK: this suite is only run (or 
intended to run) on local Flink clusters. 
   
   I hadn't seen any extant part of it that would fail on a remote cluster, but 
you are saying such a part exists, IIUC.
   
   I agree that my metric reporter would not work "as is" if this suite was run 
on a remote Flink cluster.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on 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: 171461)
    Time Spent: 1h 20m  (was: 1h 10m)

> Send metrics to Flink in portable Flink runner
> ----------------------------------------------
>
>                 Key: BEAM-6165
>                 URL: https://issues.apache.org/jira/browse/BEAM-6165
>             Project: Beam
>          Issue Type: Improvement
>          Components: runner-flink
>    Affects Versions: 2.8.0
>            Reporter: Ryan Williams
>            Assignee: Ryan Williams
>            Priority: Major
>              Labels: metrics, portability, portability-flink
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> Metrics are sent from the fn harness to runnerĀ in the Python SDK (and likely 
> Java soon), but the portable Flink runner doesn't pass them on to Flink, 
> which it should, so that users can see them in e.g. the Flink UI or via any 
> Flink metrics reporters.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to