我們正在紗線上運行我們的生產流作業中運行自定義指標,如米,計量器。
通過以下步驟:
附加依賴
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-metrics-dropwizard</artifactId>
<version>${flink.version}</version>
</dependency>
我們使用1.2.1版
然後加計MyMapper類的pom.xml。
import org.apache.flink.api.common.JobExecutionResult;
import org.apache.flink.api.common.functions.RichMapFunction;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.dropwizard.metrics.DropwizardMeterWrapper;
import org.apache.flink.metrics.Meter;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
public class Test {
public static void main(String[] args) throws Exception {
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env
.readTextFile("/home/LizardKing/Documents/Power/Prova.csv")
.map(new MyMapper())
.writeAsCsv("/home/LizardKing/Results.csv");
JobExecutionResult res = env.execute();
}
private static class MyMapper extends RichMapFunction<String, Object> {
private transient Meter meter;
@Override
public void open(Configuration parameters) throws Exception {
super.open(parameters);
this.meter = getRuntimeContext()
.getMetricGroup()
.meter("myMeter", new DropwizardMeterWrapper(new com.codahale.metrics.Meter()));
}
@Override
public Object map(String value) throws Exception {
this.meter.markEvent();
return value;
}
}
}
希望這會有所幫助。
你到底在幹什麼?對於吞吐量,您可以在您的「MyMapper」函數中註冊一個「Meter」,就像您提供的鏈接所示。您可以觀看Flink網絡儀表板中的實時指標。 – us2012
如果我按照指示執行myMeter類,我嘗試了一些東西,但它不起作用。如果我使用DropWizard儀表並嘗試在獨立模式下運行它,即使我已將依賴項包含在pom.xml中,我也有一個錯誤(java.lang.NoClassDefFoundError:com/codahale/metrics/Meter )。 – LizardKing