[ 
https://issues.apache.org/jira/browse/FLINK-9703?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16541286#comment-16541286
 ] 

ASF GitHub Bot commented on FLINK-9703:
---------------------------------------

Github user rsltrifork commented on a diff in the pull request:

    https://github.com/apache/flink/pull/6288#discussion_r201943310
  
    --- Diff: 
flink-mesos/src/main/java/org/apache/flink/mesos/runtime/clusterframework/LaunchableMesosWorker.java
 ---
    @@ -332,6 +334,22 @@ public String toString() {
                return taskInfo.build();
        }
     
    +   /**
    +    * Get port keys representing the TM's configured endpoints. This 
includes mandatory TM endpoints such as
    +    * data and rpc as well as optionally configured endpoints for services 
such as prometheus reporter
    +    *
    +    * @return A deterministicly ordered Set of port keys to expose from 
the TM container
    +    */
    +   private Set<String> getPortKeys() {
    +           LinkedHashSet<String> tmPortKeys = new 
LinkedHashSet<>(Arrays.asList(TM_PORT_KEYS));
    --- End diff --
    
    > So what we are doing is scanning the taskmanager config for port config 
options, gather the keys, and later these are overridden by mesos with some 
port?
    
    Yes.
    
    > In case of the PrometheusReporter this would imply that prometheus is 
always started after 
    > the TM, as we can't determine the port beforehand. Is that correct?
    
    No. Prometheus supports dynamicly reloading it's scrape configuration. So 
the other part of the monitoring solution is our Prometheus script, which 
periodically querries mesos to maintain an up-to-date list of active TM 
prometheus ports to scrape from. We're working with Mesosphere to open source 
this Prometheus scripting in DC/OS, but before that makes sense, we need Flink 
to let Mesos assign the scrape port to the TM container - hence this PR, which 
I hope will be quickly merged.


> Mesos does not expose TM Prometheus port
> ----------------------------------------
>
>                 Key: FLINK-9703
>                 URL: https://issues.apache.org/jira/browse/FLINK-9703
>             Project: Flink
>          Issue Type: Bug
>          Components: Mesos
>            Reporter: Rune Skou Larsen
>            Priority: Major
>              Labels: pull-request-available
>
> LaunchableMesosWorker makes Mesos expose these ports for a Task Manager:
> {{private static final String[] TM_PORT_KEYS = {}}
> {{ "taskmanager.rpc.port",}}
> {{ "taskmanager.data.port"};}}
> But when running Prometheus Exporter on a TM, another port needs to be 
> exposed to make Flink's Prometheos endpoint externally scrapable by the 
> Prometheus server. By default this is port 9249, but it is configurable 
> according to:
> [https://ci.apache.org/projects/flink/flink-docs-release-1.6/monitoring/metrics.html#prometheus-orgapacheflinkmetricsprometheusprometheusreporter]
>  
> My plan is to make a PR, that just adds another config option for mesos, to 
> enable custom ports to be exposed in the provisioned TMs.
> I considered carrying parts of the Metrics config into the Mesos code to 
> automatically map metrics ports in mesos. But making such a "shortcut" 
> between Flink's metrics and mesos modules would probably need some sort of 
> integration testing, so I prefer the simple solution of just adding another 
> Mesos config option. But comments are welcome.



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

Reply via email to