summaryrefslogtreecommitdiffstats
path: root/src/collectors/common-contexts/system-interrupts.h
blob: 4b78e946948db83409e3d7a3c96c71eebf7de28f (plain)
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
// SPDX-License-Identifier: GPL-3.0-or-later

#ifndef NETDATA_SYSTEM_INTERRUPTS_H
#define NETDATA_SYSTEM_INTERRUPTS_H

#include "common-contexts.h"

#define _

static inline void common_interrupts(uint64_t interrupts, int update_every, char *ext_module) {
    static RRDSET *st_intr = NULL;
    static RRDDIM *rd_interrupts = NULL;

    char *module =  (!ext_module) ? _COMMON_PLUGIN_MODULE_NAME: ext_module;

    if(unlikely(!st_intr)) {
        st_intr = rrdset_create_localhost( "system"
                                          , "intr"
                                          , NULL
                                          , "interrupts"
                                          , NULL
                                          , "CPU Interrupts"
                                          , "interrupts/s"
                                          , _COMMON_PLUGIN_NAME
                                          , module
                                          , NETDATA_CHART_PRIO_SYSTEM_INTR
                                          , update_every
                                          , RRDSET_TYPE_LINE);

        rd_interrupts = rrddim_add(st_intr, "interrupts", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
    }

    rrddim_set_by_pointer(st_intr, rd_interrupts, (collected_number)interrupts);
    rrdset_done(st_intr);
}

#endif //NETDATA_SYSTEM_INTERRUPTS_H