Skip to content

Commit 5e6a541

Browse files
committed
add metrics to mysql cdc connector
1 parent 3bba342 commit 5e6a541

5 files changed

Lines changed: 73 additions & 3 deletions

File tree

tis-incr/tis-flink-cdc-mysql-plugin/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858

5959
<dependency>
6060
<groupId>org.apache.flink</groupId>
61-
<artifactId>flink-connector-mysql-cdc</artifactId>
61+
<artifactId>flink-connector-mysql-cdc-tis</artifactId>
6262
<version>${flink.cdc.version}</version>
6363
<exclusions>
6464
<exclusion>

tis-incr/tis-flink-extends/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,12 @@
123123
<groupId>com.qlangtech.tis</groupId>
124124
<artifactId>tis-base-test</artifactId>
125125
</dependency>
126+
127+
<dependency>
128+
<groupId>com.qlangtech.tis</groupId>
129+
<artifactId>tis-hadoop-rpc</artifactId>
130+
<scope>provided</scope>
131+
</dependency>
126132
<!-- <dependency>-->
127133
<!-- <groupId>com.alibaba.datax</groupId>-->
128134
<!-- <artifactId>datax-config</artifactId>-->

tis-incr/tis-flink-extends/src/main/java/com/qlangtech/plugins/incr/flink/metrics/TISPBReporter.java

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,21 @@
1818

1919
package com.qlangtech.plugins.incr.flink.metrics;
2020

21+
import com.qlangtech.tis.cloud.ITISCoordinator;
22+
import com.qlangtech.tis.realtime.yarn.rpc.MasterJob;
23+
import com.qlangtech.tis.realtime.yarn.rpc.UpdateCounterMap;
24+
import com.tis.hadoop.rpc.RpcServiceReference;
25+
import com.tis.hadoop.rpc.StatusRpcClientFactory;
2126
import org.apache.flink.metrics.CharacterFilter;
2227
import org.apache.flink.metrics.Counter;
28+
import org.apache.flink.metrics.Metric;
2329
import org.apache.flink.metrics.MetricConfig;
2430
import org.apache.flink.metrics.MetricGroup;
2531
import org.apache.flink.metrics.reporter.AbstractReporter;
2632
import org.apache.flink.metrics.reporter.Scheduled;
2733

2834
import java.util.Map;
35+
import java.util.Optional;
2936

3037
/**
3138
* https://github.com/datavane/tis/issues/397
@@ -39,9 +46,30 @@ public String filterCharacters(String s) {
3946
return CharacterFilter.NO_OP_FILTER.filterCharacters(s);
4047
}
4148

49+
private RpcServiceReference rpcService;
50+
4251
@Override
4352
public void open(MetricConfig metricConfig) {
4453

54+
try {
55+
ITISCoordinator coordinator = ITISCoordinator.create(true, Optional.empty());
56+
this.rpcService = StatusRpcClientFactory.getService(coordinator);
57+
} catch (Exception e) {
58+
throw new RuntimeException(e);
59+
}
60+
}
61+
62+
@Override
63+
public void notifyOfAddedMetric(Metric metric, String metricName, MetricGroup group) {
64+
//<jobmanager>
65+
// <job.JobName.jobID>
66+
// <task.TaskName>
67+
// <operator.OperatorName>
68+
// <subtask_index>
69+
70+
String[] scope = group.getScopeComponents();
71+
// 输出示例:["jobmanager", "job_MyJob", "task_Source", "operator_Map", "0"]
72+
super.notifyOfAddedMetric(metric, metricName, group);
4573
}
4674

4775
@Override
@@ -51,7 +79,36 @@ public void close() {
5179

5280
@Override
5381
public void report() {
82+
UpdateCounterMap upateCounter = null;
83+
84+
UpdateCounterMap updateCounterMap = new UpdateCounterMap();
85+
// updateCounterMap.setGcCounter(BasicONSListener.getGarbageCollectionCount());
86+
// updateCounterMap.setFrom(hostName);
87+
// long currentTimeInSec = ConsumeDataKeeper.getCurrentTimeInSec();
88+
// updateCounterMap.setUpdateTime(currentTimeInSec);
89+
// 汇总一个节点中所有索引的增量信息
90+
// for (IOnsListenerStatus l : incrChannels) {
91+
// TableSingleDataIndexStatus tableUpdateCounter = new TableSingleDataIndexStatus();
92+
// tableUpdateCounter.setBufferQueueRemainingCapacity(l.getBufferQueueRemainingCapacity());
93+
// tableUpdateCounter.setBufferQueueUsedSize(l.getBufferQueueUsedSize());
94+
// tableUpdateCounter.setConsumeErrorCount((int) l.getConsumeErrorCount());
95+
// tableUpdateCounter.setIgnoreRowsCount((int) l.getIgnoreRowsCount());
96+
// tableUpdateCounter.setUUID(this.indexUUID.get(l.getCollectionName()));
97+
// tableUpdateCounter.setTis30sAvgRT(((BasicONSListener) l).getTis30sAvgRT());
98+
// // 汇总一个索引中所有focus table的增量信息
99+
// for (Map.Entry<String, IIncreaseCounter> entry : l.getUpdateStatic()) {
100+
// // IncrCounter tableIncrCounter = new
101+
// // IncrCounter((int)entry.getValue().getIncreasePastLast());
102+
// // tableIncrCounter.setAccumulationCount(entry.getValue().getAccumulation());
103+
// // tableUpdateCounter.put(entry.getKey(), tableIncrCounter);
104+
// // 只记录一个消费总量和当前时间
105+
// tableUpdateCounter.put(entry.getKey(), entry.getValue().getAccumulation());
106+
// }
107+
// tableUpdateCounter.put(TABLE_CONSUME_COUNT, ((BasicONSListener) l).getTableConsumeCount());
108+
// updateCounterMap.addTableCounter(l.getCollectionName(), tableUpdateCounter);
109+
// }
54110

111+
// MasterJob masterJob = this.rpcService.reportStatus(upateCounter);
55112
for (Map.Entry<Counter, String> entry : counters.entrySet()) {
56113
Counter counter = entry.getKey();
57114
String metricName = entry.getValue();

tis-incr/tis-flink-extends/src/main/java/com/qlangtech/tis/realtime/SourceProcessFunction.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
package com.qlangtech.tis.realtime;
2020

21+
import org.apache.flink.configuration.Configuration;
2122
import org.apache.flink.streaming.api.functions.ProcessFunction;
2223
import org.apache.flink.util.Collector;
2324
import org.apache.flink.util.OutputTag;
@@ -36,7 +37,13 @@ public abstract class SourceProcessFunction<RECORD_TYPE> extends ProcessFunction
3637
public SourceProcessFunction(Map<String, OutputTag<RECORD_TYPE>> tab2OutputTag) {
3738
this.tab2OutputTag = tab2OutputTag;
3839
}
39-
40+
@Override
41+
public void open(Configuration parameters) throws Exception {
42+
// 注册或获取名为 "filteredRecords" 的计数器
43+
// this.filteredRecordsCounter = getRuntimeContext()
44+
// .getMetricGroup()
45+
// .counter(KEY_SKIP_UPDATE_BEFORE_EVENT + "Count");
46+
}
4047
/**
4148
* 在主流中为每个表打标签
4249
*

tis-incr/tis-incr-test/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444

4545
<dependency>
4646
<groupId>org.apache.flink</groupId>
47-
<artifactId>flink-connector-mysql-cdc</artifactId>
47+
<artifactId>flink-connector-mysql-cdc-tis</artifactId>
4848
<version>${flink.cdc.version}</version>
4949
</dependency>
5050

0 commit comments

Comments
 (0)