This is an automated email from the ASF dual-hosted git repository.
mattisonchao pushed a commit to branch branch-2.9
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/branch-2.9 by this push:
new d56ae3797c1 [Branch-2.9][Cherry-pick] fix bug: fail to expose managed
ledger client stats to prometheus if bookkeeperClientExposeStatsToPrometheus is
true #16219 (#16343)
d56ae3797c1 is described below
commit d56ae3797c18b1451b58c4b05f60ed23ae321c9f
Author: Qiang Huang <[email protected]>
AuthorDate: Sat Jul 2 21:45:46 2022 +0800
[Branch-2.9][Cherry-pick] fix bug: fail to expose managed ledger client
stats to prometheus if bookkeeperClientExposeStatsToPrometheus is true #16219
(#16343)
---
.../pulsar/broker/ManagedLedgerClientFactory.java | 5 ++--
.../pulsar/broker/stats/PrometheusMetricsTest.java | 32 ++++++++++++++++++++++
2 files changed, 35 insertions(+), 2 deletions(-)
diff --git
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/ManagedLedgerClientFactory.java
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/ManagedLedgerClientFactory.java
index 6a9aa8877e2..174933b9cbd 100644
---
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/ManagedLedgerClientFactory.java
+++
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/ManagedLedgerClientFactory.java
@@ -84,7 +84,8 @@ public class ManagedLedgerClientFactory implements
ManagedLedgerStorage {
statsProvider.start(configuration);
StatsLogger statsLogger =
statsProvider.getStatsLogger("pulsar_managedLedger_client");
- this.defaultBkClient = bookkeeperProvider.create(conf, zkClient,
eventLoopGroup, Optional.empty(), null);
+ this.defaultBkClient =
+ bookkeeperProvider.create(conf, zkClient, eventLoopGroup,
Optional.empty(), null, statsLogger);
BookkeeperFactoryForCustomEnsemblePlacementPolicy bkFactory = (
EnsemblePlacementPolicyConfig ensemblePlacementPolicyConfig)
-> {
@@ -95,7 +96,7 @@ public class ManagedLedgerClientFactory implements
ManagedLedgerStorage {
try {
return bookkeeperProvider.create(conf, zkClient,
eventLoopGroup,
Optional.ofNullable(ensemblePlacementPolicyConfig.getPolicyClass()),
- ensemblePlacementPolicyConfig.getProperties());
+ ensemblePlacementPolicyConfig.getProperties(),
statsLogger);
} catch (Exception e) {
log.error("Failed to initialize bk-client for policy
{}, properties {}",
ensemblePlacementPolicyConfig.getPolicyClass(),
diff --git
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/stats/PrometheusMetricsTest.java
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/stats/PrometheusMetricsTest.java
index 1304d5c7ae2..eae58b67c6a 100644
---
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/stats/PrometheusMetricsTest.java
+++
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/stats/PrometheusMetricsTest.java
@@ -922,6 +922,38 @@ public class PrometheusMetricsTest extends BrokerTestBase {
cm = (List<Metric>)
metrics.get("pulsar_managedLedger_client_bookkeeper_ml_workers_task_execution_count");
assertEquals(cm.size(), 0);
+
+ cm = (List<Metric>) metrics.get(
+ keyNameBySubstrings(metrics, "pulsar_managedLedger_client",
"bookkeeper_ml_scheduler_total_tasks"));
+ assertEquals(cm.size(), 1);
+ assertEquals(cm.get(0).tags.get("cluster"), "test");
+
+ cm = (List<Metric>) metrics.get(keyNameBySubstrings(metrics,
"pulsar_managedLedger_client",
+ "bookkeeper_ml_scheduler_task_execution_sum"));
+ assertEquals(cm.size(), 2);
+ assertEquals(cm.get(0).tags.get("cluster"), "test");
+
+ cm = (List<Metric>) metrics.get(
+ keyNameBySubstrings(metrics,
+ "pulsar_managedLedger_client",
"bookkeeper_ml_scheduler_queue"));
+ assertEquals(cm.size(), 1);
+ assertEquals(cm.get(0).tags.get("cluster"), "test");
+ }
+
+ private static String keyNameBySubstrings(Multimap<String, Metric>
metrics, String... substrings) {
+ for (String key : metrics.keys()) {
+ boolean found = true;
+ for (String s : substrings) {
+ if (!key.contains(s)) {
+ found = false;
+ break;
+ }
+ }
+ if (found) {
+ return key;
+ }
+ }
+ return null;
}
@Test