mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-04-14 03:06:54 +02:00
Add auto-detection of platform integer size in prometheus
This commit is contained in:
parent
a2162c01e3
commit
6b113c8270
3 changed files with 35 additions and 3 deletions
|
@ -25,7 +25,18 @@ namespace prometheus {
|
|||
///
|
||||
/// The class is thread-safe. No concurrent call to any API of this type causes
|
||||
/// a data race.
|
||||
template <typename Value_ = uint64_t>
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#if UINTPTR_MAX == 0xffFFffFF
|
||||
// 32-bit platform
|
||||
template <typename Value_ = uint32_t>
|
||||
#elif UINTPTR_MAX == 0xffFFffFFffFFffFF
|
||||
// 64-bit platform
|
||||
template <typename Value_ = uint64_t>
|
||||
#else
|
||||
#error Unknown platform - does not look either like 32-bit or 64-bit
|
||||
#endif
|
||||
class Counter : public Metric {
|
||||
|
||||
std::atomic<Value_> value{ 0 };
|
||||
|
|
|
@ -23,7 +23,17 @@ namespace prometheus {
|
|||
///
|
||||
/// The class is thread-safe. No concurrent call to any API of this type causes
|
||||
/// a data race.
|
||||
#include <stdint.h>
|
||||
|
||||
#if UINTPTR_MAX == 0xffFFffFF
|
||||
// 32-bit
|
||||
template <typename Value_ = uint32_t>
|
||||
#elif UINTPTR_MAX == 0xffFFffFFffFFffFF
|
||||
// 64-bit
|
||||
template <typename Value_ = uint64_t>
|
||||
#else
|
||||
#error Unknown platform - does not look either like 32-bit or 64-bit
|
||||
#endif
|
||||
class Gauge : public Metric {
|
||||
|
||||
std::atomic<Value_> value { 0 };
|
||||
|
|
|
@ -15,6 +15,17 @@
|
|||
#include <memory>
|
||||
#include <functional>
|
||||
#include <stdexcept>
|
||||
#include <stdint.h>
|
||||
|
||||
#if UINTPTR_MAX == 0xffFFffFF
|
||||
// 32-bit
|
||||
typedef uint32_tmetric_size;
|
||||
#elif UINTPTR_MAX == 0xffFFffFFffFFffFF
|
||||
// 64-bit
|
||||
typedef uint64_t metric_size;
|
||||
#else
|
||||
#error Unknown platform - does not look either like 32-bit or 64-bit
|
||||
#endif
|
||||
|
||||
namespace prometheus {
|
||||
namespace simpleapi {
|
||||
|
@ -46,7 +57,7 @@ namespace prometheus {
|
|||
|
||||
public:
|
||||
|
||||
using Metric = Counter<uint64_t>;
|
||||
using Metric = Counter<metric_size>;
|
||||
using Family = Metric::Family;
|
||||
|
||||
private:
|
||||
|
@ -82,7 +93,7 @@ namespace prometheus {
|
|||
|
||||
public:
|
||||
|
||||
using Metric = Gauge<int64_t>;
|
||||
using Metric = Gauge<metric_size>;
|
||||
using Family = Metric::Family;
|
||||
|
||||
private:
|
||||
|
|
Loading…
Add table
Reference in a new issue