This is an automated email from the ASF dual-hosted git repository.
mxsm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/eventmesh.git
The following commit(s) were added to refs/heads/master by this push:
new 715423c68 [ISSUE #4201] optimize the code of metrics (#4563)
715423c68 is described below
commit 715423c68ff3df1c3a065080c4ffd6707efe891e
Author: G-XD <[email protected]>
AuthorDate: Fri Nov 17 23:07:30 2023 +0800
[ISSUE #4201] optimize the code of metrics (#4563)
---
.../prometheus/metrics/PrometheusGrpcExporter.java | 29 ++-
.../prometheus/metrics/PrometheusHttpExporter.java | 213 +++++++--------------
.../prometheus/metrics/PrometheusTcpExporter.java | 64 +++----
.../prometheus/utils/PrometheusExporterUtils.java | 3 +-
4 files changed, 109 insertions(+), 200 deletions(-)
diff --git
a/eventmesh-metrics-plugin/eventmesh-metrics-prometheus/src/main/java/org/apache/eventmesh/metrics/prometheus/metrics/PrometheusGrpcExporter.java
b/eventmesh-metrics-plugin/eventmesh-metrics-prometheus/src/main/java/org/apache/eventmesh/metrics/prometheus/metrics/PrometheusGrpcExporter.java
index 7838753fb..6d26197a2 100644
---
a/eventmesh-metrics-plugin/eventmesh-metrics-prometheus/src/main/java/org/apache/eventmesh/metrics/prometheus/metrics/PrometheusGrpcExporter.java
+++
b/eventmesh-metrics-plugin/eventmesh-metrics-prometheus/src/main/java/org/apache/eventmesh/metrics/prometheus/metrics/PrometheusGrpcExporter.java
@@ -24,13 +24,14 @@ import static
org.apache.eventmesh.metrics.prometheus.utils.PrometheusExporterUt
import org.apache.eventmesh.metrics.api.model.GrpcSummaryMetrics;
-import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;
import io.opentelemetry.api.metrics.GlobalMeterProvider;
import io.opentelemetry.api.metrics.Meter;
+import com.google.common.collect.ImmutableMap;
+
import lombok.experimental.UtilityClass;
@UtilityClass
@@ -39,23 +40,15 @@ public class PrometheusGrpcExporter {
/**
* Map structure : [metric name, description of name] -> the method of get
corresponding metric.
*/
- private Map<String[], Function<GrpcSummaryMetrics, Number>> paramPairs;
-
- static {
- paramPairs = new HashMap<String[], Function<GrpcSummaryMetrics,
Number>>() {
-
- {
- put(join("sub.topic.num", "get sub topic num."),
GrpcSummaryMetrics::getSubscribeTopicNum);
- put(join("retry.queue.size", "get size of retry queue."),
GrpcSummaryMetrics::getRetrySize);
-
- put(join("server.tps", "get size of retry queue."),
GrpcSummaryMetrics::getClient2EventMeshTPS);
- put(join("client.tps", "get tps of eventMesh to mq."),
GrpcSummaryMetrics::getEventMesh2ClientTPS);
-
- put(join("mq.provider.tps", "get tps of eventMesh to mq."),
GrpcSummaryMetrics::getEventMesh2MqTPS);
- put(join("mq.consumer.tps", "get tps of eventMesh to mq."),
GrpcSummaryMetrics::getMq2EventMeshTPS);
- }
- };
- }
+ private final Map<String[], Function<GrpcSummaryMetrics, Number>>
paramPairs = ImmutableMap
+ .<String[], Function<GrpcSummaryMetrics, Number>>builder()
+ .put(join("sub.topic.num", "get sub topic num."),
GrpcSummaryMetrics::getSubscribeTopicNum)
+ .put(join("retry.queue.size", "get size of retry queue."),
GrpcSummaryMetrics::getRetrySize)
+ .put(join("server.tps", "get size of retry queue."),
GrpcSummaryMetrics::getClient2EventMeshTPS)
+ .put(join("client.tps", "get tps of eventMesh to mq."),
GrpcSummaryMetrics::getEventMesh2ClientTPS)
+ .put(join("mq.provider.tps", "get tps of eventMesh to mq."),
GrpcSummaryMetrics::getEventMesh2MqTPS)
+ .put(join("mq.consumer.tps", "get tps of eventMesh to mq."),
GrpcSummaryMetrics::getMq2EventMeshTPS)
+ .build();
public static void export(final String meterName, final GrpcSummaryMetrics
summaryMetrics) {
final Meter meter = GlobalMeterProvider.getMeter(meterName);
diff --git
a/eventmesh-metrics-plugin/eventmesh-metrics-prometheus/src/main/java/org/apache/eventmesh/metrics/prometheus/metrics/PrometheusHttpExporter.java
b/eventmesh-metrics-plugin/eventmesh-metrics-prometheus/src/main/java/org/apache/eventmesh/metrics/prometheus/metrics/PrometheusHttpExporter.java
index bb14e321d..fc5a65417 100644
---
a/eventmesh-metrics-plugin/eventmesh-metrics-prometheus/src/main/java/org/apache/eventmesh/metrics/prometheus/metrics/PrometheusHttpExporter.java
+++
b/eventmesh-metrics-plugin/eventmesh-metrics-prometheus/src/main/java/org/apache/eventmesh/metrics/prometheus/metrics/PrometheusHttpExporter.java
@@ -23,13 +23,14 @@ import static
org.apache.eventmesh.metrics.prometheus.utils.PrometheusExporterUt
import org.apache.eventmesh.metrics.api.model.HttpSummaryMetrics;
-import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;
import io.opentelemetry.api.metrics.GlobalMeterProvider;
import io.opentelemetry.api.metrics.Meter;
+import com.google.common.collect.ImmutableMap;
+
import lombok.experimental.UtilityClass;
@UtilityClass
@@ -38,148 +39,82 @@ public class PrometheusHttpExporter {
/**
* Map structure : [metric name, description of name] -> the method of get
corresponding metric.
*/
- private Map<String[], Function<HttpSummaryMetrics, Number>> paramPairs;
-
- static {
- paramPairs = new HashMap<String[], Function<HttpSummaryMetrics,
Number>>() {
-
- {
- // maxHTTPTPS
- put(join("eventmesh.http.request.tps.max", "max TPS of HTTP."),
- HttpSummaryMetrics::maxHTTPTPS);
-
- // avgHTTPTPS
- put(join("eventmesh.http.request.tps.avg", "avg TPS of HTTP."),
- HttpSummaryMetrics::avgHTTPTPS);
-
- // maxHTTPCost
- put(join("eventmesh.http.request.cost.max", "max cost of
HTTP."),
- HttpSummaryMetrics::maxHTTPCost);
-
- // avgHTTPCost
- put(join("eventmesh.http.request.cost.avg", "avg cost of
HTTP."),
- HttpSummaryMetrics::avgHTTPCost);
-
- // avgHTTPBodyDecodeCost
- put(join("eventmesh.http.body.decode.cost.avg", "avg body
decode cost of HTTP."),
- HttpSummaryMetrics::avgHTTPBodyDecodeCost);
-
- // httpDiscard
- put(join("eventmesh.http.request.discard.num", "http request
discard num."),
- HttpSummaryMetrics::getHttpDiscard);
-
- // maxBatchSendMsgTPS
- put(join("eventmesh.batch.send.message.tps.max", "max of batch
send message tps."),
- HttpSummaryMetrics::maxSendBatchMsgTPS);
-
- // avgBatchSendMsgTPS
- put(join("eventmesh.batch.send.message.tps.avg", "avg of batch
send message tps."),
- HttpSummaryMetrics::avgSendBatchMsgTPS);
-
- // sum
- put(join("eventmesh.batch.send.message.num", "sum of batch
send message number."),
- HttpSummaryMetrics::getSendBatchMsgNumSum);
-
- // sumFail
- put(join("eventmesh.batch.send.message.fail.num", "sum of
batch send message fail message number."),
- HttpSummaryMetrics::getSendBatchMsgFailNumSum);
-
- // sumFailRate
- put(join("eventmesh.batch.send.message.fail.rate", "send batch
message fail rate."),
- HttpSummaryMetrics::getSendBatchMsgFailRate);
- // discard
- put(join("eventmesh.batch.send.message.discard.num", "sum of
send batch message discard number."),
- HttpSummaryMetrics::getSendBatchMsgDiscardNumSum);
-
- // maxSendMsgTPS
- put(join("eventmesh.send.message.tps.max", "max of send
message tps."),
- HttpSummaryMetrics::maxSendMsgTPS);
-
- // avgSendMsgTPS
- put(join("eventmesh.send.message.tps.avg", "avg of send
message tps."),
- HttpSummaryMetrics::avgSendMsgTPS);
-
- // sum
- put(join("eventmesh.send.message.num", "sum of send message
number."),
- HttpSummaryMetrics::getSendMsgNumSum);
-
- // sumFail
- put(join("eventmesh.send.message.fail.num", "sum of send
message fail number."),
- HttpSummaryMetrics::getSendMsgFailNumSum);
-
- // sumFailRate
- put(join("eventmesh.send.message.fail.rate", "send message
fail rate."),
- HttpSummaryMetrics::getSendMsgFailRate);
-
- // replyMsg
- put(join("eventmesh.reply.message.num", "sum of reply message
number."),
- HttpSummaryMetrics::getReplyMsgNumSum);
-
- // replyFail
- put(join("eventmesh.reply.message.fail.num", "sum of reply
message fail number."),
- HttpSummaryMetrics::getReplyMsgFailNumSum);
-
- // maxPushMsgTPS
- put(join("eventmesh.push.message.tps.max", "max of push
message tps."),
- HttpSummaryMetrics::maxPushMsgTPS);
-
- // avgPushMsgTPS
- put(join("eventmesh.push.message.tps.avg", "avg of push
message tps."),
- HttpSummaryMetrics::avgPushMsgTPS);
-
- // sum
- put(join("eventmesh.http.push.message.num", "sum of http push
message number."),
- HttpSummaryMetrics::getHttpPushMsgNumSum);
- // sumFail
- put(join("eventmesh.http.push.message.fail.num", "sum of http
push message fail number."),
- HttpSummaryMetrics::getHttpPushFailNumSum);
-
- // sumFailRate
- put(join("eventmesh.http.push.message.fail.rate", "http push
message fail rate."),
- HttpSummaryMetrics::getHttpPushMsgFailRate);
-
- // maxClientLatency
- put(join("eventmesh.http.push.latency.max", "max of http push
latency."),
- HttpSummaryMetrics::maxHTTPPushLatency);
-
- // avgClientLatency
- put(join("eventmesh.http.push.latency.avg", "avg of http push
latency."),
- HttpSummaryMetrics::avgHTTPPushLatency);
- // batchMsgQ
- put(join("eventmesh.batch.message.queue.size", "size of batch
message queue."),
- HttpSummaryMetrics::getBatchMsgQueueSize);
-
- // sendMsgQ
- put(join("eventmesh.send.message.queue.size", "size of send
message queue."),
- HttpSummaryMetrics::getSendMsgQueueSize);
-
- // pushMsgQ
- put(join("eventmesh.push.message.queue.size", "size of push
message queue."),
- HttpSummaryMetrics::getPushMsgQueueSize);
-
- // httpRetryQ
- put(join("eventmesh.http.retry.queue.size", "size of http
retry queue."),
- HttpSummaryMetrics::getHttpRetryQueueSize);
-
- // batchAvgSend2MQCost
- put(join("eventmesh.batch.send.message.cost.avg", "avg of
batch send message cost."),
- HttpSummaryMetrics::avgBatchSendMsgCost);
-
- // avgSend2MQCost
- put(join("eventmesh.send.message.cost.avg", "avg of send
message cost."),
- HttpSummaryMetrics::avgSendMsgCost);
-
- // avgReply2MQCost
- put(join("eventmesh.reply.message.cost.avg", "avg of reply
message cost."),
- HttpSummaryMetrics::avgReplyMsgCost);
- }
- };
- }
+ private final Map<String[], Function<HttpSummaryMetrics, Number>>
paramPairs = ImmutableMap
+ .<String[], Function<HttpSummaryMetrics, Number>>builder()
+ // maxHTTPTPS
+ .put(join("eventmesh.http.request.tps.max", "max TPS of HTTP."),
HttpSummaryMetrics::maxHTTPTPS)
+ // avgHTTPTPS
+ .put(join("eventmesh.http.request.tps.avg", "avg TPS of HTTP."),
HttpSummaryMetrics::avgHTTPTPS)
+ // maxHTTPCost
+ .put(join("eventmesh.http.request.cost.max", "max cost of HTTP."),
HttpSummaryMetrics::maxHTTPCost)
+ // avgHTTPCost
+ .put(join("eventmesh.http.request.cost.avg", "avg cost of HTTP."),
HttpSummaryMetrics::avgHTTPCost)
+ // avgHTTPBodyDecodeCost
+ .put(join("eventmesh.http.body.decode.cost.avg", "avg body decode
cost of HTTP."), HttpSummaryMetrics::avgHTTPBodyDecodeCost)
+ // httpDiscard
+ .put(join("eventmesh.http.request.discard.num", "http request
discard num."), HttpSummaryMetrics::getHttpDiscard)
+ // maxBatchSendMsgTPS
+ .put(join("eventmesh.batch.send.message.tps.max", "max of batch
send message tps."), HttpSummaryMetrics::maxSendBatchMsgTPS)
+ // avgBatchSendMsgTPS
+ .put(join("eventmesh.batch.send.message.tps.avg", "avg of batch
send message tps."), HttpSummaryMetrics::avgSendBatchMsgTPS)
+ // sum
+ .put(join("eventmesh.batch.send.message.num", "sum of batch send
message number."), HttpSummaryMetrics::getSendBatchMsgNumSum)
+ // sumFail
+ .put(join("eventmesh.batch.send.message.fail.num", "sum of batch
send message fail message number."),
+ HttpSummaryMetrics::getSendBatchMsgFailNumSum)
+ // sumFailRate
+ .put(join("eventmesh.batch.send.message.fail.rate", "send batch
message fail rate."), HttpSummaryMetrics::getSendBatchMsgFailRate)
+ // discard
+ .put(join("eventmesh.batch.send.message.discard.num", "sum of send
batch message discard number."),
+ HttpSummaryMetrics::getSendBatchMsgDiscardNumSum)
+ // maxSendMsgTPS
+ .put(join("eventmesh.send.message.tps.max", "max of send message
tps."), HttpSummaryMetrics::maxSendMsgTPS)
+ // avgSendMsgTPS
+ .put(join("eventmesh.send.message.tps.avg", "avg of send message
tps."), HttpSummaryMetrics::avgSendMsgTPS)
+ // sum
+ .put(join("eventmesh.send.message.num", "sum of send message
number."), HttpSummaryMetrics::getSendMsgNumSum)
+ // sumFail
+ .put(join("eventmesh.send.message.fail.num", "sum of send message
fail number."), HttpSummaryMetrics::getSendMsgFailNumSum)
+ // sumFailRate
+ .put(join("eventmesh.send.message.fail.rate", "send message fail
rate."), HttpSummaryMetrics::getSendMsgFailRate)
+ // replyMsg
+ .put(join("eventmesh.reply.message.num", "sum of reply message
number."), HttpSummaryMetrics::getReplyMsgNumSum)
+ // replyFail
+ .put(join("eventmesh.reply.message.fail.num", "sum of reply
message fail number."), HttpSummaryMetrics::getReplyMsgFailNumSum)
+ // maxPushMsgTPS
+ .put(join("eventmesh.push.message.tps.max", "max of push message
tps."), HttpSummaryMetrics::maxPushMsgTPS)
+ // avgPushMsgTPS
+ .put(join("eventmesh.push.message.tps.avg", "avg of push message
tps."), HttpSummaryMetrics::avgPushMsgTPS)
+ // sum
+ .put(join("eventmesh.http.push.message.num", "sum of http push
message number."), HttpSummaryMetrics::getHttpPushMsgNumSum)
+ // sumFail
+ .put(join("eventmesh.http.push.message.fail.num", "sum of http
push message fail number."), HttpSummaryMetrics::getHttpPushFailNumSum)
+ // sumFailRate
+ .put(join("eventmesh.http.push.message.fail.rate", "http push
message fail rate."), HttpSummaryMetrics::getHttpPushMsgFailRate)
+ // maxClientLatency
+ .put(join("eventmesh.http.push.latency.max", "max of http push
latency."), HttpSummaryMetrics::maxHTTPPushLatency)
+ // avgClientLatency
+ .put(join("eventmesh.http.push.latency.avg", "avg of http push
latency."), HttpSummaryMetrics::avgHTTPPushLatency)
+ // batchMsgQ
+ .put(join("eventmesh.batch.message.queue.size", "size of batch
message queue."), HttpSummaryMetrics::getBatchMsgQueueSize)
+ // sendMsgQ
+ .put(join("eventmesh.send.message.queue.size", "size of send
message queue."), HttpSummaryMetrics::getSendMsgQueueSize)
+ // pushMsgQ
+ .put(join("eventmesh.push.message.queue.size", "size of push
message queue."), HttpSummaryMetrics::getPushMsgQueueSize)
+ // httpRetryQ
+ .put(join("eventmesh.http.retry.queue.size", "size of http retry
queue."), HttpSummaryMetrics::getHttpRetryQueueSize)
+ // batchAvgSend2MQCost
+ .put(join("eventmesh.batch.send.message.cost.avg", "avg of batch
send message cost."), HttpSummaryMetrics::avgBatchSendMsgCost)
+ // avgSend2MQCost
+ .put(join("eventmesh.send.message.cost.avg", "avg of send message
cost."), HttpSummaryMetrics::avgSendMsgCost)
+ // avgReply2MQCost
+ .put(join("eventmesh.reply.message.cost.avg", "avg of reply
message cost."), HttpSummaryMetrics::avgReplyMsgCost)
+ .build();
public void export(String name, HttpSummaryMetrics summaryMetrics) {
Meter meter = GlobalMeterProvider.getMeter(name);
paramPairs.forEach((metricInfo, getMetric) -> observeOfValue(meter,
metricInfo[0], metricInfo[1],
- HTTP, summaryMetrics, getMetric, HttpSummaryMetrics.class));
+ HTTP, summaryMetrics, getMetric, HttpSummaryMetrics.class));
}
}
diff --git
a/eventmesh-metrics-plugin/eventmesh-metrics-prometheus/src/main/java/org/apache/eventmesh/metrics/prometheus/metrics/PrometheusTcpExporter.java
b/eventmesh-metrics-plugin/eventmesh-metrics-prometheus/src/main/java/org/apache/eventmesh/metrics/prometheus/metrics/PrometheusTcpExporter.java
index d615566e1..a8eff9de4 100644
---
a/eventmesh-metrics-plugin/eventmesh-metrics-prometheus/src/main/java/org/apache/eventmesh/metrics/prometheus/metrics/PrometheusTcpExporter.java
+++
b/eventmesh-metrics-plugin/eventmesh-metrics-prometheus/src/main/java/org/apache/eventmesh/metrics/prometheus/metrics/PrometheusTcpExporter.java
@@ -24,13 +24,14 @@ import static
org.apache.eventmesh.metrics.prometheus.utils.PrometheusExporterUt
import org.apache.eventmesh.metrics.api.model.TcpSummaryMetrics;
-import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;
import io.opentelemetry.api.metrics.GlobalMeterProvider;
import io.opentelemetry.api.metrics.Meter;
+import com.google.common.collect.ImmutableMap;
+
import lombok.experimental.UtilityClass;
@UtilityClass
@@ -39,49 +40,30 @@ public class PrometheusTcpExporter {
/**
* Map structure : [metric name, description of name] -> the method of get
corresponding metric.
*/
- private Map<String[], Function<TcpSummaryMetrics, Number>> paramPairs;
-
- static {
- paramPairs = new HashMap<String[], Function<TcpSummaryMetrics,
Number>>() {
-
- {
- // retryQueueSize
- put(join("retry.queue.size", "get size of retry queue."),
- TcpSummaryMetrics::getRetrySize);
-
- // client2eventMeshTPS
- put(join("server.tps", "get tps of client to eventMesh."),
- TcpSummaryMetrics::getClient2eventMeshTPS);
-
- // eventMesh2mqTPS
- put(join("mq.provider.tps", "get tps of eventMesh to mq."),
- TcpSummaryMetrics::getEventMesh2mqTPS);
-
- // mq2eventMeshTPS
- put(join("mq.consumer.tps", "get tps of mq to eventMesh."),
- TcpSummaryMetrics::getMq2eventMeshTPS);
-
- // eventMesh2clientTPS
- put(join("client.tps", "get tps of eventMesh to client."),
- TcpSummaryMetrics::getEventMesh2clientTPS);
-
- // allTPS
- put(join("all.tps", "get all TPS."),
TcpSummaryMetrics::getAllTPS);
-
- // EventMeshTcpConnectionHandler.connections
- put(join("connection.num",
"EventMeshTcpConnectionHandler.connections."),
- TcpSummaryMetrics::getAllConnections);
-
- // subTopicNum
- put(join("sub.topic.num", "get sub topic num."),
TcpSummaryMetrics::getSubTopicNum);
- }
- };
- }
+ private final Map<String[], Function<TcpSummaryMetrics, Number>>
paramPairs = ImmutableMap
+ .<String[], Function<TcpSummaryMetrics, Number>>builder()
+ // retryQueueSize
+ .put(join("retry.queue.size", "get size of retry queue."),
TcpSummaryMetrics::getRetrySize)
+ // client2eventMeshTPS
+ .put(join("server.tps", "get tps of client to eventMesh."),
TcpSummaryMetrics::getClient2eventMeshTPS)
+ // eventMesh2mqTPS
+ .put(join("mq.provider.tps", "get tps of eventMesh to mq."),
TcpSummaryMetrics::getEventMesh2mqTPS)
+ // mq2eventMeshTPS
+ .put(join("mq.consumer.tps", "get tps of mq to eventMesh."),
TcpSummaryMetrics::getMq2eventMeshTPS)
+ // eventMesh2clientTPS
+ .put(join("client.tps", "get tps of eventMesh to client."),
TcpSummaryMetrics::getEventMesh2clientTPS)
+ // allTPS
+ .put(join("all.tps", "get all TPS."), TcpSummaryMetrics::getAllTPS)
+ // EventMeshTcpConnectionHandler.connections
+ .put(join("connection.num",
"EventMeshTcpConnectionHandler.connections."),
TcpSummaryMetrics::getAllConnections)
+ // subTopicNum
+ .put(join("sub.topic.num", "get sub topic num."),
TcpSummaryMetrics::getSubTopicNum)
+ .build();
public void export(final String meterName, final TcpSummaryMetrics
summaryMetrics) {
final Meter meter = GlobalMeterProvider.getMeter(meterName);
paramPairs.forEach(
- (metricInfo, getMetric) -> observeOfValue(meter,
METRICS_TCP_PREFIX + metricInfo[0], metricInfo[1],
- TCP, summaryMetrics, getMetric, TcpSummaryMetrics.class));
+ (metricInfo, getMetric) -> observeOfValue(meter,
METRICS_TCP_PREFIX + metricInfo[0], metricInfo[1],
+ TCP, summaryMetrics, getMetric,
TcpSummaryMetrics.class));
}
}
diff --git
a/eventmesh-metrics-plugin/eventmesh-metrics-prometheus/src/main/java/org/apache/eventmesh/metrics/prometheus/utils/PrometheusExporterUtils.java
b/eventmesh-metrics-plugin/eventmesh-metrics-prometheus/src/main/java/org/apache/eventmesh/metrics/prometheus/utils/PrometheusExporterUtils.java
index 3f43c908c..7f17606ad 100644
---
a/eventmesh-metrics-plugin/eventmesh-metrics-prometheus/src/main/java/org/apache/eventmesh/metrics/prometheus/utils/PrometheusExporterUtils.java
+++
b/eventmesh-metrics-plugin/eventmesh-metrics-prometheus/src/main/java/org/apache/eventmesh/metrics/prometheus/utils/PrometheusExporterUtils.java
@@ -70,8 +70,7 @@ public class PrometheusExporterUtils {
* @return
*/
public static String[] join(String metricName, String desc) {
- String[] array = {metricName, desc};
- return array;
+ return new String[] {metricName, desc};
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]