summaryrefslogtreecommitdiffstats
path: root/collectors/ebpf.plugin/ebpf_filesystem.c
diff options
context:
space:
mode:
Diffstat (limited to 'collectors/ebpf.plugin/ebpf_filesystem.c')
-rw-r--r--collectors/ebpf.plugin/ebpf_filesystem.c63
1 files changed, 20 insertions, 43 deletions
diff --git a/collectors/ebpf.plugin/ebpf_filesystem.c b/collectors/ebpf.plugin/ebpf_filesystem.c
index 92ef08f660..7d28c96a72 100644
--- a/collectors/ebpf.plugin/ebpf_filesystem.c
+++ b/collectors/ebpf.plugin/ebpf_filesystem.c
@@ -36,8 +36,8 @@ struct netdata_static_thread filesystem_threads = {"EBPF FS READ",
NULL, NULL };
static int read_thread_closed = 1;
-static netdata_syscall_stat_t filesystem_aggregated_data[NETDATA_FILESYSTEM_MAX_BINS];
-static netdata_publish_syscall_t filesystem_publish_aggregated[NETDATA_FILESYSTEM_MAX_BINS];
+static netdata_syscall_stat_t filesystem_aggregated_data[NETDATA_EBPF_HIST_MAX_BINS];
+static netdata_publish_syscall_t filesystem_publish_aggregated[NETDATA_EBPF_HIST_MAX_BINS];
char **dimensions = NULL;
static netdata_idx_t *filesystem_hash_values = NULL;
@@ -114,7 +114,7 @@ static void ebpf_create_fs_charts()
title,
EBPF_COMMON_DIMENSION_CALL, family,
NULL, NETDATA_EBPF_CHART_TYPE_STACKED, order, ebpf_create_global_dimension,
- filesystem_publish_aggregated, NETDATA_FILESYSTEM_MAX_BINS);
+ filesystem_publish_aggregated, NETDATA_EBPF_HIST_MAX_BINS);
order++;
snprintfz(title, 255, "%s latency for each write request.", efp->filesystem);
@@ -126,7 +126,7 @@ static void ebpf_create_fs_charts()
title,
EBPF_COMMON_DIMENSION_CALL, family,
NULL, NETDATA_EBPF_CHART_TYPE_STACKED, order, ebpf_create_global_dimension,
- filesystem_publish_aggregated, NETDATA_FILESYSTEM_MAX_BINS);
+ filesystem_publish_aggregated, NETDATA_EBPF_HIST_MAX_BINS);
order++;
snprintfz(title, 255, "%s latency for each open request.", efp->filesystem);
@@ -138,7 +138,7 @@ static void ebpf_create_fs_charts()
title,
EBPF_COMMON_DIMENSION_CALL, family,
NULL, NETDATA_EBPF_CHART_TYPE_STACKED, order, ebpf_create_global_dimension,
- filesystem_publish_aggregated, NETDATA_FILESYSTEM_MAX_BINS);
+ filesystem_publish_aggregated, NETDATA_EBPF_HIST_MAX_BINS);
order++;
snprintfz(title, 255, "%s latency for each sync request.", efp->filesystem);
@@ -150,7 +150,7 @@ static void ebpf_create_fs_charts()
title,
EBPF_COMMON_DIMENSION_CALL, family,
NULL, NETDATA_EBPF_CHART_TYPE_STACKED, order, ebpf_create_global_dimension,
- filesystem_publish_aggregated, NETDATA_FILESYSTEM_MAX_BINS);
+ filesystem_publish_aggregated, NETDATA_EBPF_HIST_MAX_BINS);
order++;
efp->flags |= NETDATA_FILESYSTEM_FLAG_CHART_CREATED;
}
@@ -197,10 +197,10 @@ int ebpf_filesystem_initialize_ebpf_data(ebpf_module_t *em)
em->thread_name = saved_name;
if (!dimensions) {
- dimensions = ebpf_fill_histogram_dimension(NETDATA_FILESYSTEM_MAX_BINS);
+ dimensions = ebpf_fill_histogram_dimension(NETDATA_EBPF_HIST_MAX_BINS);
- memset(filesystem_aggregated_data, 0 , NETDATA_FILESYSTEM_MAX_BINS * sizeof(netdata_syscall_stat_t));
- memset(filesystem_publish_aggregated, 0 , NETDATA_FILESYSTEM_MAX_BINS * sizeof(netdata_publish_syscall_t));
+ memset(filesystem_aggregated_data, 0 , NETDATA_EBPF_HIST_MAX_BINS * sizeof(netdata_syscall_stat_t));
+ memset(filesystem_publish_aggregated, 0 , NETDATA_EBPF_HIST_MAX_BINS * sizeof(netdata_publish_syscall_t));
filesystem_hash_values = callocz(ebpf_nprocs, sizeof(netdata_idx_t));
}
@@ -351,7 +351,8 @@ static void ebpf_filesystem_cleanup(void *ptr)
ebpf_cleanup_publish_syscall(filesystem_publish_aggregated);
ebpf_filesystem_cleanup_ebpf_data();
- ebpf_histogram_dimension_cleanup(dimensions, NETDATA_FILESYSTEM_MAX_BINS);
+ if (dimensions)
+ ebpf_histogram_dimension_cleanup(dimensions, NETDATA_EBPF_HIST_MAX_BINS);
freez(filesystem_hash_values);
}
@@ -421,8 +422,8 @@ static void read_filesystem_table(ebpf_filesystem_partitions_t *efp)
total += values[i];
}
- if (idx >= NETDATA_FILESYSTEM_MAX_BINS)
- idx = NETDATA_FILESYSTEM_MAX_BINS - 1;
+ if (idx >= NETDATA_EBPF_HIST_MAX_BINS)
+ idx = NETDATA_EBPF_HIST_MAX_BINS - 1;
w->histogram[idx] = total;
}
}
@@ -482,30 +483,6 @@ void *ebpf_filesystem_read_hash(void *ptr)
}
/**
- * Call the necessary functions to create a name.
- *
- * @param family family name
- * @param name chart name
- * @param hist0 histogram values
- * @param end number of bins that will be sent to Netdata.
- *
- * @return It returns a variable tha maps the charts that did not have zero values.
- */
-static void write_histogram_chart(char *family, char *name, const netdata_idx_t *hist, uint32_t end)
-{
- write_begin_chart(family, name);
-
- uint32_t i;
- for (i = 0; i < end; i++) {
- write_chart_dimension(dimensions[i], (long long) hist[i]);
- }
-
- write_end_chart();
-
- fflush(stdout);
-}
-
-/**
* Send Hard disk data
*
* Send hard disk information to Netdata.
@@ -518,16 +495,16 @@ static void ebpf_histogram_send_data()
ebpf_filesystem_partitions_t *efp = &localfs[i];
if ((efp->flags & test) == NETDATA_FILESYSTEM_FLAG_HAS_PARTITION) {
write_histogram_chart(NETDATA_FILESYSTEM_FAMILY, efp->hread.name,
- efp->hread.histogram, NETDATA_FILESYSTEM_MAX_BINS);
+ efp->hread.histogram, dimensions, NETDATA_EBPF_HIST_MAX_BINS);
write_histogram_chart(NETDATA_FILESYSTEM_FAMILY, efp->hwrite.name,
- efp->hwrite.histogram, NETDATA_FILESYSTEM_MAX_BINS);
+ efp->hwrite.histogram, dimensions, NETDATA_EBPF_HIST_MAX_BINS);
write_histogram_chart(NETDATA_FILESYSTEM_FAMILY, efp->hopen.name,
- efp->hopen.histogram, NETDATA_FILESYSTEM_MAX_BINS);
+ efp->hopen.histogram, dimensions, NETDATA_EBPF_HIST_MAX_BINS);
write_histogram_chart(NETDATA_FILESYSTEM_FAMILY, efp->hsync.name,
- efp->hsync.histogram, NETDATA_FILESYSTEM_MAX_BINS);
+ efp->hsync.histogram, dimensions, NETDATA_EBPF_HIST_MAX_BINS);
}
}
}
@@ -612,10 +589,10 @@ void *ebpf_filesystem_thread(void *ptr)
goto endfilesystem;
}
- int algorithms[NETDATA_FILESYSTEM_MAX_BINS];
- ebpf_fill_algorithms(algorithms, NETDATA_FILESYSTEM_MAX_BINS, NETDATA_EBPF_INCREMENTAL_IDX);
+ int algorithms[NETDATA_EBPF_HIST_MAX_BINS];
+ ebpf_fill_algorithms(algorithms, NETDATA_EBPF_HIST_MAX_BINS, NETDATA_EBPF_INCREMENTAL_IDX);
ebpf_global_labels(filesystem_aggregated_data, filesystem_publish_aggregated, dimensions, dimensions,
- algorithms, NETDATA_FILESYSTEM_MAX_BINS);
+ algorithms, NETDATA_EBPF_HIST_MAX_BINS);
pthread_mutex_lock(&lock);
ebpf_create_fs_charts();