summaryrefslogtreecommitdiffstats
path: root/src/global_statistics.h
blob: d28aa4401ce464d4e97b2724a8b48be8314d8ebc (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
#ifndef NETDATA_GLOBAL_STATISTICS_H
#define NETDATA_GLOBAL_STATISTICS_H 1

// ----------------------------------------------------------------------------
// global statistics

struct global_statistics {
    volatile uint16_t connected_clients;

    volatile uint64_t web_requests;
    volatile uint64_t web_usec;
    volatile uint64_t web_usec_max;
    volatile uint64_t bytes_received;
    volatile uint64_t bytes_sent;
    volatile uint64_t content_size;
    volatile uint64_t compressed_content_size;
};

extern volatile struct global_statistics global_statistics;

extern void global_statistics_lock(void);
extern void global_statistics_unlock(void);
extern void finished_web_request_statistics(uint64_t dt,
                                     uint64_t bytes_received,
                                     uint64_t bytes_sent,
                                     uint64_t content_size,
                                     uint64_t compressed_content_size);

extern void web_client_connected(void);
extern void web_client_disconnected(void);

#define GLOBAL_STATS_RESET_WEB_USEC_MAX 0x01
extern void global_statistics_copy(struct global_statistics *gs, uint8_t options);
extern void global_statistics_charts(void);

#endif /* NETDATA_GLOBAL_STATISTICS_H */