]>
git.proxmox.com Git - ceph.git/blob - ceph/src/mgr/DaemonHealthMetric.h
ad3ea29efd46b14916fb961759a50744a184e3e6
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
8 #include "include/denc.h"
10 enum class daemon_metric
: uint8_t {
16 static inline const char *daemon_metric_name(daemon_metric t
) {
18 case daemon_metric::SLOW_OPS
: return "SLOW_OPS";
19 case daemon_metric::PENDING_CREATING_PGS
: return "PENDING_CREATING_PGS";
20 case daemon_metric::NONE
: return "NONE";
21 default: return "???";
25 union daemon_metric_t
{
31 daemon_metric_t(uint32_t x
, uint32_t y
)
34 daemon_metric_t(uint64_t x
= 0)
39 class DaemonHealthMetric
42 DaemonHealthMetric() = default;
43 DaemonHealthMetric(daemon_metric type_
, uint64_t n
)
44 : type(type_
), value(n
)
46 DaemonHealthMetric(daemon_metric type_
, uint32_t n1
, uint32_t n2
)
47 : type(type_
), value(n1
, n2
)
49 daemon_metric
get_type() const {
52 uint64_t get_n() const {
55 uint32_t get_n1() const {
58 uint32_t get_n2() const {
61 DENC(DaemonHealthMetric
, v
, p
) {
68 friend std::ostream
& operator<<(std::ostream
& out
, const DaemonHealthMetric
& m
) {
69 return out
<< daemon_metric_name(m
.get_type()) << "("
70 << m
.get_n() << "|(" << m
.get_n1() << "," << m
.get_n2() << "))";
73 daemon_metric type
= daemon_metric::NONE
;
74 daemon_metric_t value
;
76 WRITE_CLASS_DENC(DaemonHealthMetric
)