lizhiqiang created FLINK-37340:
----------------------------------

             Summary: Flink Flink supports pushing metrics immediately at the 
end of the task.
                 Key: FLINK-37340
                 URL: https://issues.apache.org/jira/browse/FLINK-37340
             Project: Flink
          Issue Type: Improvement
          Components: Runtime / Metrics
    Affects Versions: 2.0-preview
            Reporter: lizhiqiang
             Fix For: 2.1.0


In Flink's stream computing, metrics should be pushed once at the end of the 
task. But now the metrics are relying on timed scheduling to configure them, 
which may lead to inaccurate metrics at the end of the task.

scheduler interval config : 
{code:java}
metrics.reporter.xxx.interval: 60 SECONDS {code}
If A is set to be particularly large, then the metric may be more imprecise

 

Flink's batch computing can't utilize the flink-metric plugin to push metrics 
to third-party systems. It may be necessary to make some changes to Flink's 
metrics process.

Some of my thoughts are whether to aggregate metrics to JobManager through 
heartbeat detection.

 

 
{code:java}
//代码占位符
org.apache.flink.runtime.metrics.MetricRegistryImpl#MetricRegistryImpl(org.apache.flink.runtime.metrics.MetricRegistryConfiguration,
 java.util.Collection<org.apache.flink.runtime.metrics.ReporterSetup>, 
java.util.concurrent.ScheduledExecutorService)
executor.scheduleWithFixedDelay(
new ReporterTask((Scheduled) reporterInstance),
period.toMillis(),
period.toMillis(),
TimeUnit.MILLISECONDS); {code}
 

 

 
{code:java}
//代码占位符
@Override
public void report() {
    try {
     //Push every 60 seconds         
        pushGateway.push(registry, jobName, groupingKey);
    } catch (Exception e) {
        log.warn(
                "Failed to push metrics to PushGateway with jobName {}, 
groupingKey {}.",
                jobName,
                groupingKey,
                e);
    }
} {code}
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to