]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/jaegertracing/opentelemetry-cpp/third_party/prometheus-cpp/pull/tests/integration/sample_server_multi.cc
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / third_party / prometheus-cpp / pull / tests / integration / sample_server_multi.cc
diff --git a/ceph/src/jaegertracing/opentelemetry-cpp/third_party/prometheus-cpp/pull/tests/integration/sample_server_multi.cc b/ceph/src/jaegertracing/opentelemetry-cpp/third_party/prometheus-cpp/pull/tests/integration/sample_server_multi.cc
new file mode 100644 (file)
index 0000000..801f1b9
--- /dev/null
@@ -0,0 +1,54 @@
+#include <chrono>
+#include <memory>
+#include <thread>
+
+#include "prometheus/client_metric.h"
+#include "prometheus/counter.h"
+#include "prometheus/exposer.h"
+#include "prometheus/family.h"
+#include "prometheus/registry.h"
+
+int main() {
+  using namespace prometheus;
+
+  // create an http server running on port 8080
+  Exposer exposer{"127.0.0.1:8080", 1};
+
+  auto registryA = std::make_shared<Registry>();
+
+  // add a new counter family to the registry (families combine values with the
+  // same name, but distinct label dimensions)
+  auto& counter_familyA = BuildCounter()
+                              .Name("time_running_seconds_total")
+                              .Help("How many seconds is this server running?")
+                              .Register(*registryA);
+
+  // add a counter to the metric family
+  auto& seconds_counterA = counter_familyA.Add(
+      {{"another_label", "bar"}, {"yet_another_label", "baz"}});
+
+  // ask the exposer to scrape registryA on incoming scrapes for "/metricsA"
+  exposer.RegisterCollectable(registryA, "/metricsA");
+
+  auto registryB = std::make_shared<Registry>();
+
+  auto& counter_familyB =
+      BuildCounter()
+          .Name("other_time_running_seconds_total")
+          .Help("How many seconds has something else been running?")
+          .Register(*registryB);
+
+  auto& seconds_counterB = counter_familyB.Add(
+      {{"another_label", "not_bar"}, {"yet_another_label", "not_baz"}});
+
+  // This endpoint exposes registryB.
+  exposer.RegisterCollectable(registryB, "/metricsB");
+
+  for (;;) {
+    std::this_thread::sleep_for(std::chrono::seconds(1));
+    // increment the counters by one (second)
+    seconds_counterA.Increment(1.0);
+    seconds_counterB.Increment(1.5);
+  }
+  return 0;
+}