blob: e694292ed561f6a45afcfccce8339e0af998431d [file] [log] [blame]
<!DOCTYPE html>
<html lang="en-US" data-theme="light">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<meta name="generator" content="VuePress 2.0.0-beta.61" />
<meta name="theme" content="VuePress Theme Hope" />
<link rel="alternate" hreflang="zh-cn" href="https://iotdb.apache.org/zh/UserGuide/Master/Monitor-Alert/Metric-Tool.html"><meta property="og:url" content="https://iotdb.apache.org/UserGuide/Master/Monitor-Alert/Metric-Tool.html"><meta property="og:site_name" content="IoTDB Website"><meta property="og:description" content="Along with IoTDB running, we hope to observe the status of IoTDB, so as to troubleshoot system problems or discover potential system risks in time. A series of metrics that can ..."><meta property="og:type" content="article"><meta property="og:locale" content="en-US"><meta property="og:locale:alternate" content="zh-CN"><script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","headline":"","image":[""],"dateModified":null,"author":[]}</script><link rel="icon" href="/favicon.ico"><meta name="Description" content="Apache IoTDB: Time Series Database for IoT"><meta name="Keywords" content="TSDB, time series, time series database, IoTDB, IoT database, IoT data management,时序数据库, 时间序列管理, IoTDB, 物联网数据库, 实时数据库, 物联网数据管理, 物联网数据"><meta name="baidu-site-verification" content="wfKETzB3OT"><meta name="google-site-verification" content="mZWAoRY0yj_HAr-s47zHCGHzx5Ju-RVm5wDbPnwQYFo"><title>IoTDB Website</title><meta name="description" content="Along with IoTDB running, we hope to observe the status of IoTDB, so as to troubleshoot system problems or discover potential system risks in time. A series of metrics that can ...">
<style>
:root {
--bg-color: #fff;
}
html[data-theme="dark"] {
--bg-color: #1d1e1f;
}
html,
body {
background: var(--bg-color);
}
</style>
<script>
const userMode = localStorage.getItem("vuepress-theme-hope-scheme");
const systemDarkMode =
window.matchMedia &&
window.matchMedia("(prefers-color-scheme: dark)").matches;
if (userMode === "dark" || (userMode !== "light" && systemDarkMode)) {
document.documentElement.setAttribute("data-theme", "dark");
}
</script>
<link rel="preload" href="/assets/style-13611a3c.css" as="style"><link rel="stylesheet" href="/assets/style-13611a3c.css">
<link rel="modulepreload" href="/assets/app-f2ec2f8e.js"><link rel="modulepreload" href="/assets/framework-5638dcb2.js"><link rel="modulepreload" href="/assets/Metric-Tool.html-00e4b05d.js"><link rel="modulepreload" href="/assets/Metric-Tool.html-d69504e9.js">
</head>
<body>
<div id="app"><!--[--><!--[--><!--[--><span tabindex="-1"></span><a href="#main-content" class="skip-link sr-only">Skip to main content</a><!--]--><!--[--><div class="theme-container has-toc"><!--[--><header class="navbar hide-icon" id="navbar"><div class="navbar-start"><button class="toggle-sidebar-button" title="Toggle Sidebar"><span class="icon"></span></button><!--[--><!----><!--]--><a href="/" class="brand"><img class="logo" src="/logo.png" alt="IoTDB Website"><!----><span class="site-name hide-in-pad">IoTDB Website</span></a><!--[--><!----><!--]--></div><div class="navbar-center"><!--[--><!----><!--]--><!--[--><!----><!--]--></div><div class="navbar-end"><!--[--><!----><!--]--><div id="docsearch-container"></div><nav class="nav-links"><div class="nav-item hide-in-mobile"><div class="dropdown-wrapper"><button class="dropdown-title" type="button" aria-label="Documentation"><span class="title"><!---->Documentation</span><span class="arrow"></span><ul class="nav-dropdown"><li class="dropdown-item"><a href="/UserGuide/Master/QuickStart/QuickStart.html" class="nav-link" aria-label="latest"><!---->latest<!----></a></li><li class="dropdown-item"><a href="/UserGuide/V1.1.x/QuickStart/QuickStart.html" class="nav-link" aria-label="v1.1.x"><!---->v1.1.x<!----></a></li><li class="dropdown-item"><a href="/UserGuide/V1.0.x/QuickStart/QuickStart.html" class="nav-link" aria-label="v1.0.x"><!---->v1.0.x<!----></a></li><li class="dropdown-item"><a href="/UserGuide/V0.13.x/QuickStart/QuickStart.html" class="nav-link" aria-label="v0.13.x"><!---->v0.13.x<!----></a></li></ul></button></div></div><div class="nav-item hide-in-mobile"><a href="https://cwiki.apache.org/confluence/display/IOTDB/System+Design" rel="noopener noreferrer" target="_blank" aria-label="Design" class="nav-link"><!---->Design<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!----></a></div><div class="nav-item hide-in-mobile"><a href="/Download/" class="nav-link" aria-label="Download"><!---->Download<!----></a></div><div class="nav-item hide-in-mobile"><div class="dropdown-wrapper"><button class="dropdown-title" type="button" aria-label="Community"><span class="title"><!---->Community</span><span class="arrow"></span><ul class="nav-dropdown"><li class="dropdown-item"><a href="/Community/About.html" class="nav-link" aria-label="About"><!---->About<!----></a></li><li class="dropdown-item"><a href="https://cwiki.apache.org/confluence/display/iotdb" rel="noopener noreferrer" target="_blank" aria-label="Wiki" class="nav-link"><!---->Wiki<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!----></a></li><li class="dropdown-item"><a href="/Community/Community-Project-Committers.html" class="nav-link" aria-label="People"><!---->People<!----></a></li><li class="dropdown-item"><a href="/Community/Community-Powered-By.html" class="nav-link" aria-label="Powered By"><!---->Powered By<!----></a></li><li class="dropdown-item"><a href="/Community/Materials.html" class="nav-link" aria-label="Resources"><!---->Resources<!----></a></li><li class="dropdown-item"><a href="/Community/Feedback.html" class="nav-link" aria-label="Feedback"><!---->Feedback<!----></a></li></ul></button></div></div><div class="nav-item hide-in-mobile"><div class="dropdown-wrapper"><button class="dropdown-title" type="button" aria-label="Development"><span class="title"><!---->Development</span><span class="arrow"></span><ul class="nav-dropdown"><li class="dropdown-item"><a href="/Development/VoteRelease.html" class="nav-link" aria-label="How to vote"><!---->How to vote<!----></a></li><li class="dropdown-item"><a href="/Development/HowToCommit.html" class="nav-link" aria-label="How to Commit"><!---->How to Commit<!----></a></li><li class="dropdown-item"><a href="/Development/HowToJoin.html" class="nav-link" aria-label="Become a Contributor"><!---->Become a Contributor<!----></a></li><li class="dropdown-item"><a href="/Development/Committer.html" class="nav-link" aria-label="Become a Committer"><!---->Become a Committer<!----></a></li><li class="dropdown-item"><a href="/Development/ContributeGuide.html" class="nav-link" aria-label="ContributeGuide"><!---->ContributeGuide<!----></a></li><li class="dropdown-item"><a href="/Development/HowtoContributeCode.html" class="nav-link" aria-label="How to Contribute Code"><!---->How to Contribute Code<!----></a></li><li class="dropdown-item"><a href="/Development/format-changelist.html" class="nav-link" aria-label="Changelist of TsFile"><!---->Changelist of TsFile<!----></a></li><li class="dropdown-item"><a href="/Development/rpc-changelist.html" class="nav-link" aria-label="Changelist of RPC"><!---->Changelist of RPC<!----></a></li></ul></button></div></div><div class="nav-item hide-in-mobile"><div class="dropdown-wrapper"><button class="dropdown-title" type="button" aria-label="ASF"><span class="title"><!---->ASF</span><span class="arrow"></span><ul class="nav-dropdown"><li class="dropdown-item"><a href="https://www.apache.org/" rel="noopener noreferrer" target="_blank" aria-label="Foundation" class="nav-link"><!---->Foundation<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!----></a></li><li class="dropdown-item"><a href="https://www.apache.org/licenses/" rel="noopener noreferrer" target="_blank" aria-label="License" class="nav-link"><!---->License<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!----></a></li><li class="dropdown-item"><a href="https://www.apache.org/security/" rel="noopener noreferrer" target="_blank" aria-label="Security" class="nav-link"><!---->Security<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!----></a></li><li class="dropdown-item"><a href="https://www.apache.org/foundation/sponsorship.html" rel="noopener noreferrer" target="_blank" aria-label="Sponsorship" class="nav-link"><!---->Sponsorship<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!----></a></li><li class="dropdown-item"><a href="https://www.apache.org/foundation/thanks.html" rel="noopener noreferrer" target="_blank" aria-label="Thanks" class="nav-link"><!---->Thanks<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!----></a></li><li class="dropdown-item"><a href="https://www.apache.org/events/current-event" rel="noopener noreferrer" target="_blank" aria-label="Current Events" class="nav-link"><!---->Current Events<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!----></a></li></ul></button></div></div></nav><div class="nav-item"><div class="dropdown-wrapper i18n-dropdown"><button class="dropdown-title" type="button" aria-label="Select language"><!--[--><svg xmlns="http://www.w3.org/2000/svg" class="icon i18n-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="i18n icon" style="width:1rem;height:1rem;vertical-align:middle;"><path d="M379.392 460.8 494.08 575.488l-42.496 102.4L307.2 532.48 138.24 701.44l-71.68-72.704L234.496 460.8l-45.056-45.056c-27.136-27.136-51.2-66.56-66.56-108.544h112.64c7.68 14.336 16.896 27.136 26.112 35.84l45.568 46.08 45.056-45.056C382.976 312.32 409.6 247.808 409.6 204.8H0V102.4h256V0h102.4v102.4h256v102.4H512c0 70.144-37.888 161.28-87.04 210.944L378.88 460.8zM576 870.4 512 1024H409.6l256-614.4H768l256 614.4H921.6l-64-153.6H576zM618.496 768h196.608L716.8 532.48 618.496 768z"></path></svg><!--]--><span class="arrow"></span><ul class="nav-dropdown"><li class="dropdown-item"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html" class="router-link-active router-link-exact-active nav-link active" aria-label="English"><!---->English<!----></a></li><li class="dropdown-item"><a href="/zh/UserGuide/Master/Monitor-Alert/Metric-Tool.html" class="nav-link" aria-label="简体中文"><!---->简体中文<!----></a></li></ul></button></div></div><div class="nav-item hide-in-mobile"><button id="appearance-switch"><svg xmlns="http://www.w3.org/2000/svg" class="icon auto-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="auto icon" style="display:block;"><path d="M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm0-840c-198.78 0-360 161.22-360 360 0 198.84 161.22 360 360 360s360-161.16 360-360c0-198.78-161.22-360-360-360zm0 660V212c165.72 0 300 134.34 300 300 0 165.72-134.28 300-300 300z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" class="icon dark-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="dark icon" style="display:none;"><path d="M524.8 938.667h-4.267a439.893 439.893 0 0 1-313.173-134.4 446.293 446.293 0 0 1-11.093-597.334A432.213 432.213 0 0 1 366.933 90.027a42.667 42.667 0 0 1 45.227 9.386 42.667 42.667 0 0 1 10.24 42.667 358.4 358.4 0 0 0 82.773 375.893 361.387 361.387 0 0 0 376.747 82.774 42.667 42.667 0 0 1 54.187 55.04 433.493 433.493 0 0 1-99.84 154.88 438.613 438.613 0 0 1-311.467 128z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" class="icon light-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="light icon" style="display:none;"><path d="M952 552h-80a40 40 0 0 1 0-80h80a40 40 0 0 1 0 80zM801.88 280.08a41 41 0 0 1-57.96-57.96l57.96-58a41.04 41.04 0 0 1 58 58l-58 57.96zM512 752a240 240 0 1 1 0-480 240 240 0 0 1 0 480zm0-560a40 40 0 0 1-40-40V72a40 40 0 0 1 80 0v80a40 40 0 0 1-40 40zm-289.88 88.08-58-57.96a41.04 41.04 0 0 1 58-58l57.96 58a41 41 0 0 1-57.96 57.96zM192 512a40 40 0 0 1-40 40H72a40 40 0 0 1 0-80h80a40 40 0 0 1 40 40zm30.12 231.92a41 41 0 0 1 57.96 57.96l-57.96 58a41.04 41.04 0 0 1-58-58l58-57.96zM512 832a40 40 0 0 1 40 40v80a40 40 0 0 1-80 0v-80a40 40 0 0 1 40-40zm289.88-88.08 58 57.96a41.04 41.04 0 0 1-58 58l-57.96-58a41 41 0 0 1 57.96-57.96z"></path></svg></button></div><div class="nav-item"><a class="repo-link" href="https://github.com/apache/iotdb" target="_blank" rel="noopener noreferrer" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="icon github-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="github icon" style="width:1.25rem;height:1.25rem;vertical-align:middle;"><path d="M511.957 21.333C241.024 21.333 21.333 240.981 21.333 512c0 216.832 140.544 400.725 335.574 465.664 24.49 4.395 32.256-10.07 32.256-23.083 0-11.69.256-44.245 0-85.205-136.448 29.61-164.736-64.64-164.736-64.64-22.315-56.704-54.4-71.765-54.4-71.765-44.587-30.464 3.285-29.824 3.285-29.824 49.195 3.413 75.179 50.517 75.179 50.517 43.776 75.008 114.816 53.333 142.762 40.79 4.523-31.66 17.152-53.377 31.19-65.537-108.971-12.458-223.488-54.485-223.488-242.602 0-53.547 19.114-97.323 50.517-131.67-5.035-12.33-21.93-62.293 4.779-129.834 0 0 41.258-13.184 134.912 50.346a469.803 469.803 0 0 1 122.88-16.554c41.642.213 83.626 5.632 122.88 16.554 93.653-63.488 134.784-50.346 134.784-50.346 26.752 67.541 9.898 117.504 4.864 129.834 31.402 34.347 50.474 78.123 50.474 131.67 0 188.586-114.73 230.016-224.042 242.09 17.578 15.232 33.578 44.672 33.578 90.454v135.85c0 13.142 7.936 27.606 32.854 22.87C862.25 912.597 1002.667 728.747 1002.667 512c0-271.019-219.648-490.667-490.71-490.667z"></path></svg></a></div><!--[--><!----><!--]--><button class="toggle-navbar-button" aria-label="Toggle Navbar" aria-expanded="false" aria-controls="nav-screen"><span class="button-container"><span class="button-top"></span><span class="button-middle"></span><span class="button-bottom"></span></span></button></div></header><!----><!--]--><!----><div class="toggle-sidebar-wrapper"><span class="arrow start"></span></div><aside class="sidebar" id="sidebar"><!--[--><!----><!--]--><ul class="sidebar-links"><li><section class="sidebar-group"><p class="sidebar-heading"><!----><span class="title">IoTDB User Guide (latest)</span><!----></p><ul class="sidebar-links"></ul></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">About IoTDB</span><span class="arrow end"></span></button><!----></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">Quick Start</span><span class="arrow end"></span></button><!----></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">Data Concept</span><span class="arrow end"></span></button><!----></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">Syntax Conventions</span><span class="arrow end"></span></button><!----></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">API</span><span class="arrow end"></span></button><!----></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">Operate Metadata</span><span class="arrow end"></span></button><!----></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">Write Data (Update Data)</span><span class="arrow end"></span></button><!----></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">Delete Data</span><span class="arrow end"></span></button><!----></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">Query Data</span><span class="arrow end"></span></button><!----></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">Operators and Functions</span><span class="arrow end"></span></button><!----></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">Trigger</span><span class="arrow end"></span></button><!----></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable active"><!----><span class="title">Monitor and Alert</span><span class="arrow down"></span></button><ul class="sidebar-links"><li><!--[--><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html" class="router-link-active router-link-exact-active nav-link active sidebar-link sidebar-page active" aria-label="Metric Tool"><!---->Metric Tool<!----></a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_1-when-to-use-metric-framework" class="router-link-active router-link-exact-active nav-link sidebar-link heading" aria-label="1. When to use metric framework?"><!---->1. When to use metric framework?<!----></a><ul class="sidebar-sub-headers"></ul></li><li class="sidebar-sub-header"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_2-who-will-use-metric-framework" class="router-link-active router-link-exact-active nav-link sidebar-link heading" aria-label="2. Who will use metric framework?"><!---->2. Who will use metric framework?<!----></a><ul class="sidebar-sub-headers"></ul></li><li class="sidebar-sub-header"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_3-what-is-metrics" class="router-link-active router-link-exact-active nav-link sidebar-link heading" aria-label="3. What is metrics?"><!---->3. What is metrics?<!----></a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_3-1-key-concept" class="router-link-active router-link-exact-active nav-link sidebar-link heading" aria-label="3.1. Key Concept"><!---->3.1. Key Concept<!----></a><ul class="sidebar-sub-headers"></ul></li><li class="sidebar-sub-header"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_3-2-external-data-format-for-metrics" class="router-link-active router-link-exact-active nav-link sidebar-link heading" aria-label="3.2. External data format for metrics"><!---->3.2. External data format for metrics<!----></a><ul class="sidebar-sub-headers"></ul></li></ul></li><li class="sidebar-sub-header"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_4-the-detail-of-metrics" class="router-link-active router-link-exact-active nav-link sidebar-link heading" aria-label="4. The detail of metrics"><!---->4. The detail of metrics<!----></a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_4-1-core-level-metrics" class="router-link-active router-link-exact-active nav-link sidebar-link heading" aria-label="4.1. Core level metrics"><!---->4.1. Core level metrics<!----></a><ul class="sidebar-sub-headers"></ul></li><li class="sidebar-sub-header"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_4-2-important-level-metrics" class="router-link-active router-link-exact-active nav-link sidebar-link heading" aria-label="4.2. Important level metrics"><!---->4.2. Important level metrics<!----></a><ul class="sidebar-sub-headers"></ul></li><li class="sidebar-sub-header"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_4-3-normal-level-metrics" class="router-link-active router-link-exact-active nav-link sidebar-link heading" aria-label="4.3. Normal level Metrics"><!---->4.3. Normal level Metrics<!----></a><ul class="sidebar-sub-headers"></ul></li><li class="sidebar-sub-header"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_4-4-all-metric" class="router-link-active router-link-exact-active nav-link sidebar-link heading" aria-label="4.4. All Metric"><!---->4.4. All Metric<!----></a><ul class="sidebar-sub-headers"></ul></li></ul></li><li class="sidebar-sub-header"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_5-how-to-get-these-metrics" class="router-link-active router-link-exact-active nav-link sidebar-link heading" aria-label="5. How to get these metrics?"><!---->5. How to get these metrics?<!----></a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_5-1-jmx" class="router-link-active router-link-exact-active nav-link sidebar-link heading" aria-label="5.1. JMX"><!---->5.1. JMX<!----></a><ul class="sidebar-sub-headers"></ul></li><li class="sidebar-sub-header"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_5-2-prometheus" class="router-link-active router-link-exact-active nav-link sidebar-link heading" aria-label="5.2. Prometheus"><!---->5.2. Prometheus<!----></a><ul class="sidebar-sub-headers"></ul></li><li class="sidebar-sub-header"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_5-3-iotdb" class="router-link-active router-link-exact-active nav-link sidebar-link heading" aria-label="5.3. IoTDB"><!---->5.3. IoTDB<!----></a><ul class="sidebar-sub-headers"></ul></li></ul></li></ul><!--]--></li><li><!--[--><a href="/UserGuide/Master/Monitor-Alert/Alerting.html" class="nav-link sidebar-link sidebar-page" aria-label="Alerting"><!---->Alerting<!----></a><ul class="sidebar-sub-headers"></ul><!--]--></li></ul></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">Administration Management</span><span class="arrow end"></span></button><!----></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">Maintenance Tools</span><span class="arrow end"></span></button><!----></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">Collaboration of Edge and Cloud</span><span class="arrow end"></span></button><!----></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">Ecosystem Integration</span><span class="arrow end"></span></button><!----></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">Cluster</span><span class="arrow end"></span></button><!----></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">FAQ</span><span class="arrow end"></span></button><!----></section></li><li><section class="sidebar-group"><button class="sidebar-heading clickable"><!----><span class="title">Reference</span><span class="arrow end"></span></button><!----></section></li></ul><!--[--><!----><!--]--></aside><!--[--><main class="page" id="main-content"><!--[--><!----><nav class="breadcrumb disable"></nav><div class="page-title"><h1><!----></h1><div class="page-info"><!----><!----><!----><!----><span class="page-reading-time-info" aria-label="Reading Time"><svg xmlns="http://www.w3.org/2000/svg" class="icon timer-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="timer icon"><path d="M799.387 122.15c4.402-2.978 7.38-7.897 7.38-13.463v-1.165c0-8.933-7.38-16.312-16.312-16.312H256.33c-8.933 0-16.311 7.38-16.311 16.312v1.165c0 5.825 2.977 10.874 7.637 13.592 4.143 194.44 97.22 354.963 220.201 392.763-122.204 37.542-214.893 196.511-220.2 389.397-4.661 5.049-7.638 11.651-7.638 19.03v5.825h566.49v-5.825c0-7.379-2.849-13.981-7.509-18.9-5.049-193.016-97.867-351.985-220.2-389.527 123.24-37.67 216.446-198.453 220.588-392.892zM531.16 450.445v352.632c117.674 1.553 211.787 40.778 211.787 88.676H304.097c0-48.286 95.149-87.382 213.728-88.676V450.445c-93.077-3.107-167.901-81.297-167.901-177.093 0-8.803 6.99-15.793 15.793-15.793 8.803 0 15.794 6.99 15.794 15.793 0 80.261 63.69 145.635 142.01 145.635s142.011-65.374 142.011-145.635c0-8.803 6.99-15.793 15.794-15.793s15.793 6.99 15.793 15.793c0 95.019-73.789 172.82-165.96 177.093z"></path></svg><span>About 18 min</span><meta property="timeRequired" content="PT18M"></span><!----><!----></div><hr></div><div class="toc-place-holder"><aside id="toc"><!--[--><!----><!--]--><div class="toc-header">On This Page<button class="print-button" title="Print"><svg xmlns="http://www.w3.org/2000/svg" class="icon print-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="print icon"><path d="M819.2 364.8h-44.8V128c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v236.8h-44.8C145.067 364.8 96 413.867 96 473.6v192c0 59.733 49.067 108.8 108.8 108.8h44.8V896c0 17.067 14.933 32 32 32h460.8c17.067 0 32-14.933 32-32V774.4h44.8c59.733 0 108.8-49.067 108.8-108.8v-192c0-59.733-49.067-108.8-108.8-108.8zM313.6 160h396.8v204.8H313.6V160zm396.8 704H313.6V620.8h396.8V864zM864 665.6c0 25.6-19.2 44.8-44.8 44.8h-44.8V588.8c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v121.6h-44.8c-25.6 0-44.8-19.2-44.8-44.8v-192c0-25.6 19.2-44.8 44.8-44.8h614.4c25.6 0 44.8 19.2 44.8 44.8v192z"></path></svg></button></div><div class="toc-wrapper"><ul class="toc-list"><!--[--><li class="toc-item"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_1-when-to-use-metric-framework" class="router-link-active router-link-exact-active toc-link level2">1. When to use metric framework?</a></li><!----><!--]--><!--[--><li class="toc-item"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_2-who-will-use-metric-framework" class="router-link-active router-link-exact-active toc-link level2">2. Who will use metric framework?</a></li><!----><!--]--><!--[--><li class="toc-item"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_3-what-is-metrics" class="router-link-active router-link-exact-active toc-link level2">3. What is metrics?</a></li><ul class="toc-list"><!--[--><li class="toc-item"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_3-1-key-concept" class="router-link-active router-link-exact-active toc-link level3">3.1. Key Concept</a></li><!----><!--]--><!--[--><li class="toc-item"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_3-2-external-data-format-for-metrics" class="router-link-active router-link-exact-active toc-link level3">3.2. External data format for metrics</a></li><!----><!--]--></ul><!--]--><!--[--><li class="toc-item"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_4-the-detail-of-metrics" class="router-link-active router-link-exact-active toc-link level2">4. The detail of metrics</a></li><ul class="toc-list"><!--[--><li class="toc-item"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_4-1-core-level-metrics" class="router-link-active router-link-exact-active toc-link level3">4.1. Core level metrics</a></li><!----><!--]--><!--[--><li class="toc-item"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_4-2-important-level-metrics" class="router-link-active router-link-exact-active toc-link level3">4.2. Important level metrics</a></li><!----><!--]--><!--[--><li class="toc-item"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_4-3-normal-level-metrics" class="router-link-active router-link-exact-active toc-link level3">4.3. Normal level Metrics</a></li><!----><!--]--><!--[--><li class="toc-item"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_4-4-all-metric" class="router-link-active router-link-exact-active toc-link level3">4.4. All Metric</a></li><!----><!--]--></ul><!--]--><!--[--><li class="toc-item"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_5-how-to-get-these-metrics" class="router-link-active router-link-exact-active toc-link level2">5. How to get these metrics?</a></li><ul class="toc-list"><!--[--><li class="toc-item"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_5-1-jmx" class="router-link-active router-link-exact-active toc-link level3">5.1. JMX</a></li><!----><!--]--><!--[--><li class="toc-item"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_5-2-prometheus" class="router-link-active router-link-exact-active toc-link level3">5.2. Prometheus</a></li><!----><!--]--><!--[--><li class="toc-item"><a aria-current="page" href="/UserGuide/Master/Monitor-Alert/Metric-Tool.html#_5-3-iotdb" class="router-link-active router-link-exact-active toc-link level3">5.3. IoTDB</a></li><!----><!--]--></ul><!--]--></ul></div><!--[--><!----><!--]--></aside></div><!----><div class="theme-hope-content"><!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
--><p>Along with IoTDB running, we hope to observe the status of IoTDB, so as to troubleshoot system problems or discover potential system risks in time. A series of metrics that can <strong>reflect the operating status of the system</strong> are system monitoring metrics.</p><h2 id="_1-when-to-use-metric-framework" tabindex="-1"><a class="header-anchor" href="#_1-when-to-use-metric-framework" aria-hidden="true">#</a> 1. When to use metric framework?</h2><p>Belows are some typical application scenarios</p><ol><li><p>System is running slowly</p><p>When system is running slowly, we always hope to have information about system&#39;s running status as detail as possible, such as:</p><ul><li>JVM:Is there FGC? How long does it cost? How much does the memory usage decreased after GC? Are there lots of threads?</li><li>System:Is the CPU usage too hi?Are there many disk IOs?</li><li>Connections:How many connections are there in the current time?</li><li>Interface:What is the TPS and latency of every interface?</li><li>Thread Pool:Are there many pending tasks?</li><li>Cache Hit Ratio</li></ul></li><li><p>No space left on device</p><p>When meet a &quot;no space left on device&quot; error, we really want to know which kind of data file had a rapid rise in the past hours.</p></li><li><p>Is the system running in abnormal status</p><p>We could use the count of error logs、the alive status of nodes in cluster, etc, to determine whether the system is running abnormally.</p></li></ol><h2 id="_2-who-will-use-metric-framework" tabindex="-1"><a class="header-anchor" href="#_2-who-will-use-metric-framework" aria-hidden="true">#</a> 2. Who will use metric framework?</h2><p>Any person cares about the system&#39;s status, including but not limited to RD, QA, SRE, DBA, can use the metrics to work more efficiently.</p><h2 id="_3-what-is-metrics" tabindex="-1"><a class="header-anchor" href="#_3-what-is-metrics" aria-hidden="true">#</a> 3. What is metrics?</h2><h3 id="_3-1-key-concept" tabindex="-1"><a class="header-anchor" href="#_3-1-key-concept" aria-hidden="true">#</a> 3.1. Key Concept</h3><p>In IoTDB&#39;s metric module, each metrics is uniquely identified by <code>Metric Name</code> and <code>Tags</code>.</p><ul><li><code>Metric Name</code>: Metric type name, such as <code>logback_events</code> means log events.</li><li><code>Tags</code>: indicator classification, in the form of Key-Value pairs, each indicator can have 0 or more categories, common Key-Value pairs: <ul><li><code>name = xxx</code>: The name of the monitored object, which is the description of <strong>business logic</strong>. For example, for a monitoring item of type <code>Metric Name = entry_seconds_count</code>, the meaning of name refers to the monitored business interface.</li><li><code>type = xxx</code>: Monitoring indicator type subdivision, which is a description of <strong>monitoring indicator</strong> itself. For example, for monitoring items of type <code>Metric Name = point</code>, the meaning of type refers to the specific type of monitoring points.</li><li><code>status = xxx</code>: The status of the monitored object is a description of <strong>business logic</strong>. For example, for monitoring items of type <code>Metric Name = Task</code>, this parameter can be used to distinguish the status of the monitored object.</li><li><code>user = xxx</code>: The relevant user of the monitored object is a description of <strong>business logic</strong>. For example, count the total points written by the <code>root</code> user.</li><li>Customize according to the specific situation: For example, there is a level classification under logback_events_total, which is used to indicate the number of logs under a specific level.</li></ul></li><li><code>Metric Level</code>: The level of metric managing level, The default startup level is <code>Core</code> level, the recommended startup level is <code>Important level</code>, and the audit strictness is <code>Core &gt; Important &gt; Normal &gt; All</code><ul><li><code>Core</code>: Core metrics of the system, used by the <strong>operation and maintenance personnel</strong>, which is related to the * <em>performance, stability, and security</em>* of the system, such as the status of the instance, the load of the system, etc.</li><li><code>Important</code>: Important metrics of the module, which is used by <strong>operation and maintenance and testers</strong>, and is directly related to <strong>the running status of each module</strong>, such as the number of merged files, execution status, etc.</li><li><code>Normal</code>: Normal metrics of the module, used by <strong>developers</strong> to facilitate <strong>locating the module</strong> when problems occur, such as specific key operation situations in the merger.</li><li><code>All</code>: All metrics of the module, used by <strong>module developers</strong>, often used when the problem is reproduced, so as to solve the problem quickly.</li></ul></li></ul><h3 id="_3-2-external-data-format-for-metrics" tabindex="-1"><a class="header-anchor" href="#_3-2-external-data-format-for-metrics" aria-hidden="true">#</a> 3.2. External data format for metrics</h3><ul><li>IoTDB provides metrics in JMX, Prometheus and IoTDB formats: <ul><li>For JMX, metrics can be obtained through <code>org.apache.iotdb.metrics</code>.</li><li>For Prometheus, the value of the metrics can be obtained through the externally exposed port</li><li>External exposure in IoTDB mode: metrics can be obtained by executing IoTDB queries</li></ul></li></ul><h2 id="_4-the-detail-of-metrics" tabindex="-1"><a class="header-anchor" href="#_4-the-detail-of-metrics" aria-hidden="true">#</a> 4. The detail of metrics</h2><p>Currently, IoTDB provides metrics for some main modules externally, and with the development of new functions and system optimization or refactoring, metrics will be added and updated synchronously.</p><p>If you want to add your own metrics data in IoTDB, please see the [IoTDB Metric Framework] (<a href="https://github.com/apache/iotdb/tree/master/metrics" target="_blank" rel="noopener noreferrer">https://github.com/apache/iotdb/tree/master/metrics<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a>) document.</p><h3 id="_4-1-core-level-metrics" tabindex="-1"><a class="header-anchor" href="#_4-1-core-level-metrics" aria-hidden="true">#</a> 4.1. Core level metrics</h3><p>Core-level metrics are enabled by default during system operation. The addition of each Core-level metrics needs to be carefully evaluated. The current Core-level metrics are as follows:</p><h4 id="_4-1-1-cluster" tabindex="-1"><a class="header-anchor" href="#_4-1-1-cluster" aria-hidden="true">#</a> 4.1.1. Cluster</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>config_node</td><td>name=&quot;total&quot;,status=&quot;Registered/Online/Unknown&quot;</td><td>AutoGauge</td><td>The number of registered/online/unknown confignodes</td></tr><tr><td>data_node</td><td>name=&quot;total&quot;,status=&quot;Registered/Online/Unknown&quot;</td><td>AutoGauge</td><td>The number of registered/online/unknown datanodes</td></tr><tr><td>cluster_node_leader_count</td><td>name=&quot;{ip}:{port}&quot;</td><td>Gauge</td><td>The count of consensus group leader on each node</td></tr><tr><td>cluster_node_status</td><td>name=&quot;{ip}:{port}&quot;,type=&quot;ConfigNode/DataNode&quot;</td><td>Gauge</td><td>The current node status, 0=Unkonwn 1=online</td></tr><tr><td>entry</td><td>name=&quot;{interface}&quot;</td><td>Timer</td><td>The time consumed of thrift operations</td></tr><tr><td>mem</td><td>name=&quot;IoTConsensus&quot;</td><td>AutoGauge</td><td>The memory usage of IoTConsensus, Unit: byte</td></tr></tbody></table><h4 id="_4-1-2-interface" tabindex="-1"><a class="header-anchor" href="#_4-1-2-interface" aria-hidden="true">#</a> 4.1.2. Interface</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>thrift_connections</td><td>name=&quot;ConfigNodeRPC&quot;</td><td>AutoGauge</td><td>The number of thrift internal connections in ConfigNode</td></tr><tr><td>thrift_connections</td><td>name=&quot;InternalRPC&quot;</td><td>AutoGauge</td><td>The number of thrift internal connections in DataNode</td></tr><tr><td>thrift_connections</td><td>name=&quot;MPPDataExchangeRPC&quot;</td><td>AutoGauge</td><td>The number of thrift internal connections in MPP</td></tr><tr><td>thrift_connections</td><td>name=&quot;ClientRPC&quot;</td><td>AutoGauge</td><td>The number of thrift connections of Client</td></tr><tr><td>thrift_active_threads</td><td>name=&quot;ConfigNodeRPC-Service&quot;</td><td>AutoGauge</td><td>The number of thrift active internal connections in ConfigNode</td></tr><tr><td>thrift_active_threads</td><td>name=&quot;DataNodeInternalRPC-Service&quot;</td><td>AutoGauge</td><td>The number of thrift active internal connections in DataNode</td></tr><tr><td>thrift_active_threads</td><td>name=&quot;MPPDataExchangeRPC-Service&quot;</td><td>AutoGauge</td><td>The number of thrift active internal connections in MPP</td></tr><tr><td>thrift_active_threads</td><td>name=&quot;ClientRPC-Service&quot;</td><td>AutoGauge</td><td>The number of thrift active connections of client</td></tr><tr><td>session_idle_time</td><td>name = &quot;sessionId&quot;</td><td>Histogram</td><td>The distribution of idle time of different sessions</td></tr></tbody></table><h4 id="_4-1-2-node-statistics" tabindex="-1"><a class="header-anchor" href="#_4-1-2-node-statistics" aria-hidden="true">#</a> 4.1.2. Node Statistics</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>quantity</td><td>name=&quot;database&quot;</td><td>AutoGauge</td><td>The number of database</td></tr><tr><td>quantity</td><td>name=&quot;timeSeries&quot;</td><td>AutoGauge</td><td>The number of timeseries</td></tr><tr><td>quantity</td><td>name=&quot;pointsIn&quot;</td><td>Counter</td><td>The number of write points</td></tr><tr><td>points</td><td>database=&quot;{database}&quot;, type=&quot;flush&quot;</td><td>Gauge</td><td>The point number of last flushed memtable</td></tr></tbody></table><h4 id="_4-1-3-cluster-tracing" tabindex="-1"><a class="header-anchor" href="#_4-1-3-cluster-tracing" aria-hidden="true">#</a> 4.1.3. Cluster Tracing</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>performance_overview</td><td>interface=&quot;{interface}&quot;, type=&quot;{statement_type}&quot;</td><td>Timer</td><td>The time consumed of operations in client</td></tr><tr><td>performance_overview_detail</td><td>stage=&quot;authority&quot;</td><td>Timer</td><td>The time consumed on authority authentication</td></tr><tr><td>performance_overview_detail</td><td>stage=&quot;parser&quot;</td><td>Timer</td><td>The time consumed on parsing statement</td></tr><tr><td>performance_overview_detail</td><td>stage=&quot;analyzer&quot;</td><td>Timer</td><td>The time consumed on analyzing statement</td></tr><tr><td>performance_overview_detail</td><td>stage=&quot;planner&quot;</td><td>Timer</td><td>The time consumed on planning</td></tr><tr><td>performance_overview_detail</td><td>stage=&quot;scheduler&quot;</td><td>Timer</td><td>The time consumed on scheduling</td></tr><tr><td>performance_overview_schedule_detail</td><td>stage=&quot;local_scheduler&quot;</td><td>Timer</td><td>The time consumed on local scheduler</td></tr><tr><td>performance_overview_schedule_detail</td><td>stage=&quot;remote_scheduler&quot;</td><td>Timer</td><td>The time consumed on remote scheduler</td></tr><tr><td>performance_overview_local_detail</td><td>stage=&quot;schema_validate&quot;</td><td>Timer</td><td>The time consumed on schema validation</td></tr><tr><td>performance_overview_local_detail</td><td>stage=&quot;trigger&quot;</td><td>Timer</td><td>The time consumed on trigger</td></tr><tr><td>performance_overview_local_detail</td><td>stage=&quot;storage&quot;</td><td>Timer</td><td>The time consumed on consensus</td></tr><tr><td>performance_overview_storage_detail</td><td>stage=&quot;engine&quot;</td><td>Timer</td><td>The time consumed on write stateMachine</td></tr><tr><td>performance_overview_engine_detail</td><td>stage=&quot;lock&quot;</td><td>Timer</td><td>The time consumed on grabbing lock in DataRegion</td></tr><tr><td>performance_overview_engine_detail</td><td>stage=&quot;create_memtable_block&quot;</td><td>Timer</td><td>The time consumed on creating new memtable</td></tr><tr><td>performance_overview_engine_detail</td><td>stage=&quot;memory_block&quot;</td><td>Timer</td><td>The time consumed on insert memory control</td></tr><tr><td>performance_overview_engine_detail</td><td>stage=&quot;wal&quot;</td><td>Timer</td><td>The time consumed on writing wal</td></tr><tr><td>performance_overview_engine_detail</td><td>stage=&quot;memtable&quot;</td><td>Timer</td><td>The time consumed on writing memtable</td></tr><tr><td>performance_overview_engine_detail</td><td>stage=&quot;last_cache&quot;</td><td>Timer</td><td>The time consumed on updating last cache</td></tr></tbody></table><h4 id="_4-1-5-task-statistics" tabindex="-1"><a class="header-anchor" href="#_4-1-5-task-statistics" aria-hidden="true">#</a> 4.1.5. Task Statistics</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>queue</td><td>name=&quot;compaction_inner&quot;, status=&quot;running/waiting&quot;</td><td>Gauge</td><td>The number of inner compaction tasks</td></tr><tr><td>queue</td><td>name=&quot;compaction_cross&quot;, status=&quot;running/waiting&quot;</td><td>Gauge</td><td>The number of cross compatcion tasks</td></tr><tr><td>queue</td><td>name=&quot;flush&quot;,status=&quot;running/waiting&quot;</td><td>AutoGauge</td><td>The number of flush tasks</td></tr><tr><td>cost_task</td><td>name=&quot;inner_compaction/cross_compaction/flush&quot;</td><td>Gauge</td><td>The time consumed of compaction tasks</td></tr></tbody></table><h4 id="_4-1-6-iotdb-process" tabindex="-1"><a class="header-anchor" href="#_4-1-6-iotdb-process" aria-hidden="true">#</a> 4.1.6. IoTDB process</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>process_cpu_load</td><td>name=&quot;process&quot;</td><td>AutoGauge</td><td>The current CPU usage of IoTDB process, Unit: %</td></tr><tr><td>process_cpu_time</td><td>name=&quot;process&quot;</td><td>AutoGauge</td><td>The total CPU time occupied of IoTDB process, Unit: ns</td></tr><tr><td>process_max_mem</td><td>name=&quot;memory&quot;</td><td>AutoGauge</td><td>The maximum available memory of IoTDB process</td></tr><tr><td>process_total_mem</td><td>name=&quot;memory&quot;</td><td>AutoGauge</td><td>The current requested memory for IoTDB process</td></tr><tr><td>process_free_mem</td><td>name=&quot;memory&quot;</td><td>AutoGauge</td><td>The free available memory of IoTDB process</td></tr></tbody></table><h4 id="_4-1-7-system" tabindex="-1"><a class="header-anchor" href="#_4-1-7-system" aria-hidden="true">#</a> 4.1.7. System</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>sys_cpu_load</td><td>name=&quot;system&quot;</td><td>AutoGauge</td><td>The current CPU usage of system, Unit: %</td></tr><tr><td>sys_cpu_cores</td><td>name=&quot;system&quot;</td><td>Gauge</td><td>The available number of CPU cores</td></tr><tr><td>sys_total_physical_memory_size</td><td>name=&quot;memory&quot;</td><td>Gauge</td><td>The maximum physical memory of system</td></tr><tr><td>sys_free_physical_memory_size</td><td>name=&quot;memory&quot;</td><td>AutoGauge</td><td>The current available memory of system</td></tr><tr><td>sys_total_swap_space_size</td><td>name=&quot;memory&quot;</td><td>AutoGauge</td><td>The maximum swap space of system</td></tr><tr><td>sys_free_swap_space_size</td><td>name=&quot;memory&quot;</td><td>AutoGauge</td><td>The available swap space of system</td></tr><tr><td>sys_committed_vm_size</td><td>name=&quot;memory&quot;</td><td>AutoGauge</td><td>The space of virtual memory available to running processes</td></tr><tr><td>sys_disk_total_space</td><td>name=&quot;disk&quot;</td><td>AutoGauge</td><td>The total disk space</td></tr><tr><td>sys_disk_free_space</td><td>name=&quot;disk&quot;</td><td>AutoGauge</td><td>The available disk space</td></tr></tbody></table><h4 id="_4-1-8-log" tabindex="-1"><a class="header-anchor" href="#_4-1-8-log" aria-hidden="true">#</a> 4.1.8. Log</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>logback_events</td><td>level=&quot;trace/debug/info/warn/error&quot;</td><td>Counter</td><td>The number of log events</td></tr></tbody></table><h4 id="_4-1-9-file" tabindex="-1"><a class="header-anchor" href="#_4-1-9-file" aria-hidden="true">#</a> 4.1.9. File</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>file_size</td><td>name=&quot;wal&quot;</td><td>AutoGauge</td><td>The size of WAL file, Unit: byte</td></tr><tr><td>file_size</td><td>name=&quot;seq&quot;</td><td>AutoGauge</td><td>The size of sequence TsFile, Unit: byte</td></tr><tr><td>file_size</td><td>name=&quot;unseq&quot;</td><td>AutoGauge</td><td>The size of unsequence TsFile, Unit: byte</td></tr><tr><td>file_size</td><td>name=&quot;inner-seq-temp&quot;</td><td>AutoGauge</td><td>The size of inner sequence space compaction temporal file</td></tr><tr><td>file_size</td><td>name=&quot;inner-unseq-temp&quot;</td><td>AutoGauge</td><td>The size of inner unsequence space compaction temporal file</td></tr><tr><td>file_size</td><td>name=&quot;cross-temp&quot;</td><td>AutoGauge</td><td>The size of cross space compaction temoporal file</td></tr><tr><td>file_size</td><td>name=&quot;mods</td><td>AutoGauge</td><td>The size of modification files</td></tr><tr><td>file_count</td><td>name=&quot;wal&quot;</td><td>AutoGauge</td><td>The count of WAL file</td></tr><tr><td>file_count</td><td>name=&quot;seq&quot;</td><td>AutoGauge</td><td>The count of sequence TsFile</td></tr><tr><td>file_count</td><td>name=&quot;unseq&quot;</td><td>AutoGauge</td><td>The count of unsequence TsFile</td></tr><tr><td>file_count</td><td>name=&quot;inner-seq-temp&quot;</td><td>AutoGauge</td><td>The count of inner sequence space compaction temporal file</td></tr><tr><td>file_count</td><td>name=&quot;inner-unseq-temp&quot;</td><td>AutoGauge</td><td>The count of inner unsequence space compaction temporal file</td></tr><tr><td>file_count</td><td>name=&quot;cross-temp&quot;</td><td>AutoGauge</td><td>The count of cross space compaction temporal file</td></tr><tr><td>file_count</td><td>name=&quot;open_file_handlers&quot;</td><td>AutoGauge</td><td>The count of open files of the IoTDB process, only supports Linux and MacOS</td></tr><tr><td>file_count</td><td>name=&quot;mods</td><td>AutoGauge</td><td>The count of modification file</td></tr></tbody></table><h4 id="_4-1-10-jvm-memory" tabindex="-1"><a class="header-anchor" href="#_4-1-10-jvm-memory" aria-hidden="true">#</a> 4.1.10. JVM Memory</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>jvm_buffer_memory_used_bytes</td><td>id=&quot;direct/mapped&quot;</td><td>AutoGauge</td><td>The used size of buffer</td></tr><tr><td>jvm_buffer_total_capacity_bytes</td><td>id=&quot;direct/mapped&quot;</td><td>AutoGauge</td><td>The max size of buffer</td></tr><tr><td>jvm_buffer_count_buffers</td><td>id=&quot;direct/mapped&quot;</td><td>AutoGauge</td><td>The number of buffer</td></tr><tr><td>jvm_memory_committed_bytes</td><td area="heap/nonheap,id=&quot;xxx&quot;,"></td><td>AutoGauge</td><td>The committed memory of JVM</td></tr><tr><td>jvm_memory_max_bytes</td><td area="heap/nonheap,id=&quot;xxx&quot;,"></td><td>AutoGauge</td><td>The max memory of JVM</td></tr><tr><td>jvm_memory_used_bytes</td><td area="heap/nonheap,id=&quot;xxx&quot;,"></td><td>AutoGauge</td><td>The used memory of JVM</td></tr></tbody></table><h4 id="_4-1-11-jvm-thread" tabindex="-1"><a class="header-anchor" href="#_4-1-11-jvm-thread" aria-hidden="true">#</a> 4.1.11. JVM Thread</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>jvm_threads_live_threads</td><td></td><td>AutoGauge</td><td>The number of live thread</td></tr><tr><td>jvm_threads_daemon_threads</td><td></td><td>AutoGauge</td><td>The number of daemon thread</td></tr><tr><td>jvm_threads_peak_threads</td><td></td><td>AutoGauge</td><td>The number of peak thread</td></tr><tr><td>jvm_threads_states_threads</td><td>state=&quot;runnable/blocked/waiting/timed-waiting/new/terminated&quot;</td><td>AutoGauge</td><td>The number of thread in different states</td></tr></tbody></table><h4 id="_4-1-12-jvm-gc" tabindex="-1"><a class="header-anchor" href="#_4-1-12-jvm-gc" aria-hidden="true">#</a> 4.1.12. JVM GC</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>jvm_gc_pause</td><td>action=&quot;end of major GC/end of minor GC&quot;,cause=&quot;xxxx&quot;</td><td>Timer</td><td>The number and time consumed of Young GC/Full Gc caused by different reason</td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td>jvm_gc_concurrent_phase_time</td><td>action=&quot;{action}&quot;,cause=&quot;{cause}&quot;</td><td>Timer</td><td>The number and time consumed of Young GC/Full Gc caused by different</td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td>jvm_gc_max_data_size_bytes</td><td></td><td>AutoGauge</td><td>The historical maximum value of old memory</td></tr><tr><td>jvm_gc_live_data_size_bytes</td><td></td><td>AutoGauge</td><td>The usage of old memory</td></tr><tr><td>jvm_gc_memory_promoted_bytes</td><td></td><td>Counter</td><td>The accumulative value of positive memory growth of old memory</td></tr><tr><td>jvm_gc_memory_allocated_bytes</td><td></td><td>Counter</td><td>The accumulative value of positive memory growth of allocated memory</td></tr></tbody></table><h3 id="_4-2-important-level-metrics" tabindex="-1"><a class="header-anchor" href="#_4-2-important-level-metrics" aria-hidden="true">#</a> 4.2. Important level metrics</h3><h4 id="_4-2-1-node" tabindex="-1"><a class="header-anchor" href="#_4-2-1-node" aria-hidden="true">#</a> 4.2.1. Node</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>region</td><td>name=&quot;total&quot;,type=&quot;SchemaRegion&quot;</td><td>AutoGauge</td><td>The total number of SchemaRegion in PartitionTable</td></tr><tr><td>region</td><td>name=&quot;total&quot;,type=&quot;DataRegion&quot;</td><td>AutoGauge</td><td>The total number of DataRegion in PartitionTable</td></tr><tr><td>region</td><td>name=&quot;{ip}:{port}&quot;,type=&quot;SchemaRegion&quot;</td><td>Gauge</td><td>The number of SchemaRegion in PartitionTable of specific node</td></tr><tr><td>region</td><td>name=&quot;{ip}:{port}&quot;,type=&quot;DataRegion&quot;</td><td>Gauge</td><td>The number of DataRegion in PartitionTable of specific node</td></tr></tbody></table><h4 id="_4-2-2-ratisconsensus" tabindex="-1"><a class="header-anchor" href="#_4-2-2-ratisconsensus" aria-hidden="true">#</a> 4.2.2. RatisConsensus</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>ratis_consensus_write</td><td>stage=&quot;writeLocally&quot;</td><td>Timer</td><td>The time cost of writing locally stage</td></tr><tr><td>ratis_consensus_write</td><td>stage=&quot;writeRemotely&quot;</td><td>Timer</td><td>The time cost of writing remotely stage</td></tr><tr><td>ratis_consensus_write</td><td>stage=&quot;writeStateMachine&quot;</td><td>Timer</td><td>The time cost of writing state machine stage</td></tr><tr><td>ratis_server</td><td>clientWriteRequest</td><td>Timer</td><td>Time taken to process write requests from client</td></tr><tr><td>ratis_server</td><td>followerAppendEntryLatency</td><td>Timer</td><td>Time taken for followers to append log entries</td></tr><tr><td>ratis_log_worker</td><td>appendEntryLatency</td><td>Timer</td><td>Total time taken to append a raft log entry</td></tr><tr><td>ratis_log_worker</td><td>queueingDelay</td><td>Timer</td><td>Time taken for a Raft log operation to get into the queue after being requested, waiting queue to be non-full</td></tr><tr><td>ratis_log_worker</td><td>enqueuedTime</td><td>Timer</td><td>Time spent by a Raft log operation in the queue</td></tr><tr><td>ratis_log_worker</td><td>writelogExecutionTime</td><td>Timer</td><td>Time taken for a Raft log write operation to complete execution</td></tr><tr><td>ratis_log_worker</td><td>flushTime</td><td>Timer</td><td>Time taken to flush log</td></tr><tr><td>ratis_log_worker</td><td>closedSegmentsSizeInBytes</td><td>Gauge</td><td>Size of closed raft log segments in bytes</td></tr><tr><td>ratis_log_worker</td><td>openSegmentSizeInBytes</td><td>Gauge</td><td>Size of open raft log segment in bytes</td></tr></tbody></table><h4 id="_4-2-3-iotconsensus" tabindex="-1"><a class="header-anchor" href="#_4-2-3-iotconsensus" aria-hidden="true">#</a> 4.2.3. IoTConsensus</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>mutli_leader</td><td>name=&quot;logDispatcher-{IP}:{Port}&quot;, region=&quot;{region}&quot;, type=&quot;currentSyncIndex&quot;</td><td>AutoGauge</td><td>The sync index of synchronization thread in replica group</td></tr><tr><td>mutli_leader</td><td>name=&quot;logDispatcher-{IP}:{Port}&quot;, region=&quot;{region}&quot;, type=&quot;cachedRequestInMemoryQueue&quot;</td><td>AutoGauge</td><td>The size of cache requests of synchronization thread in replica group</td></tr><tr><td>mutli_leader</td><td>name=&quot;IoTConsensusServerImpl&quot;, region=&quot;{region}&quot;, type=&quot;searchIndex&quot;</td><td>AutoGauge</td><td>The write process of main process in replica group</td></tr><tr><td>mutli_leader</td><td>name=&quot;IoTConsensusServerImpl&quot;, region=&quot;{region}&quot;, type=&quot;safeIndex&quot;</td><td>AutoGauge</td><td>The sync index of replica group</td></tr><tr><td>mutli_leader</td><td>name=&quot;IoTConsensusServerImpl&quot;, region=&quot;{region}&quot;, type=&quot;syncLag&quot;</td><td>AutoGauge</td><td>The sync lag of replica group</td></tr><tr><td>mutli_leader</td><td>name=&quot;IoTConsensusServerImpl&quot;, region=&quot;{region}&quot;, type=&quot;LogEntriesFromWAL&quot;</td><td>AutoGauge</td><td>The number of logEntries from wal in Batch</td></tr><tr><td>mutli_leader</td><td>name=&quot;IoTConsensusServerImpl&quot;, region=&quot;{region}&quot;, type=&quot;LogEntriesFromQueue&quot;</td><td>AutoGauge</td><td>The number of logEntries from queue in Batch</td></tr><tr><td>stage</td><td>name=&quot;iot_consensus&quot;, region=&quot;{region}&quot;, type=&quot;getStateMachineLock&quot;</td><td>Histogram</td><td>The time consumed to get statemachine lock in main process</td></tr><tr><td>stage</td><td>name=&quot;iot_consensus&quot;, region=&quot;{region}&quot;, type=&quot;checkingBeforeWrite&quot;</td><td>Histogram</td><td>The time consumed to precheck before write in main process</td></tr><tr><td>stage</td><td>name=&quot;iot_consensus&quot;, region=&quot;{region}&quot;, type=&quot;writeStateMachine&quot;</td><td>Histogram</td><td>The time consumed to write statemachine in main process</td></tr><tr><td>stage</td><td>name=&quot;iot_consensus&quot;, region=&quot;{region}&quot;, type=&quot;offerRequestToQueue&quot;</td><td>Histogram</td><td>The time consumed to try to offer request to queue in main process</td></tr><tr><td>stage</td><td>name=&quot;iot_consensus&quot;, region=&quot;{region}&quot;, type=&quot;consensusWrite&quot;</td><td>Histogram</td><td>The time consumed to the whole write in main process</td></tr><tr><td>stage</td><td>name=&quot;iot_consensus&quot;, region=&quot;{region}&quot;, type=&quot;constructBatch&quot;</td><td>Histogram</td><td>The time consumed to construct batch in synchronization thread</td></tr><tr><td>stage</td><td>name=&quot;iot_consensus&quot;, region=&quot;{region}&quot;, type=&quot;syncLogTimePerRequest&quot;</td><td>Histogram</td><td>The time consumed to sync log in asynchronous callback process</td></tr></tbody></table><h4 id="_4-2-4-cache" tabindex="-1"><a class="header-anchor" href="#_4-2-4-cache" aria-hidden="true">#</a> 4.2.4. Cache</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>cache_hit</td><td>name=&quot;chunk&quot;</td><td>AutoGauge</td><td>The cache hit ratio of ChunkCache, Unit: %</td></tr><tr><td>cache_hit</td><td>name=&quot;schema&quot;</td><td>AutoGauge</td><td>The cache hit ratio of SchemaCache, Unit: %</td></tr><tr><td>cache_hit</td><td>name=&quot;timeSeriesMeta&quot;</td><td>AutoGauge</td><td>The cache hit ratio of TimeseriesMetadataCache, Unit: %</td></tr><tr><td>cache_hit</td><td>name=&quot;bloomFilter&quot;</td><td>AutoGauge</td><td>The interception rate of bloomFilter in TimeseriesMetadataCache, Unit: %</td></tr><tr><td>cache</td><td>name=&quot;Database&quot;, type=&quot;hit&quot;</td><td>Counter</td><td>The hit number of Database Cache</td></tr><tr><td>cache</td><td>name=&quot;Database&quot;, type=&quot;all&quot;</td><td>Counter</td><td>The access number of Database Cache</td></tr><tr><td>cache</td><td>name=&quot;SchemaPartition&quot;, type=&quot;hit&quot;</td><td>Counter</td><td>The hit number of SchemaPartition Cache</td></tr><tr><td>cache</td><td>name=&quot;SchemaPartition&quot;, type=&quot;all&quot;</td><td>Counter</td><td>The access number of SchemaPartition Cache</td></tr><tr><td>cache</td><td>name=&quot;DataPartition&quot;, type=&quot;hit&quot;</td><td>Counter</td><td>The hit number of DataPartition Cache</td></tr><tr><td>cache</td><td>name=&quot;DataPartition&quot;, type=&quot;all&quot;</td><td>Counter</td><td>The access number of DataPartition Cache</td></tr><tr><td>cache</td><td>name=&quot;SchemaCache&quot;, type=&quot;hit&quot;</td><td>Counter</td><td>The hit number of Schema Cache</td></tr><tr><td>cache</td><td>name=&quot;SchemaCache&quot;, type=&quot;all&quot;</td><td>Counter</td><td>The access number of Schema Cache</td></tr></tbody></table><h4 id="_4-2-5-memory" tabindex="-1"><a class="header-anchor" href="#_4-2-5-memory" aria-hidden="true">#</a> 4.2.5. Memory</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>mem</td><td>name=&quot;database_{name}&quot;</td><td>AutoGauge</td><td>The memory usage of DataRegion in DataNode, Unit: byte</td></tr><tr><td>mem</td><td>name=&quot;chunkMetaData_{name}&quot;</td><td>AutoGauge</td><td>The memory usage of chunkMetaData when writting TsFile, Unit: byte</td></tr><tr><td>mem</td><td>name=&quot;IoTConsensus&quot;</td><td>AutoGauge</td><td>The memory usage of IoTConsensus, Unit: byte</td></tr><tr><td>mem</td><td>name=&quot;IoTConsensusQueue&quot;</td><td>AutoGauge</td><td>The memory usage of IoTConsensus Queue, Unit: byte</td></tr><tr><td>mem</td><td>name=&quot;IoTConsensusSync&quot;</td><td>AutoGauge</td><td>The memory usage of IoTConsensus SyncStatus, Unit: byte</td></tr><tr><td>mem</td><td>name=&quot;schema_region_total_usage&quot;</td><td>AutoGauge</td><td>The memory usage of all SchemaRegion, Unit: byte</td></tr></tbody></table><h4 id="_4-2-6-compaction" tabindex="-1"><a class="header-anchor" href="#_4-2-6-compaction" aria-hidden="true">#</a> 4.2.6. Compaction</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>data_written</td><td>name=&quot;compaction&quot;, type=&quot;aligned/not-aligned/total&quot;</td><td>Counter</td><td>The written size of compaction</td></tr><tr><td>data_read</td><td>name=&quot;compaction&quot;</td><td>Counter</td><td>The read size of compaction</td></tr><tr><td>compaction_task_count</td><td>name = &quot;inner_compaction&quot;, type=&quot;sequence&quot;</td><td>Counter</td><td>The number of inner sequence compction</td></tr><tr><td>compaction_task_count</td><td>name = &quot;inner_compaction&quot;, type=&quot;unsequence&quot;</td><td>Counter</td><td>The number of inner sequence compction</td></tr><tr><td>compaction_task_count</td><td>name = &quot;cross_compaction&quot;, type=&quot;cross&quot;</td><td>Counter</td><td>The number of corss compction</td></tr></tbody></table><h4 id="_4-2-7-iotdb-process" tabindex="-1"><a class="header-anchor" href="#_4-2-7-iotdb-process" aria-hidden="true">#</a> 4.2.7. IoTDB Process</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>process_used_mem</td><td>name=&quot;memory&quot;</td><td>AutoGauge</td><td>The used memory of IoTDB process</td></tr><tr><td>process_mem_ratio</td><td>name=&quot;memory&quot;</td><td>AutoGauge</td><td>The used memory ratio of IoTDB process</td></tr><tr><td>process_threads_count</td><td>name=&quot;process&quot;</td><td>AutoGauge</td><td>The number of thread of IoTDB process</td></tr><tr><td>process_status</td><td>name=&quot;process&quot;</td><td>AutoGauge</td><td>The status of IoTDB process, 1=live, 0=dead</td></tr></tbody></table><h4 id="_4-2-8-jvm-class" tabindex="-1"><a class="header-anchor" href="#_4-2-8-jvm-class" aria-hidden="true">#</a> 4.2.8. JVM Class</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>jvm_classes_unloaded_classes</td><td></td><td>AutoGauge</td><td>The number of unloaded class</td></tr><tr><td>jvm_classes_loaded_classes</td><td></td><td>AutoGauge</td><td>The number of loaded class</td></tr></tbody></table><h4 id="_4-2-9-jvm-compilation" tabindex="-1"><a class="header-anchor" href="#_4-2-9-jvm-compilation" aria-hidden="true">#</a> 4.2.9. JVM Compilation</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>jvm_compilation_time_ms</td><td compiler="HotSpot 64-Bit Tiered Compilers,"></td><td>AutoGauge</td><td>The time consumed in compilation</td></tr></tbody></table><h4 id="_4-2-10-query-planning" tabindex="-1"><a class="header-anchor" href="#_4-2-10-query-planning" aria-hidden="true">#</a> 4.2.10. Query Planning</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>query_plan_cost</td><td>stage=&quot;analyzer&quot;</td><td>Timer</td><td>The query statement analysis time-consuming</td></tr><tr><td>query_plan_cost</td><td>stage=&quot;logical_planner&quot;</td><td>Timer</td><td>The query logical plan planning time-consuming</td></tr><tr><td>query_plan_cost</td><td>stage=&quot;distribution_planner&quot;</td><td>Timer</td><td>The query distribution plan planning time-consuming</td></tr><tr><td>query_plan_cost</td><td>stage=&quot;partition_fetcher&quot;</td><td>Timer</td><td>The partition information fetching time-consuming</td></tr><tr><td>query_plan_cost</td><td>stage=&quot;schema_fetcher&quot;</td><td>Timer</td><td>The schema information fetching time-consuming</td></tr></tbody></table><h4 id="_4-2-11-plan-dispatcher" tabindex="-1"><a class="header-anchor" href="#_4-2-11-plan-dispatcher" aria-hidden="true">#</a> 4.2.11. Plan Dispatcher</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>dispatcher</td><td>stage=&quot;wait_for_dispatch&quot;</td><td>Timer</td><td>The distribution plan dispatcher time-consuming</td></tr><tr><td>dispatcher</td><td>stage=&quot;dispatch_read&quot;</td><td>Timer</td><td>The distribution plan dispatcher time-consuming (only query)</td></tr></tbody></table><h4 id="_4-2-12-query-resource" tabindex="-1"><a class="header-anchor" href="#_4-2-12-query-resource" aria-hidden="true">#</a> 4.2.12. Query Resource</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>query_resource</td><td>type=&quot;sequence_tsfile&quot;</td><td>Rate</td><td>The access frequency of sequence tsfiles</td></tr><tr><td>query_resource</td><td>type=&quot;unsequence_tsfile&quot;</td><td>Rate</td><td>The access frequency of unsequence tsfiles</td></tr><tr><td>query_resource</td><td>type=&quot;flushing_memtable&quot;</td><td>Rate</td><td>The access frequency of flushing memtables</td></tr><tr><td>query_resource</td><td>type=&quot;working_memtable&quot;</td><td>Rate</td><td>The access frequency of working memtables</td></tr></tbody></table><h4 id="_4-2-13-data-exchange" tabindex="-1"><a class="header-anchor" href="#_4-2-13-data-exchange" aria-hidden="true">#</a> 4.2.13. Data Exchange</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>data_exchange_cost</td><td>operation=&quot;source_handle_get_tsblock&quot;, type=&quot;local/remote&quot;</td><td>Timer</td><td>The time-consuming that source handles receive TsBlock</td></tr><tr><td>data_exchange_cost</td><td>operation=&quot;source_handle_deserialize_tsblock&quot;, type=&quot;local/remote&quot;</td><td>Timer</td><td>The time-consuming that source handles deserialize TsBlock</td></tr><tr><td>data_exchange_cost</td><td>operation=&quot;sink_handle_send_tsblock&quot;, type=&quot;local/remote&quot;</td><td>Timer</td><td>The time-consuming that sink handles send TsBlock</td></tr><tr><td>data_exchange_cost</td><td>operation=&quot;send_new_data_block_event_task&quot;, type=&quot;server/caller&quot;</td><td>Timer</td><td>The RPC time-consuming that sink handles send TsBlock</td></tr><tr><td>data_exchange_cost</td><td>operation=&quot;get_data_block_task&quot;, type=&quot;server/caller&quot;</td><td>Timer</td><td>The RPC time-consuming that source handles receive TsBlock</td></tr><tr><td>data_exchange_cost</td><td>operation=&quot;on_acknowledge_data_block_event_task&quot;, type=&quot;server/caller&quot;</td><td>Timer</td><td>The RPC time-consuming that source handles ack received TsBlock</td></tr><tr><td>data_exchange_count</td><td>name=&quot;send_new_data_block_num&quot;, type=&quot;server/caller&quot;</td><td>Histogram</td><td>The number of sent TsBlocks by sink handles</td></tr><tr><td>data_exchange_count</td><td>name=&quot;get_data_block_num&quot;, type=&quot;server/caller&quot;</td><td>Histogram</td><td>The number of received TsBlocks by source handles</td></tr><tr><td>data_exchange_count</td><td>name=&quot;on_acknowledge_data_block_num&quot;, type=&quot;server/caller&quot;</td><td>Histogram</td><td>The number of acknowledged TsBlocks by source handles</td></tr></tbody></table><h4 id="_4-2-14-query-task-schedule" tabindex="-1"><a class="header-anchor" href="#_4-2-14-query-task-schedule" aria-hidden="true">#</a> 4.2.14. Query Task Schedule</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>driver_scheduler</td><td>name=&quot;ready_queued_time&quot;</td><td>Timer</td><td>The queuing time of ready queue</td></tr><tr><td>driver_scheduler</td><td>name=&quot;block_queued_time&quot;</td><td>Timer</td><td>The queuing time of blocking queue</td></tr><tr><td>driver_scheduler</td><td>name=&quot;ready_queue_task_count&quot;</td><td>AutoGauge</td><td>The number of tasks queued in the ready queue</td></tr><tr><td>driver_scheduler</td><td>name=&quot;block_queued_task_count&quot;</td><td>AutoGauge</td><td>The number of tasks queued in the blocking queue</td></tr></tbody></table><h4 id="_4-2-15-query-execution" tabindex="-1"><a class="header-anchor" href="#_4-2-15-query-execution" aria-hidden="true">#</a> 4.2.15. Query Execution</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>query_execution</td><td>stage=&quot;local_execution_planner&quot;</td><td>Timer</td><td>The time-consuming of operator tree construction</td></tr><tr><td>query_execution</td><td>stage=&quot;query_resource_init&quot;</td><td>Timer</td><td>The time-consuming of query resource initialization</td></tr><tr><td>query_execution</td><td>stage=&quot;get_query_resource_from_mem&quot;</td><td>Timer</td><td>The time-consuming of query resource memory query and construction</td></tr><tr><td>query_execution</td><td>stage=&quot;driver_internal_process&quot;</td><td>Timer</td><td>The time-consuming of driver execution</td></tr><tr><td>query_execution</td><td>stage=&quot;wait_for_result&quot;</td><td>Timer</td><td>The time-consuming of getting query result from result handle</td></tr><tr><td>operator_execution_cost</td><td>name=&quot;{operator_name}&quot;</td><td>Timer</td><td>The operator execution time</td></tr><tr><td>operator_execution_count</td><td>name=&quot;{operator_name}&quot;</td><td>Counter</td><td>The number of operator calls (counted by the number of next method calls)</td></tr><tr><td>aggregation</td><td>from=&quot;raw_data&quot;</td><td>Timer</td><td>The time-consuming of performing an aggregation calculation from a batch of raw data</td></tr><tr><td>aggregation</td><td>from=&quot;statistics&quot;</td><td>Timer</td><td>The time-consuming of updating an aggregated value with statistics</td></tr><tr><td>series_scan_cost</td><td>stage=&quot;load_timeseries_metadata&quot;, type=&quot;aligned/non_aligned&quot;, from=&quot;mem/disk&quot;</td><td>Timer</td><td>The time-consuming of loading TimeseriesMetadata</td></tr><tr><td>series_scan_cost</td><td>stage=&quot;read_timeseries_metadata&quot;, type=&quot;&quot;, from=&quot;cache/file&quot;</td><td>Timer</td><td>The time-consuming of reading TimeseriesMetadata of a tsfile</td></tr><tr><td>series_scan_cost</td><td>stage=&quot;timeseries_metadata_modification&quot;, type=&quot;aligned/non_aligned&quot;, from=&quot;null&quot;</td><td>Timer</td><td>The time-consuming of filtering TimeseriesMetadata by mods</td></tr><tr><td>series_scan_cost</td><td>stage=&quot;load_chunk_metadata_list&quot;, type=&quot;aligned/non_aligned&quot;, from=&quot;mem/disk&quot;</td><td>Timer</td><td>The time-consuming of loading ChunkMetadata list</td></tr><tr><td>series_scan_cost</td><td>stage=&quot;chunk_metadata_modification&quot;, type=&quot;aligned/non_aligned&quot;, from=&quot;mem/disk&quot;</td><td>Timer</td><td>The time-consuming of filtering ChunkMetadata by mods</td></tr><tr><td>series_scan_cost</td><td>stage=&quot;chunk_metadata_filter&quot;, type=&quot;aligned/non_aligned&quot;, from=&quot;mem/disk&quot;</td><td>Timer</td><td>The time-consuming of filtering ChunkMetadata by query filter</td></tr><tr><td>series_scan_cost</td><td>stage=&quot;construct_chunk_reader&quot;, type=&quot;aligned/non_aligned&quot;, from=&quot;mem/disk&quot;</td><td>Timer</td><td>The time-consuming of constructing ChunkReader</td></tr><tr><td>series_scan_cost</td><td>stage=&quot;read_chunk&quot;, type=&quot;&quot;, from=&quot;cache/file&quot;</td><td>Timer</td><td>The time-consuming of reading Chunk</td></tr><tr><td>series_scan_cost</td><td>stage=&quot;init_chunk_reader&quot;, type=&quot;aligned/non_aligned&quot;, from=&quot;mem/disk&quot;</td><td>Timer</td><td>The time-consuming of initializing ChunkReader (constructing PageReader)</td></tr><tr><td>series_scan_cost</td><td>stage=&quot;build_tsblock_from_page_reader&quot;, type=&quot;aligned/non_aligned&quot;, from=&quot;mem/disk&quot;</td><td>Timer</td><td>The time-consuming of constructing Tsblock from PageReader</td></tr><tr><td>series_scan_cost</td><td>stage=&quot;build_tsblock_from_merge_reader&quot;, type=&quot;aligned/non_aligned&quot;, from=&quot;null&quot;</td><td>Timer</td><td>The time-consuming of constructing Tsblock from MergeReader (handling overlapping data)</td></tr></tbody></table><h4 id="_4-2-16-schema-engine" tabindex="-1"><a class="header-anchor" href="#_4-2-16-schema-engine" aria-hidden="true">#</a> 4.2.16 Schema Engine</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>schema_engine</td><td>name=&quot;schema_region_total_mem_usage&quot;</td><td>AutoGauge</td><td>Memory usgae for all SchemaRegion</td></tr><tr><td>schema_engine</td><td>name=&quot;schema_region_mem_capacity&quot;</td><td>AutoGauge</td><td>Memory capacity for all SchemaRegion</td></tr><tr><td>schema_engine</td><td>name=&quot;schema_engine_mode&quot;</td><td>Gauge</td><td>Mode of SchemaEngine</td></tr><tr><td>schema_engine</td><td>name=&quot;schema_region_consensus&quot;</td><td>Gauge</td><td>Consensus protocol of SchemaRegion</td></tr><tr><td>schema_engine</td><td>name=&quot;schema_region_number&quot;</td><td>AutoGauge</td><td>Number of SchemaRegion</td></tr><tr><td>quantity</td><td>name=&quot;template_series_cnt&quot;</td><td>AutoGauge</td><td>Number of template series</td></tr><tr><td>schema_region</td><td>name=&quot;schema_region_mem_usage&quot;, region=&quot;SchemaRegion[{regionId}]&quot;</td><td>AutoGauge</td><td>Memory usgae for each SchemaRegion</td></tr><tr><td>schema_region</td><td>name=&quot;schema_region_series_cnt&quot;, region=&quot;SchemaRegion[{regionId}]&quot;</td><td>AutoGauge</td><td>Number of total timeseries for each SchemaRegion</td></tr><tr><td>schema_region</td><td>name=&quot;activated_template_cnt&quot;, region=&quot;SchemaRegion[{regionId}]&quot;</td><td>AutoGauge</td><td>Number of Activated template for each SchemaRegion</td></tr><tr><td>schema_region</td><td>name=&quot;template_series_cnt&quot;, region=&quot;SchemaRegion[{regionId}]&quot;</td><td>AutoGauge</td><td>Number of template series for each SchemaRegion</td></tr></tbody></table><h4 id="_4-2-17-write-performance" tabindex="-1"><a class="header-anchor" href="#_4-2-17-write-performance" aria-hidden="true">#</a> 4.2.17 Write Performance</h4><table><thead><tr><th>Metric</th><th style="text-align:left;">Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>wal_node_num</td><td style="text-align:left;">name=&quot;wal_nodes_num&quot;</td><td>AutoGauge</td><td>Num of WALNode</td></tr><tr><td>wal_cost</td><td style="text-align:left;">stage=&quot;make_checkpoint&quot; type=&quot;&lt;checkpoint_type&gt;&quot;</td><td>Timer</td><td>Time cost of make checkpoints for all checkpoint type</td></tr><tr><td>wal_cost</td><td style="text-align:left;">type=&quot;serialize_one_wal_info_entry&quot;</td><td>Timer</td><td>Time cost of serialize one WALInfoEntry</td></tr><tr><td>wal_cost</td><td style="text-align:left;">stage=&quot;sync_wal_buffer&quot; type=&quot;&lt;force_flag&gt;&quot;</td><td>Timer</td><td>Time cost of sync WALBuffer</td></tr><tr><td>wal_buffer</td><td style="text-align:left;">name=&quot;used_ratio&quot;</td><td>Histogram</td><td>Used ratio of WALBuffer</td></tr><tr><td>wal_buffer</td><td style="text-align:left;">name=&quot;entries_count&quot;</td><td>Histogram</td><td>Entries Count of WALBuffer</td></tr><tr><td>wal_cost</td><td style="text-align:left;">stage=&quot;serialize_wal_entry&quot; type=&quot;serialize_wal_entry_total&quot;</td><td>Timer</td><td>Time cost of WALBuffer serialize task</td></tr><tr><td>wal_node_info</td><td style="text-align:left;">name=&quot;effective_info_ratio&quot; type=&quot;&lt;wal_node_id&gt;&quot;</td><td>Histogram</td><td>Effective info ratio of WALNode</td></tr><tr><td>wal_node_info</td><td style="text-align:left;">name=&quot;oldest_mem_table_ram_when_cause_snapshot&quot; type=&quot;&lt;wal_node_id&gt;&quot;</td><td>Histogram</td><td>Ram of oldest memTable when cause snapshot</td></tr><tr><td>wal_node_info</td><td style="text-align:left;">name=&quot;oldest_mem_table_ram_when_cause_flush&quot; type=&quot;&lt;wal_node_id&gt;&quot;</td><td>Histogram</td><td>Ram of oldest memTable when cause flush</td></tr><tr><td>flush_sub_task_cost</td><td style="text-align:left;">type=&quot;sort_task&quot;</td><td>Timer</td><td>Time cost of sort series in flush sort stage</td></tr><tr><td>flush_sub_task_cost</td><td style="text-align:left;">type=&quot;encoding_task&quot;</td><td>Timer</td><td>Time cost of sub encoding task in flush encoding stage</td></tr><tr><td>flush_sub_task_cost</td><td style="text-align:left;">type=&quot;io_task&quot;</td><td>Timer</td><td>Time cost of sub io task in flush io stage</td></tr><tr><td>flush_cost</td><td style="text-align:left;">stage=&quot;write_plan_indices&quot;</td><td>Timer</td><td>Time cost of write plan indices</td></tr><tr><td>flush_cost</td><td style="text-align:left;">stage=&quot;sort&quot;</td><td>Timer</td><td>Time cost of flush sort stage</td></tr><tr><td>flush_cost</td><td style="text-align:left;">stage=&quot;encoding&quot;</td><td>Timer</td><td>Time cost of flush encoding stage</td></tr><tr><td>flush_cost</td><td style="text-align:left;">stage=&quot;io&quot;</td><td>Timer</td><td>Time cost of flush io stage</td></tr><tr><td>pending_flush_task</td><td style="text-align:left;">type=&quot;pending_task_num&quot;</td><td>AutoGauge</td><td>Num of pending flush task num</td></tr><tr><td>pending_flush_task</td><td style="text-align:left;">type=&quot;pending_sub_task_num&quot;</td><td>AutoGauge</td><td>Num of pending flush sub task num</td></tr><tr><td>flushing_mem_table_status</td><td style="text-align:left;">name=&quot;mem_table_size&quot; region=&quot;DataRegion[&lt;data_region_id&gt;]&quot;</td><td>Histogram</td><td>Size of flushing memTable</td></tr><tr><td>flushing_mem_table_status</td><td style="text-align:left;">name=&quot;total_point_num&quot; region=&quot;DataRegion[&lt;data_region_id&gt;]&quot;</td><td>Histogram</td><td>Point num of flushing memTable</td></tr><tr><td>flushing_mem_table_status</td><td style="text-align:left;">name=&quot;series_num&quot; region=&quot;DataRegion[&lt;data_region_id&gt;]&quot;</td><td>Histogram</td><td>Series num of flushing memTable</td></tr><tr><td>flushing_mem_table_status</td><td style="text-align:left;">name=&quot;avg_series_points_num&quot; region=&quot;DataRegion[&lt;data_region_id&gt;]&quot;</td><td>Histogram</td><td>Point num of flushing memChunk</td></tr><tr><td>flushing_mem_table_status</td><td style="text-align:left;">name=&quot;tsfile_compression_ratio&quot; region=&quot;DataRegion[&lt;data_region_id&gt;]&quot;</td><td>Histogram</td><td>TsFile Compression ratio of flushing memTable</td></tr><tr><td>flushing_mem_table_status</td><td style="text-align:left;">name=&quot;flush_tsfile_size&quot; region=&quot;DataRegion[&lt;data_region_id&gt;]&quot;</td><td>Histogram</td><td>TsFile size of flushing memTable</td></tr><tr><td>data_region_mem_cost</td><td style="text-align:left;">name=&quot;data_region_mem_cost&quot;</td><td>AutoGauge</td><td>Mem cost of data regions</td></tr></tbody></table><h3 id="_4-3-normal-level-metrics" tabindex="-1"><a class="header-anchor" href="#_4-3-normal-level-metrics" aria-hidden="true">#</a> 4.3. Normal level Metrics</h3><h4 id="_4-3-1-cluster" tabindex="-1"><a class="header-anchor" href="#_4-3-1-cluster" aria-hidden="true">#</a> 4.3.1. Cluster</h4><table><thead><tr><th>Metric</th><th>Tags</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>region</td><td>name=&quot;{DatabaseName}&quot;,type=&quot;SchemaRegion/DataRegion&quot;</td><td>AutoGauge</td><td>The number of DataRegion/SchemaRegion of database in specific node</td></tr><tr><td>slot</td><td>name=&quot;{DatabaseName}&quot;,type=&quot;schemaSlotNumber/dataSlotNumber&quot;</td><td>AutoGauge</td><td>The number of DataSlot/SchemaSlot of database in specific node</td></tr></tbody></table><h3 id="_4-4-all-metric" tabindex="-1"><a class="header-anchor" href="#_4-4-all-metric" aria-hidden="true">#</a> 4.4. All Metric</h3><p>Currently there is no All level metrics, and it will continue to be added in the future.</p><h2 id="_5-how-to-get-these-metrics" tabindex="-1"><a class="header-anchor" href="#_5-how-to-get-these-metrics" aria-hidden="true">#</a> 5. How to get these metrics?</h2><p>The relevant configuration of the metric module is in <code>conf/iotdb-{datanode/confignode}.properties</code>, and all configuration items support hot loading through the <code>load configuration</code> command.</p><h3 id="_5-1-jmx" tabindex="-1"><a class="header-anchor" href="#_5-1-jmx" aria-hidden="true">#</a> 5.1. JMX</h3><p>For metrics exposed externally using JMX, you can view them through Jconsole. After entering the Jconsole monitoring page, you will first see an overview of various running conditions of IoTDB. Here you can see heap memory information, thread information, class information, and the server&#39;s CPU usage.</p><h4 id="_5-1-1-obtain-metric-data" tabindex="-1"><a class="header-anchor" href="#_5-1-1-obtain-metric-data" aria-hidden="true">#</a> 5.1.1. Obtain metric data</h4><p>After connecting to JMX, you can find the &quot;MBean&quot; named &quot;org.apache.iotdb.metrics&quot; through the &quot;MBeans&quot; tab, and you can view the specific values of all monitoring metrics in the sidebar.</p><img style="width:100%;max-width:800px;max-height:600px;margin-left:auto;margin-right:auto;display:block;" alt="metric-jmx" src="https://alioss.timecho.com/docs/img/github/204018765-6fda9391-ebcf-4c80-98c5-26f34bd74df0.png"><h4 id="_5-1-2-get-other-relevant-data" tabindex="-1"><a class="header-anchor" href="#_5-1-2-get-other-relevant-data" aria-hidden="true">#</a> 5.1.2. Get other relevant data</h4><p>After connecting to JMX, you can find the &quot;MBean&quot; named &quot;org.apache.iotdb.service&quot; through the &quot;MBeans&quot; tab, as shown in the image below, to understand the basic status of the service</p><p><img style="width:100%;max-width:800px;max-height:600px;margin-left:auto;margin-right:auto;display:block;" src="https://alioss.timecho.com/docs/img/github/149951720-707f1ee8-32ee-4fde-9252-048caebd232e.png"> <br></p><p>In order to improve query performance, IOTDB caches ChunkMetaData and TsFileMetaData. Users can use MXBean and expand the sidebar <code>org.apache.iotdb.db.service</code> to view the cache hit ratio:</p><img style="width:100%;max-width:800px;max-height:600px;margin-left:auto;margin-right:auto;display:block;" src="https://alioss.timecho.com/docs/img/github/112426760-73e3da80-8d73-11eb-9a8f-9232d1f2033b.png"><h3 id="_5-2-prometheus" tabindex="-1"><a class="header-anchor" href="#_5-2-prometheus" aria-hidden="true">#</a> 5.2. Prometheus</h3><h4 id="_5-2-1-the-mapping-from-metric-type-to-prometheus-format" tabindex="-1"><a class="header-anchor" href="#_5-2-1-the-mapping-from-metric-type-to-prometheus-format" aria-hidden="true">#</a> 5.2.1. The mapping from metric type to prometheus format</h4><blockquote><p>For metrics whose Metric Name is name and Tags are K1=V1, ..., Kn=Vn, the mapping is as follows, where value is a specific value</p></blockquote><table><thead><tr><th>Metric Type</th><th>Mapping</th></tr></thead><tbody><tr><td>Counter</td><td>name_total{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;} value</td></tr><tr><td>AutoGauge、Gauge</td><td>name{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;} value</td></tr><tr><td>Histogram</td><td>name_max{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;} value <br> name_sum{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;} value <br> name_count{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;} value <br> name{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;, quantile=&quot;0.0&quot;} value <br> name{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;, quantile=&quot;0.5&quot;} value <br> name{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;, quantile=&quot;0.99&quot;} value <br> name{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;, quantile=&quot;0.999&quot;} value</td></tr><tr><td>Rate</td><td>name_total{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;} value <br> name_total{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;, rate=&quot;m1&quot;} value <br> name_total{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;, rate=&quot;m5&quot;} value <br> name_total{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;, rate=&quot;m15&quot;} value <br> name_total{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;, rate=&quot;mean&quot;} value</td></tr><tr><td>Timer</td><td>name_seconds_max{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;} value <br> name_seconds_sum{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;} value <br> name_seconds_count{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;} value <br> name_seconds{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;, quantile=&quot;0.0&quot;} value <br> name_seconds{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;, quantile=&quot;0.5&quot;} value <br> name_seconds{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;, quantile=&quot;0.99&quot;} value <br> name_seconds{cluster=&quot;clusterName&quot;, nodeType=&quot;nodeType&quot;, nodeId=&quot;nodeId&quot;, k1=&quot;V1&quot;, ..., Kn=&quot;Vn&quot;, quantile=&quot;0.999&quot;} value</td></tr></tbody></table><h4 id="_5-2-2-config-file" tabindex="-1"><a class="header-anchor" href="#_5-2-2-config-file" aria-hidden="true">#</a> 5.2.2. Config File</h4><ol><li>Taking DataNode as an example, modify the iotdb-datanode.properties configuration file as follows:</li></ol><div class="language-properties line-numbers-mode" data-ext="properties"><pre class="language-properties"><code><span class="token key attr-name">dn_metric_reporter_list</span><span class="token punctuation">=</span><span class="token value attr-value">PROMETHEUS</span>
<span class="token key attr-name">dn_metric_level</span><span class="token punctuation">=</span><span class="token value attr-value">CORE</span>
<span class="token key attr-name">dn_metric_prometheus_reporter_port</span><span class="token punctuation">=</span><span class="token value attr-value">9091</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>Then you can get metrics data as follows</p><ol start="2"><li>Start IoTDB DataNodes</li><li>Open a browser or use <code>curl</code> to visit <code>http://servier_ip:9091/metrics</code>, you can get the following metric data:</li></ol><div class="language-text line-numbers-mode" data-ext="text"><pre class="language-text"><code>...
# HELP file_count
# TYPE file_count gauge
file_count{name=&quot;wal&quot;,} 0.0
file_count{name=&quot;unseq&quot;,} 0.0
file_count{name=&quot;seq&quot;,} 2.0
...
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="_5-2-3-prometheus-grafana" tabindex="-1"><a class="header-anchor" href="#_5-2-3-prometheus-grafana" aria-hidden="true">#</a> 5.2.3. Prometheus + Grafana</h4><p>As shown above, IoTDB exposes monitoring metrics data in the standard Prometheus format to the outside world. Prometheus can be used to collect and store monitoring indicators, and Grafana can be used to visualize monitoring indicators.</p><p>The following picture describes the relationships among IoTDB, Prometheus and Grafana</p><figure><img src="https://alioss.timecho.com/docs/img/UserGuide/System-Tools/Metrics/iotdb_prometheus_grafana.png" alt="iotdb_prometheus_grafana" tabindex="0" loading="lazy"><figcaption>iotdb_prometheus_grafana</figcaption></figure><ol><li>Along with running, IoTDB will collect its metrics continuously.</li><li>Prometheus scrapes metrics from IoTDB at a constant interval (can be configured).</li><li>Prometheus saves these metrics to its inner TSDB.</li><li>Grafana queries metrics from Prometheus at a constant interval (can be configured) and then presents them on the graph.</li></ol><p>So, we need to do some additional works to configure and deploy Prometheus and Grafana.</p><p>For instance, you can config your Prometheus as follows to get metrics data from IoTDB:</p><div class="language-yaml line-numbers-mode" data-ext="yml"><pre class="language-yaml"><code><span class="token key atrule">job_name</span><span class="token punctuation">:</span> pull<span class="token punctuation">-</span>metrics
<span class="token key atrule">honor_labels</span><span class="token punctuation">:</span> <span class="token boolean important">true</span>
<span class="token key atrule">honor_timestamps</span><span class="token punctuation">:</span> <span class="token boolean important">true</span>
<span class="token key atrule">scrape_interval</span><span class="token punctuation">:</span> 15s
<span class="token key atrule">scrape_timeout</span><span class="token punctuation">:</span> 10s
<span class="token key atrule">metrics_path</span><span class="token punctuation">:</span> /metrics
<span class="token key atrule">scheme</span><span class="token punctuation">:</span> http
<span class="token key atrule">follow_redirects</span><span class="token punctuation">:</span> <span class="token boolean important">true</span>
<span class="token key atrule">static_configs</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> <span class="token key atrule">targets</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> localhost<span class="token punctuation">:</span><span class="token number">9091</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>The following documents may help you have a good journey with Prometheus and Grafana.</p><p><a href="https://prometheus.io/docs/prometheus/latest/getting_started/" target="_blank" rel="noopener noreferrer">Prometheus getting_started<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a></p><p><a href="https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config" target="_blank" rel="noopener noreferrer">Prometheus scrape metrics<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a></p><p><a href="https://grafana.com/docs/grafana/latest/getting-started/getting-started/" target="_blank" rel="noopener noreferrer">Grafana getting_started<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a></p><p><a href="https://prometheus.io/docs/visualization/grafana/#grafana-support-for-prometheus" target="_blank" rel="noopener noreferrer">Grafana query metrics from Prometheus<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a></p><h4 id="_5-2-4-apache-iotdb-dashboard" tabindex="-1"><a class="header-anchor" href="#_5-2-4-apache-iotdb-dashboard" aria-hidden="true">#</a> 5.2.4. Apache IoTDB Dashboard</h4><p>We provide the Apache IoTDB Dashboard, and the rendering shown in Grafana is as follows:</p><figure><img src="https://alioss.timecho.com/docs/img/UserGuide/System-Tools/Metrics/dashboard.png" alt="Apache IoTDB Dashboard" tabindex="0" loading="lazy"><figcaption>Apache IoTDB Dashboard</figcaption></figure><p>You can obtain the json files of Dashboards in enterprise version.</p><h3 id="_5-3-iotdb" tabindex="-1"><a class="header-anchor" href="#_5-3-iotdb" aria-hidden="true">#</a> 5.3. IoTDB</h3><h4 id="_5-3-1-iotdb-mapping-relationship-of-metrics" tabindex="-1"><a class="header-anchor" href="#_5-3-1-iotdb-mapping-relationship-of-metrics" aria-hidden="true">#</a> 5.3.1. IoTDB mapping relationship of metrics</h4><blockquote><p>For metrics whose Metric Name is name and Tags are K1=V1, ..., Kn=Vn, the mapping is as follows, taking root.__ system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code> as an example by default</p></blockquote><table><thead><tr><th>Metric Type</th><th>Mapping</th></tr></thead><tbody><tr><td>Counter</td><td>root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.value</td></tr><tr><td>AutoGauge、Gauge</td><td>root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.value</td></tr><tr><td>Histogram</td><td>root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.count <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.max <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.sum <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.p0 <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.p50 <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.p75 <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.p99 <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.p999</td></tr><tr><td>Rate</td><td>root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.count <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.mean <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.m1 <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.m5 <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.m15</td></tr><tr><td>Timer</td><td>root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.count <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.max <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.mean <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.sum <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.p0 <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.p50 <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.p75 <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.p99 <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.p999 <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.m1 <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.m5 <br> root.__system.metric.<code>clusterName</code>.<code>nodeType</code>.<code>nodeId</code>.name.<code>K1=V1</code>...<code>Kn=Vn</code>.m15</td></tr></tbody></table><h4 id="_5-3-2-obtain-metrics" tabindex="-1"><a class="header-anchor" href="#_5-3-2-obtain-metrics" aria-hidden="true">#</a> 5.3.2. Obtain metrics</h4><p>According to the above mapping relationship, related IoTDB query statements can be formed to obtain metrics</p></div><!----><footer class="page-meta"><div class="meta-item edit-link"><a href="https://github.com/apache/iotdb/edit/master/docs/UserGuide/Monitor-Alert/Metric-Tool.md" rel="noopener noreferrer" target="_blank" aria-label="Found Error? Edit this page on GitHub" class="nav-link label"><!--[--><svg xmlns="http://www.w3.org/2000/svg" class="icon edit-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="edit icon"><path d="M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"></path><path d="M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"></path></svg><!--]-->Found Error? Edit this page on GitHub<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!----></a></div><div class="meta-item git-info"><!----><!----></div></footer><nav class="page-nav"><!----><a href="/UserGuide/Master/Monitor-Alert/Alerting.html" class="nav-link next" aria-label="Alerting"><div class="hint">Next<span class="arrow end"></span></div><div class="link">Alerting<!----></div></a></nav><!----><!----><!--]--></main><!--]--><footer style="padding-bottom:2rem;"><span id="doc-version" style="display:none;">master</span><p style="text-align:center;color:#909399;font-size:12px;margin:0 30px;">Copyright © 2023 The Apache Software Foundation.<br> Apache and the Apache feather logo are trademarks of The Apache Software Foundation</p><p style="text-align:center;margin-top:10px;color:#909399;font-size:12px;margin:0 30px;"><strong>Have a question?</strong> Connect with us on QQ, WeChat, or Slack. <a href="https://github.com/apache/iotdb/issues/1995">Join the community</a> now.</p><p style="text-align:center;margin-top:10px;color:#909399;font-size:12px;margin:0 30px;"> We use <a href="https://analytics.google.com">Google Analytics</a> to collect anonymous, aggregated usage information. </p></footer></div><!--]--><!--]--><!----><!--]--></div>
<script type="module" src="/assets/app-f2ec2f8e.js" defer></script>
</body>
</html>