dragosvictor commented on code in PR #22931:
URL: https://github.com/apache/pulsar/pull/22931#discussion_r1644879996
##########
pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/BrokerOperabilityMetrics.java:
##########
@@ -18,39 +18,80 @@
*/
package org.apache.pulsar.broker.stats;
+import io.opentelemetry.api.metrics.ObservableLongCounter;
import io.prometheus.client.Counter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.LongAdder;
+import org.apache.pulsar.broker.PulsarService;
import org.apache.pulsar.common.stats.Metrics;
+import
org.apache.pulsar.opentelemetry.OpenTelemetryAttributes.ConnectionCreateStatus;
+import
org.apache.pulsar.opentelemetry.OpenTelemetryAttributes.ConnectionStatus;
/**
*/
-public class BrokerOperabilityMetrics {
+public class BrokerOperabilityMetrics implements AutoCloseable {
private static final Counter TOPIC_LOAD_FAILED =
Counter.build("topic_load_failed", "-").register();
private final List<Metrics> metricsList;
private final String localCluster;
private final DimensionStats topicLoadStats;
private final String brokerName;
private final LongAdder connectionTotalCreatedCount;
- private final LongAdder connectionCreateSuccessCount;
- private final LongAdder connectionCreateFailCount;
private final LongAdder connectionTotalClosedCount;
private final LongAdder connectionActive;
- public BrokerOperabilityMetrics(String localCluster, String brokerName) {
+ private final LongAdder connectionCreateSuccessCount;
+ private final LongAdder connectionCreateFailCount;
+
+ public static final String CONNECTION_COUNTER_METRIC_NAME =
"pulsar.broker.connection.count";
+ private final ObservableLongCounter connectionCounter;
+
+ public static final String CONNECTION_CREATE_COUNTER_METRIC_NAME =
+ "pulsar.broker.connection.create.operation.count";
+ private final ObservableLongCounter connectionCreateCounter;
+
+ public BrokerOperabilityMetrics(PulsarService pulsar) {
this.metricsList = new ArrayList<>();
- this.localCluster = localCluster;
+ this.localCluster = pulsar.getConfiguration().getClusterName();
this.topicLoadStats = new DimensionStats("pulsar_topic_load_times",
60);
- this.brokerName = brokerName;
+ this.brokerName = pulsar.getAdvertisedAddress();
Review Comment:
Note that the old Prometheus metrics are not changed here, this is just a
refactoring.
Regarding the broker ID: agreed. OpenTelemetry automatically includes host
information as attributes (hostname, for instance). It can be used most of the
time as a proxy for the broker ID, but would not work in the unlikely situation
that multiple instances are running on the same machine.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]