1.Backgorund
1.1 Problems
As IoTDB becomes more and more complex, some system operating metric need to be monitored to improve the operational viability and robustness of the system. IoTDB does not have a relatively complete metric collector to support the collection of some system operating metric now, so it is necessary to design a set of metric acquisition system.
There are some widely used metric acquisition library in the open source community, such as Dropwizard metrics, micrometer, and dubbo metrics, that can be considered for adaptation. Considering that IoTDB is a real-time online system, according to the experience of previously collected metrics leading to a significant drop in performance, these metrics library may not be able to meet the needs of IoTDB in terms of performance.
1.2Targets
Provides a set of metric collector interfaces.
A set of adaptation implementations based on micrometer.
A set of adaptation implementations based on dropwizard.
Test metric creation and query performance on miceometer and dropwizard.
1. metrics
Provide tools for collecting metric in different scenarios, including Counter, Gauge, Meter, Histogram, Timer, each with tags.
2.metricManager
a. Provides functions such as creating, finding, updating, and deleting metrics.
b. Provides management of reporter, including starting and stopping reporter.
c. Provides the ability to introduce default metrics(Known Metric).
d.Provides its own start and stop methods.
3.MetricReporter
Push the collector's data to other systems, such as Prometheus, JMX, IoTDB, etc.
4.MetricService
Provides metricManager start-up, acquisition, and shutdown functions that can be used in the future after being registered as Iservice.