Merge pull request #1206 from eeff/eeff/dev

feat: update global memory metrics
This commit is contained in:
eeff
2023-04-20 13:47:59 +08:00
committed by GitHub
3 changed files with 19 additions and 4 deletions
+1
View File
@@ -154,6 +154,7 @@ typedef struct {
unsigned cpu_cores;
size_t mem_total_bytes;
size_t mem_used_bytes;
size_t mem_cache_bytes;
size_t disk_size_gibibytes;
size_t disk_used_gibibytes;
size_t disk_avail_gibibytes;
+11 -4
View File
@@ -31,10 +31,10 @@
// clang-format off
#define METRIC_GLOBAL_TMPL \
"# HELP distro OS distribution\n" \
"distro %s\n" \
"# HELP kernel OS kernel version\n" \
"kernel %s\n" \
"# HELP os_info OS distro and kernel version\n" \
"# TYPE os_info gauge\n" \
"os_info[version=\"%s\"] 0\n" \
"os_info[kernel=\"%s\"] 0\n" \
"# HELP cpu_percent Total CPU utilisation percentage\n" \
"# TYPE cpu_percent gauge\n" \
"cpu_percent %u\n" \
@@ -47,6 +47,12 @@
"# HELP mem_used_bytes Used memory in bytes\n" \
"# TYPE mem_used_bytes gauge\n" \
"mem_used_bytes %zu\n" \
"# HELP mem_cache Memory buffer/cache size in bytes\n" \
"# TYPE mem_cache gauge\n" \
"mem_cache_bytes %zu\n" \
"# HELP rss_bytes RSS (Resident Set Size) in bytes\n" \
"# TYPE rss_bytes gauge\n" \
"rss_bytes %zu\n" \
"# HELP disk_size_gibibytes Disk size in gibibytes\n" \
"# TYPE disk_size_gibibytes counter\n" \
"disk_size_gibibytes %zu\n" \
@@ -141,6 +147,7 @@ static inline void gen_global_metrics(const neu_metrics_t *metrics,
{
fprintf(stream, METRIC_GLOBAL_TMPL, metrics->distro, metrics->kernel,
metrics->cpu_percent, metrics->cpu_cores, metrics->mem_total_bytes,
metrics->mem_used_bytes, metrics->mem_cache_bytes,
metrics->mem_used_bytes, metrics->disk_size_gibibytes,
metrics->disk_used_gibibytes, metrics->disk_avail_gibibytes,
metrics->core_dumped, metrics->uptime_seconds, metrics->north_nodes,
+7
View File
@@ -101,6 +101,11 @@ static inline size_t memory_used()
return parse_memory_fields(3);
}
static inline size_t memory_cache()
{
return parse_memory_fields(6);
}
static inline int disk_usage(size_t *size_p, size_t *used_p, size_t *avail_p)
{
struct statvfs buf = {};
@@ -276,6 +281,7 @@ void neu_metrics_visist(neu_metrics_cb_t cb, void *data)
{
unsigned cpu = cpu_usage();
size_t mem_used = memory_used();
size_t mem_cache = memory_cache();
size_t disk_size = 0, disk_used = 0, disk_avail = 0;
disk_usage(&disk_size, &disk_used, &disk_avail);
bool core_dumped = has_core_dumps();
@@ -284,6 +290,7 @@ void neu_metrics_visist(neu_metrics_cb_t cb, void *data)
g_metrics_.cpu_percent = cpu;
g_metrics_.cpu_cores = get_nprocs();
g_metrics_.mem_used_bytes = mem_used;
g_metrics_.mem_cache_bytes = mem_cache;
g_metrics_.disk_size_gibibytes = disk_size;
g_metrics_.disk_used_gibibytes = disk_used;
g_metrics_.disk_avail_gibibytes = disk_avail;