NVIDIA DeepStream SDK API Reference

8.0 Release
sources/includes/prometheus/client_metric.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <cstdint>
4 #include <string>
5 #include <tuple>
6 #include <vector>
7 
8 #include "prometheus/detail/core_export.h"
9 
10 namespace prometheus {
11 
13  // Label
14 
15  struct Label {
16  std::string name;
17  std::string value;
18 
19  friend bool operator<(const Label& lhs, const Label& rhs) {
20  return std::tie(lhs.name, lhs.value) < std::tie(rhs.name, rhs.value);
21  }
22 
23  friend bool operator==(const Label& lhs, const Label& rhs) {
24  return std::tie(lhs.name, lhs.value) == std::tie(rhs.name, rhs.value);
25  }
26  };
27  std::vector<Label> label;
28 
29  // Counter
30 
31  struct Counter {
32  double value = 0.0;
33  };
35 
36  // Gauge
37 
38  struct Gauge {
39  double value = 0.0;
40  };
42 
43  // Info
44 
45  struct Info {
46  double value = 1.0;
47  };
49 
50  // Summary
51 
52  struct Quantile {
53  double quantile = 0.0;
54  double value = 0.0;
55  };
56 
57  struct Summary {
58  std::uint64_t sample_count = 0;
59  double sample_sum = 0.0;
60  std::vector<Quantile> quantile;
61  };
63 
64  // Histogram
65 
66  struct Bucket {
67  std::uint64_t cumulative_count = 0;
68  double upper_bound = 0.0;
69  };
70 
71  struct Histogram {
72  std::uint64_t sample_count = 0;
73  double sample_sum = 0.0;
74  std::vector<Bucket> bucket;
75  };
77 
78  // Untyped
79 
80  struct Untyped {
81  double value = 0;
82  };
84 
85  // Timestamp
86 
87  std::int64_t timestamp_ms = 0;
88 };
89 
90 } // namespace prometheus
prometheus::ClientMetric::Quantile
Definition: sources/includes/prometheus/client_metric.h:52
prometheus::ClientMetric::counter
Counter counter
Definition: sources/includes/prometheus/client_metric.h:34
prometheus::ClientMetric::Label::name
std::string name
Definition: sources/includes/prometheus/client_metric.h:16
prometheus::ClientMetric::info
Info info
Definition: sources/includes/prometheus/client_metric.h:48
prometheus::ClientMetric::Histogram
Definition: sources/includes/prometheus/client_metric.h:71
prometheus::ClientMetric::Label::operator==
friend bool operator==(const Label &lhs, const Label &rhs)
Definition: sources/includes/prometheus/client_metric.h:23
prometheus::ClientMetric::Label::operator<
friend bool operator<(const Label &lhs, const Label &rhs)
Definition: sources/includes/prometheus/client_metric.h:19
prometheus::ClientMetric::Counter
Definition: sources/includes/prometheus/client_metric.h:31
prometheus::ClientMetric
Definition: sources/includes/prometheus/client_metric.h:12
prometheus::ClientMetric::Label
Definition: sources/includes/prometheus/client_metric.h:15
prometheus::ClientMetric::histogram
Histogram histogram
Definition: sources/includes/prometheus/client_metric.h:76
prometheus::ClientMetric::gauge
Gauge gauge
Definition: sources/includes/prometheus/client_metric.h:41
prometheus::ClientMetric::Label::value
std::string value
Definition: sources/includes/prometheus/client_metric.h:17
prometheus::ClientMetric::untyped
Untyped untyped
Definition: sources/includes/prometheus/client_metric.h:83
prometheus::ClientMetric::Bucket
Definition: sources/includes/prometheus/client_metric.h:66
prometheus::ClientMetric::summary
Summary summary
Definition: sources/includes/prometheus/client_metric.h:62
prometheus::ClientMetric::Gauge
Definition: sources/includes/prometheus/client_metric.h:38
prometheus::ClientMetric::Histogram::bucket
std::vector< Bucket > bucket
Definition: sources/includes/prometheus/client_metric.h:74
prometheus::ClientMetric::Info
Definition: sources/includes/prometheus/client_metric.h:45
prometheus::ClientMetric::Untyped
Definition: sources/includes/prometheus/client_metric.h:80
prometheus::ClientMetric::Summary::quantile
std::vector< Quantile > quantile
Definition: sources/includes/prometheus/client_metric.h:60
prometheus::ClientMetric::label
std::vector< Label > label
Definition: sources/includes/prometheus/client_metric.h:27
prometheus::ClientMetric::Summary
Definition: sources/includes/prometheus/client_metric.h:57
prometheus
Definition: sources/includes/prometheus/check_names.h:8
PROMETHEUS_CPP_CORE_EXPORT
#define PROMETHEUS_CPP_CORE_EXPORT
Definition: sources/includes/prometheus/detail/core_export.h:15