Skip to main content
Version: 1.6.x

Monitoring Apache IoTDB Database

Monitor the running status of the Apache IoTDB Internet of Things time series database (JVM-related), memory task clusters and other related Metrics.

Operation before monitoring

You need to enable the metrics function in IoTDB, which will provide interface data in the form of prometheus metrics.

To enable the metrics function, refer to Official Documentation

The main steps are as follows:

  1. The metric collection is disabled by default, you need to modify the parameters in conf/iotdb-metric.yml first, then restart the server

    # Whether to start the monitoring module, the default is false
    enableMetric: true

    # Whether to enable operation delay statistics
    enablePerformanceStat: false

    # Data provision method, externally provide metrics data through jmx and prometheus protocol, optional parameters: [JMX, PROMETHEUS, IOTDB], IOTDB is closed by default.
    metricReporterList:
    - JMX
    - PROMETHEUS

    # The metric architecture used at the bottom layer, optional parameters: [MICROMETER, DROPWIZARD]
    monitorType: MICROMETER

    # Initialize the level of the metric, optional parameters: [CORE, IMPORTANT, NORMAL, ALL]
    metricLevel: IMPORTANT

    # Predefined metrics set, optional parameters: [JVM, LOGBACK, FILE, PROCESS, SYSTEM]
    predefinedMetrics:
    - JVM
    - FILE
  2. Restart IoTDB, open a browser or use curl to access http://servier_ip:9091/metrics, and you can see the metric data.

  3. Add the corresponding IoTDB monitoring in HertzBeat.

Configuration parameters

| Parameter name | Parameter help description | |--------|----------------------------------------- --------------| | Monitoring Host | The peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://). | | Monitoring name | The name that identifies this monitoring, and the name needs to be unique. | | Port | The port provided by the IoTDB Metric interface, which is 9091 by default. | | Timeout | HTTP request query timeout | | Acquisition Interval | Interval time for monitoring periodic data collection, in seconds, the minimum interval that can be set is 30 seconds | | Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and the operation of adding and modifying will continue after the detection is successful | | Description Remarks | More remark information to identify and describe this monitoring, users can remark information here |

Collect metrics

Metric collection: cluster_node_status

Metric NameMetric UnitMetric Help Description
nameNoneNode name IP
statusNoneNode status, 1=online 2=offline

Metric collection: jvm_memory_committed_bytes

Metric NameMetric UnitMetric Help Description
areanoneheap memory or nonheap memory
idnonememory block
valueMBThe memory size currently requested by the JVM

Metric collection: jvm_memory_used_bytes

Metric NameMetric UnitMetric Help Description
areanoneheap memory or nonheap memory
idnonememory block
valueMBJVM used memory size

Metric collection: jvm_threads_states_threads

Metric NameMetric UnitMetric Help Description
statenonethread state
countNoneThe number of threads corresponding to the thread state

Index collection: quantity business data

Metric NameMetric UnitMetric Help Description
nameNoneBusiness name timeSeries/storageGroup/device/deviceUsingTemplate
typenonetype total/normal/template/template
valueNoneThe current timeSeries/storageGroup/device/The number of devices that have activated the template

Metric collection: cache_hit cache

| Metric Name | Metric Unit | Metric Help Description | | ----------- |------|------------------------------ ----------------------| | name | None | Cache name chunk/timeSeriesMeta/bloomFilter | | value | % | chunk/timeSeriesMeta cache hit rate, bloomFilter interception rate |

Metric collection: queue task queue

| Metric Name | Metric Unit | Metric Help Description | | ----------- |------|------------------------------ ---------------------| | name | None | Queue name compaction_inner/compaction_cross/flush | | status | none | status running/waiting | | value | None | Number of tasks at current time |

Metric collection: thrift_connections

Metric NameMetric UnitMetric Help Description
nameNonename
connectionnonethrift current connection number