diff options
-rwxr-xr-x | database/engine/rrdengineapi.c | 13 | ||||
-rw-r--r-- | database/engine/rrdengineapi.h | 5 | ||||
-rw-r--r-- | web/api/web_api_v1.c | 8 |
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) { |