master
c 104 lines 3.79 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 #define PULSE_INTERNALS 1
4 #include "pulse-string.h"
5
6 void pulse_string_do(bool extended) {
7 if(!extended) return;
8
9 static RRDSET *st_ops = NULL, *st_entries = NULL, *st_mem = NULL;
10 static RRDDIM *rd_ops_inserts = NULL, *rd_ops_deletes = NULL;
11 static RRDDIM *rd_entries_entries = NULL;
12 static RRDDIM *rd_mem = NULL;
13 static RRDDIM *rd_mem_idx = NULL;
14 #ifdef NETDATA_INTERNAL_CHECKS
15 static RRDDIM *rd_entries_refs = NULL, *rd_ops_releases = NULL, *rd_ops_duplications = NULL, *rd_ops_searches = NULL;
16 #endif
17
18 size_t inserts, deletes, searches, entries, references, memory, memory_index, duplications, releases;
19
20 string_statistics(&inserts, &deletes, &searches, &entries, &references, &memory, &memory_index, &duplications, &releases);
21
22 if (unlikely(!st_ops)) {
23 st_ops = rrdset_create_localhost(
24 "netdata"
25 , "strings_ops"
26 , NULL
27 , "strings"
28 , NULL
29 , "Strings operations"
30 , "ops/s"
31 , "netdata"
32 , "pulse"
33 , 910000
34 , localhost->rrd_update_every
35 , RRDSET_TYPE_LINE);
36
37 rd_ops_inserts = rrddim_add(st_ops, "inserts", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
38 rd_ops_deletes = rrddim_add(st_ops, "deletes", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
39 #ifdef NETDATA_INTERNAL_CHECKS
40 rd_ops_searches = rrddim_add(st_ops, "searches", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
41 rd_ops_duplications = rrddim_add(st_ops, "duplications", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
42 rd_ops_releases = rrddim_add(st_ops, "releases", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
43 #endif
44 }
45
46 rrddim_set_by_pointer(st_ops, rd_ops_inserts, (collected_number)inserts);
47 rrddim_set_by_pointer(st_ops, rd_ops_deletes, (collected_number)deletes);
48 #ifdef NETDATA_INTERNAL_CHECKS
49 rrddim_set_by_pointer(st_ops, rd_ops_searches, (collected_number)searches);
50 rrddim_set_by_pointer(st_ops, rd_ops_duplications, (collected_number)duplications);
51 rrddim_set_by_pointer(st_ops, rd_ops_releases, (collected_number)releases);
52 #endif
53 rrdset_done(st_ops);
54
55 if (unlikely(!st_entries)) {
56 st_entries = rrdset_create_localhost(
57 "netdata"
58 , "strings_entries"
59 , NULL
60 , "strings"
61 , NULL
62 , "Strings entries"
63 , "entries"
64 , "netdata"
65 , "pulse"
66 , 910001
67 , localhost->rrd_update_every
68 , RRDSET_TYPE_AREA);
69
70 rd_entries_entries = rrddim_add(st_entries, "entries", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
71 #ifdef NETDATA_INTERNAL_CHECKS
72 rd_entries_refs = rrddim_add(st_entries, "references", NULL, 1, -1, RRD_ALGORITHM_ABSOLUTE);
73 #endif
74 }
75
76 rrddim_set_by_pointer(st_entries, rd_entries_entries, (collected_number)entries);
77 #ifdef NETDATA_INTERNAL_CHECKS
78 rrddim_set_by_pointer(st_entries, rd_entries_refs, (collected_number)references);
79 #endif
80 rrdset_done(st_entries);
81
82 if (unlikely(!st_mem)) {
83 st_mem = rrdset_create_localhost(
84 "netdata"
85 , "strings_memory"
86 , NULL
87 , "strings"
88 , NULL
89 , "Strings memory"
90 , "bytes"
91 , "netdata"
92 , "pulse"
93 , 910001
94 , localhost->rrd_update_every
95 , RRDSET_TYPE_STACKED);
96
97 rd_mem = rrddim_add(st_mem, "memory", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
98 rd_mem_idx = rrddim_add(st_mem, "index", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
99 }
100
101 rrddim_set_by_pointer(st_mem, rd_mem, (collected_number)memory);
102 rrddim_set_by_pointer(st_mem, rd_mem_idx, (collected_number)memory_index);
103 rrdset_done(st_mem);
104 }