summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xdatabase/engine/rrdengineapi.c13
-rw-r--r--database/engine/rrdengineapi.h5
-rw-r--r--web/api/web_api_v1.c8
3 files changed, 23 insertions, 3 deletions
diff --git a/database/engine/rrdengineapi.c b/database/engine/rrdengineapi.c
index 92e72225e1..f4da294079 100755
--- a/database/engine/rrdengineapi.c
+++ b/database/engine/rrdengineapi.c
@@ -1037,9 +1037,16 @@ RRDENG_SIZE_STATS rrdeng_size_statistics(struct rrdengine_instance *ctx) {
}
}
- internal_error(stats.metrics_pages != stats.extents_pages,
- "DBENGINE: metrics pages is %zu, but extents pages is %zu",
- stats.metrics_pages, stats.extents_pages);
+
+ stats.currently_collected_metrics = ctx->stats.metric_API_producers;
+ stats.max_concurrently_collected_metrics = ctx->metric_API_max_producers;
+
+ internal_error(stats.metrics_pages != stats.extents_pages + stats.currently_collected_metrics,
+ "DBENGINE: metrics pages is %zu, but extents pages is %zu and API consumers is %zu",
+ stats.metrics_pages, stats.extents_pages, stats.currently_collected_metrics);
+
+ stats.disk_space = ctx->disk_space;
+ stats.max_disk_space = ctx->max_disk_space;
stats.database_retention_secs = (time_t)(stats.last_t - stats.first_t);
diff --git a/database/engine/rrdengineapi.h b/database/engine/rrdengineapi.h
index e66ec083d5..509aa48cac 100644
--- a/database/engine/rrdengineapi.h
+++ b/database/engine/rrdengineapi.h
@@ -117,8 +117,13 @@ typedef struct rrdengine_size_statistics {
usec_t first_t;
usec_t last_t;
+ size_t currently_collected_metrics;
+ size_t max_concurrently_collected_metrics;
size_t estimated_concurrently_collected_metrics;
+ size_t disk_space;
+ size_t max_disk_space;
+
time_t database_retention_secs;
double average_compression_savings;
double average_point_duration_secs;
diff --git a/web/api/web_api_v1.c b/web/api/web_api_v1.c
index fc01b95e59..1045fa12fa 100644
--- a/web/api/web_api_v1.c
+++ b/web/api/web_api_v1.c
@@ -1573,6 +1573,10 @@ static void web_client_api_v1_dbengine_stats_for_tier(BUFFER *wb, int tier) {
",\n\t\t\"ephemeral_metrics_per_day_percent\":%0.2f"
",\n\t\t\"average_page_size_bytes\":%0.2f"
",\n\t\t\"estimated_concurrently_collected_metrics\":%zu"
+ ",\n\t\t\"currently_collected_metrics\":%zu"
+ ",\n\t\t\"max_concurrently_collected_metrics\":%zu"
+ ",\n\t\t\"disk_space\":%zu"
+ ",\n\t\t\"max_disk_space\":%zu"
, stats.default_granularity_secs
, stats.sizeof_metric
, stats.sizeof_metric_in_index
@@ -1604,6 +1608,10 @@ static void web_client_api_v1_dbengine_stats_for_tier(BUFFER *wb, int tier) {
, stats.ephemeral_metrics_per_day_percent
, stats.average_page_size_bytes
, stats.estimated_concurrently_collected_metrics
+ , stats.currently_collected_metrics
+ , stats.max_concurrently_collected_metrics
+ , stats.disk_space
+ , stats.max_disk_space
);
}
int web_client_api_request_v1_dbengine_stats(RRDHOST *host __maybe_unused, struct web_client *w, char *url __maybe_unused) {