| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | 
							- #pragma once
 
- #include <cstdint>
 
- #include <string>
 
- #include <tuple>
 
- #include <vector>
 
- #include "prometheus/detail/core_export.h"
 
- namespace prometheus {
 
- struct PROMETHEUS_CPP_CORE_EXPORT ClientMetric {
 
-   // Label
 
-   struct Label {
 
-     std::string name;
 
-     std::string value;
 
-     bool operator<(const Label& rhs) const {
 
-       return std::tie(name, value) < std::tie(rhs.name, rhs.value);
 
-     }
 
-     bool operator==(const Label& rhs) const {
 
-       return std::tie(name, value) == std::tie(rhs.name, rhs.value);
 
-     }
 
-   };
 
-   std::vector<Label> label;
 
-   // Counter
 
-   struct Counter {
 
-     double value = 0.0;
 
-   };
 
-   Counter counter;
 
-   // Gauge
 
-   struct Gauge {
 
-     double value = 0.0;
 
-   };
 
-   Gauge gauge;
 
-   // Summary
 
-   struct Quantile {
 
-     double quantile = 0.0;
 
-     double value = 0.0;
 
-   };
 
-   struct Summary {
 
-     std::uint64_t sample_count = 0;
 
-     double sample_sum = 0.0;
 
-     std::vector<Quantile> quantile;
 
-   };
 
-   Summary summary;
 
-   // Histogram
 
-   struct Bucket {
 
-     std::uint64_t cumulative_count = 0;
 
-     double upper_bound = 0.0;
 
-   };
 
-   struct Histogram {
 
-     std::uint64_t sample_count = 0;
 
-     double sample_sum = 0.0;
 
-     std::vector<Bucket> bucket;
 
-   };
 
-   Histogram histogram;
 
-   // Untyped
 
-   struct Untyped {
 
-     double value = 0;
 
-   };
 
-   Untyped untyped;
 
-   // Timestamp
 
-   std::int64_t timestamp_ms = 0;
 
- };
 
- }  // namespace prometheus
 
 
  |