forked from bloomberg/comdb2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmetrics.h
86 lines (64 loc) · 2.37 KB
/
metrics.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*
Copyright 2017 Bloomberg Finance L.P.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#ifndef _STATISTICS_H
#define _STATISTICS_H
typedef enum {
STATISTIC_INTEGER,
STATISTIC_DOUBLE,
STATISTIC_BOOLEAN,
STATISTIC_STRING,
/* Must always be the last. */
STATISTIC_INVALID,
} comdb2_metric_type;
typedef enum {
STATISTIC_COLLECTION_TYPE_CUMULATIVE,
STATISTIC_COLLECTION_TYPE_LATEST,
} comdb2_collection_type;
struct comdb2_metric {
/* Name of the statistic. (Mandatory) */
const char *name;
/* Description of the statistic. (Mandatory) */
const char *descr;
/* Type of the statistic. (Mandatory) */
comdb2_metric_type type;
/* Counter. (Mandatory) */
comdb2_collection_type collection_type;
/* Pointer to the variable that stores the statistic's value. (Mandatory) */
void *var;
/* Returns the value of the statistic. (Optional) */
void *(*value)(void *);
};
typedef struct comdb2_metric comdb2_metric;
/* Array of all comdb2 metrics */
extern comdb2_metric gbl_metrics[];
/* Total number of metrics. */
extern int gbl_metrics_count;
/* Refresh the values of all metrics. */
int refresh_metrics(void);
/* Initialize & reset the values of all metrics. */
int init_metrics(void);
/* Return the metric type in C-string. */
const char *metric_type(comdb2_metric_type type);
/* Return how we keep the counter for this metric (C-string) */
const char *metric_collection_type_string(comdb2_collection_type t);
extern int64_t gbl_last_checkpoint_ms;
extern int64_t gbl_total_checkpoint_ms;
extern int gbl_checkpoint_count;
extern uint32_t rcache_hits;
extern uint32_t rcache_miss;
extern time_t gbl_election_time_completed;
extern uint64_t gbl_last_election_time_ms;
extern uint64_t gbl_total_election_time_ms;
extern uint64_t gbl_election_count;
extern int64_t gbl_denied_appsock_connection_count;
#endif /* _STATISTICS_H */