mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-30 11:36:54 +00:00
Currently, there are two metrics reporting mechanisms: the metrics layer and the API. In most cases, they use the same data sources. The main difference is around histograms and rate. The API calculates an exponentially weighted moving average using a timer that decays the average on each time tick. It calculates a poor-man histogram by holding the last few entries (typically the last 256 entries). The caller to the API uses those last entries to build a histogram. We want to add summaries to Scylla. Similar to the API rate and histogram, summaries are calculated per time interval. This patch creates a unified mechanism by introducing an object that would hold both the old-style histogram and the new (estimated_histogram). On each time tick, a summary would be calculated. In the future, we'll replace the API to report summaries instead of the old-style histogram and deprecate the old style completely. summary_calculator uses two estimated_histogram to calculate a summary. timed_rate_moving_average_summary_and_histogram is a unifed class for ihistogram, rates, summary, and estimated_histogram and will replace timed_rate_moving_average_and_histogram. Follow-up patches would move code from using timed_rate_moving_average_and_histogram to timed_rate_moving_average_summary_and_histogram. By keeping the API it would make the transition easy. Signed-off-by: Amnon Heiman <amnon@scylladb.com>
17 KiB
17 KiB