-
Notifications
You must be signed in to change notification settings - Fork 1.1k
[Doc] update ReadMe doc in metric module #17388
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -20,30 +20,25 @@ | |||||
| --> | ||||||
| Metric Module | ||||||
|
|
||||||
| - In this project, we provide interface and its implementation | ||||||
| - In this project, we provide the metrics interface and its default implementation | ||||||
| - metrics-interface | ||||||
| - metrics-core | ||||||
| - In each implementation, you can use several types of reporter to report metric | ||||||
| - Jmx Reporter | ||||||
| - The built-in implementation supports the following reporters | ||||||
| - JMX Reporter | ||||||
| - Prometheus Reporter | ||||||
| - IoTDB Reporter | ||||||
|
|
||||||
| - [1. Design](#1-design) | ||||||
| - [2. Test Report](#2-test-report) | ||||||
| - [2.1. Test Environment](#21-test-environment) | ||||||
| - [2.2. Test Metrics](#22-test-metrics) | ||||||
| - [2.3. Test parameters](#23-test-parameters) | ||||||
| - [2.4. Test Result](#24-test-result) | ||||||
| - [3. How to use?](#3-how-to-use) | ||||||
| - [3.1. Configuration](#31-configuration) | ||||||
| - [3.2. Use Guide in IoTDB Server Module](#32-use-guide-in-iotdb-server-module) | ||||||
| - [4. How to implement your own metric framework?](#4-how-to-implement-your-own-metric-framework) | ||||||
| - [5. Some docs](#5-some-docs) | ||||||
| - [2. How to use?](#2-how-to-use) | ||||||
| - [2.1. Configuration](#21-configuration) | ||||||
| - [2.2. Use Guide in IoTDB Server Module](#22-use-guide-in-iotdb-server-module) | ||||||
| - [3. How to implement your own metric framework?](#3-how-to-implement-your-own-metric-framework) | ||||||
| - [4. Some docs](#4-some-docs) | ||||||
|
|
||||||
| # 1. Design | ||||||
| > The acquisition system consists of following four parts. | ||||||
|
|
||||||
| 1. Metrics:Provide tools for collecting metric in different scenarios, including Counter, Gauge, Histogram, Timer and Rate, each with tags. | ||||||
| 1. Metrics: Provide tools for collecting metrics in different scenarios, including Counter, AutoGauge, Gauge, Histogram, Timer and Rate, each with tags. | ||||||
| 2. MetricManager | ||||||
| 1. Provide functions such as create, query, update and remove metrics. | ||||||
| 2. Provide its own start and stop methods. | ||||||
|
|
@@ -57,76 +52,43 @@ Metric Module | |||||
| 3. Provide the ability to load metric sets. | ||||||
| 4. Provide the access of metricManager and CompositeReporter. | ||||||
|
|
||||||
| # 2. Test Report | ||||||
| We implemented the monitoring framework mainly based on Micrometer, and tested the results as follows: | ||||||
| # 2. How to use? | ||||||
|
|
||||||
| ## 2.1. Test Environment | ||||||
| 1. Processor:Inter(R) Core(TM) i7-1065G7 CPU | ||||||
| 2. RAM: 32G | ||||||
| ## 2.1. Configuration | ||||||
| Configure the metrics module through `iotdb-system.properties`. The main options supported by the current code are listed below. | ||||||
|
|
||||||
| ## 2.2. Test Metrics | ||||||
| 1. We use a single thread to create counter and run the test cases. The test metrics as follows: | ||||||
| 1. memory : Memory usage in MB. | ||||||
| 2. create : The time required to create, in ms. | ||||||
| 3. searchInorder : The time required for the sequential query, in ms. | ||||||
| 4. searchDisorder : The time required for random queries in ms. | ||||||
| | properties | meaning | example | | ||||||
| | --- | --- | --- | | ||||||
| | `dn(cn)_metric_reporter_list` | Reporter list. The current implementation supports `JMX`, `PROMETHEUS` and `IOTDB`. | `JMX,PROMETHEUS` | | ||||||
| | `dn(cn)_metric_level` | Initial metric level. | `OFF`, `CORE`, `IMPORTANT`, `NORMAL`, `ALL` | | ||||||
| | `cn_metric_prometheus_reporter_port` | Prometheus HTTP port for ConfigNode. | `9091` | | ||||||
| | `dn_metric_prometheus_reporter_port` | Prometheus HTTP port for DataNode. | `9092` | | ||||||
|
|
||||||
| ## 2.3. Test parameters | ||||||
| 1. metric : test metric | ||||||
| 2. name : The name of the test metric, unify to one length. | ||||||
| 3. tag : The tag of the test metric, unify to one length. | ||||||
| 4. metricNumberTotal:The number of metrics tested. | ||||||
| 5. tagSingleNumber:Number of tags of the test metric. | ||||||
| 6. tagTotalNumber:The number of tag pools, the default is 1000, all | ||||||
| 7. tags are taken out of the tag pool. | ||||||
| 8. searchNumber:The number of queries, the default is 1000000. | ||||||
| 9. loop:The number of query loops, the default is 10. | ||||||
| More details, see the User Guide and the `iotdb-system.properties.template` file. | ||||||
|
||||||
| More details, see the User Guide and the `iotdb-system.properties.template` file. | |
| For more details, see the User Guide. Note that the `iotdb-system.properties.template` file currently documents configuration for JMX and Prometheus reporters; IoTDB reporter configuration keys may not yet be listed there. |
Copilot
AI
Mar 29, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dn(cn)_enable_metric is documented as the switch to enable MetricService, but the server starts and registers MetricService unconditionally (e.g., DataNode/ConfigNode setUpMetricService()), and there’s no corresponding config key in MetricConfigDescriptor/iotdb-system.properties.template. Please update this section to reflect the real way to disable metrics (e.g., set dn/cn_metric_level=OFF and/or leave *_metric_reporter_list empty) or document the actual controlling config if it exists elsewhere.
| 1. `MetricService` is registered as an `IService` in both DataNode and ConfigNode modules. Enable it with `dn(cn)_enable_metric=true`. | |
| 1. `MetricService` is registered as an `IService` in both DataNode and ConfigNode modules and is started unconditionally. To effectively disable metrics output, set `dn(cn)_metric_level=OFF` and/or leave `dn(cn)_metric_reporter_list` empty. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the configuration table, the
examplecolumn fordn(cn)_metric_levellists all possible values rather than an example value. Consider moving the allowed values into themeaningcolumn (or anOptions:note) and using a single representative example (e.g.,IMPORTANT).