apache / apache/rocketmq-connect

support connector-developer-defined statsitem by adding add interfaces in ConnectStatsManager

Open
#245 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
141
Forks
120
PR merge metrics
No merged PRs in 30d

Description

adding initAdditionalItems(List additionalItems);incAdditionalItem(String additionalItem, String key, int incValue, int incTimes);removeAdditionalItem(String additionalItem, String key) three methods in ConnectorStatsManager to support connector developers record user-defined metrics.
StatsItemSet support delValue in version 4.7.1, so upgrade rocketmq.version to 4.7.1

ConnectStatsManager.java
```java
public void initAdditionalItems(List additionalItems) {
for (String additionalItem : additionalItems) {
if (this.statsTable.containsKey(additionalItem)) {
log.warn("Already exists statsItem : " + additionalItem + ", just skip");
continue;
}
this.statsTable.put(additionalItem, new StatsItemSet(additionalItem, scheduledExecutorService, log));
}
}

public void incAdditionalItem(String additionalItem, String key, int incValue, int incTimes) {
StatsItemSet statsItemSet = this.statsTable.get(additionalItem);
if (statsItemSet != null) {
statsItemSet.addValue(key, incValue, incTimes);
}
}

public void removeAdditionalItem(String additionalItem, String key) {
StatsItemSet statsItemSet = this.statsTable.get(additionalItem);
if (statsItemSet != null) {
statsItemSet.delValue(key);
}
}
```

Contributor guide

Open the contributing guide

Research direction

Start with ConnectStatsManager.java and inspect how its existing StatsItemSet entries are initialized and updated. Check the StatsItemSet API available after upgrading rocketmq.version to 4.7.1, then verify that the three additional-item interfaces support initialization, increments, and removal as described.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
observability
Issue type
Feature
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.