This is an automated email from the ASF dual-hosted git repository.

xingtanzjr pushed a commit to branch rel/0.13
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/rel/0.13 by this push:
     new 76f7fa49e5 [To rel/0.13][IOTDB-3978] Add thrift connection metric. 
(#6798)
76f7fa49e5 is described below

commit 76f7fa49e50b330140b8f589e791bd82fa949c29
Author: ZhangHongYin <[email protected]>
AuthorDate: Thu Jul 28 18:27:15 2022 +0800

    [To rel/0.13][IOTDB-3978] Add thrift connection metric. (#6798)
---
 docs/UserGuide/Maintenance-Tools/Metric-Tool.md           | 13 +++++++------
 docs/zh/UserGuide/Maintenance-Tools/Metric-Tool.md        | 13 +++++++------
 .../org/apache/iotdb/db/service/metrics/enums/Metric.java |  3 ++-
 .../service/thrift/handler/RPCServiceThriftHandler.java   | 15 ++++++++++++++-
 4 files changed, 30 insertions(+), 14 deletions(-)

diff --git a/docs/UserGuide/Maintenance-Tools/Metric-Tool.md 
b/docs/UserGuide/Maintenance-Tools/Metric-Tool.md
index 689e91aaa9..34522ae3e4 100644
--- a/docs/UserGuide/Maintenance-Tools/Metric-Tool.md
+++ b/docs/UserGuide/Maintenance-Tools/Metric-Tool.md
@@ -78,12 +78,13 @@ Next, we will choose Prometheus format data as samples to 
describe each kind of
 
 #### 4.3.1. API
 
-| Metric              | Tag                   | level     | Description        
                      | Sample                                       |
-| ------------------- | --------------------- | --------- | 
---------------------------------------- | 
-------------------------------------------- |
-| entry_seconds_count | name="interface name" | important | The total request 
count of the interface | entry_seconds_count{name="openSession",} 1.0 |
-| entry_seconds_sum   | name="interface name" | important | The total cost 
seconds of the interface  | entry_seconds_sum{name="openSession",} 0.024 |
-| entry_seconds_max   | name="interface name" | important | The max latency of 
the interface         | entry_seconds_max{name="openSession",} 0.024 |
-| quantity_total      | name="pointsIn"       | important | The total points 
inserted into IoTDB     | quantity_total{name="pointsIn",} 1.0         |
+| Metric              | Tag                      | level     | Description     
                         | Sample                                       |
+| ------------------- | ------------------------ | --------- | 
---------------------------------------- | 
-------------------------------------------- |
+| entry_seconds_count | name="{{interface}}"     | important | The total 
request count of the interface | entry_seconds_count{name="openSession",} 1.0 |
+| entry_seconds_sum   | name="{{interface}}"     | important | The total cost 
seconds of the interface  | entry_seconds_sum{name="openSession",} 0.024 |
+| entry_seconds_max   | name="{{interface}}"     | important | The max latency 
of the interface         | entry_seconds_max{name="openSession",} 0.024 |
+| quantity_total      | name="pointsIn"          | important | The total 
points inserted into IoTDB     | quantity_total{name="pointsIn",} 1.0         |
+| thrift_connections  | name="{{thriftService}}" | core      | current number 
of thrift connections     | thrift_connections{name="RPC",} 1.0          |
 
 #### 4.3.2. Task
 | Metric                  | Tag                                                
                           | level     | Description                            
                  | Sample                                                      
                            |
diff --git a/docs/zh/UserGuide/Maintenance-Tools/Metric-Tool.md 
b/docs/zh/UserGuide/Maintenance-Tools/Metric-Tool.md
index 05b68d2296..fa7f9ae3be 100644
--- a/docs/zh/UserGuide/Maintenance-Tools/Metric-Tool.md
+++ b/docs/zh/UserGuide/Maintenance-Tools/Metric-Tool.md
@@ -76,12 +76,13 @@ IoTDB对外提供JMX和Prometheus格式的监控指标,对于JMX,可以通
 
 #### 4.3.1. 接入层
 
-| Metric              | Tag             | level     | 说明             | 示例      
                                   |
-| ------------------- | --------------- | --------- | ---------------- | 
-------------------------------------------- |
-| entry_seconds_count | name="接口名"   | important | 接口累计访问次数 | 
entry_seconds_count{name="openSession",} 1.0 |
-| entry_seconds_sum   | name="接口名"   | important | 接口累计耗时(s)  | 
entry_seconds_sum{name="openSession",} 0.024 |
-| entry_seconds_max   | name="接口名"   | important | 接口最大耗时(s)  | 
entry_seconds_max{name="openSession",} 0.024 |
-| quantity_total      | name="pointsIn" | important | 系统累计写入点数 | 
quantity_total{name="pointsIn",} 1.0         |
+| Metric              | Tag                      | level     | 说明             
| 示例                                         |
+| ------------------- | ------------------------ | --------- | 
---------------- | -------------------------------------------- |
+| entry_seconds_count | name="{{interface}}"     | important | 接口累计访问次数 | 
entry_seconds_count{name="openSession",} 1.0 |
+| entry_seconds_sum   | name="{{interface}}"     | important | 接口累计耗时(s)  | 
entry_seconds_sum{name="openSession",} 0.024 |
+| entry_seconds_max   | name="{{interface}}"     | important | 接口最大耗时(s)  | 
entry_seconds_max{name="openSession",} 0.024 |
+| quantity_total      | name="pointsIn"          | important | 系统累计写入点数 | 
quantity_total{name="pointsIn",} 1.0         |
+| thrift_connections  | name="{{thriftService}}" | core      | thrift当前连接数 | 
thrift_connections{name="RPC",} 1.0          |
 
 #### 4.3.2. Task
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/service/metrics/enums/Metric.java 
b/server/src/main/java/org/apache/iotdb/db/service/metrics/enums/Metric.java
index 79c96b6fd6..88efa07155 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/metrics/enums/Metric.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/metrics/enums/Metric.java
@@ -53,7 +53,8 @@ public enum Metric {
   SYS_FREE_SWAP_SPACE_SIZE,
   SYS_COMMITTED_VM_SIZE,
   SYS_DISK_TOTAL_SPACE,
-  SYS_DISK_FREE_SPACE;
+  SYS_DISK_FREE_SPACE,
+  THRIFT_CONNECTIONS;
 
   @Override
   public String toString() {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/service/thrift/handler/RPCServiceThriftHandler.java
 
b/server/src/main/java/org/apache/iotdb/db/service/thrift/handler/RPCServiceThriftHandler.java
index 7bdf65fd7b..bda894c9c6 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/service/thrift/handler/RPCServiceThriftHandler.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/service/thrift/handler/RPCServiceThriftHandler.java
@@ -16,7 +16,11 @@
  */
 package org.apache.iotdb.db.service.thrift.handler;
 
+import org.apache.iotdb.db.service.metrics.MetricsService;
+import org.apache.iotdb.db.service.metrics.enums.Metric;
+import org.apache.iotdb.db.service.metrics.enums.Tag;
 import org.apache.iotdb.db.service.thrift.impl.TSServiceImpl;
+import org.apache.iotdb.metrics.utils.MetricLevel;
 
 import org.apache.thrift.protocol.TProtocol;
 import org.apache.thrift.server.ServerContext;
@@ -32,7 +36,11 @@ public class RPCServiceThriftHandler implements 
TServerEventHandler {
 
   @Override
   public ServerContext createContext(TProtocol arg0, TProtocol arg1) {
-    // nothing
+    MetricsService.getInstance()
+        .getMetricManager()
+        .getOrCreateGauge(
+            Metric.THRIFT_CONNECTIONS.toString(), MetricLevel.CORE, 
Tag.NAME.toString(), "RPC")
+        .incr(1L);
     return null;
   }
 
@@ -40,6 +48,11 @@ public class RPCServiceThriftHandler implements 
TServerEventHandler {
   public void deleteContext(ServerContext arg0, TProtocol arg1, TProtocol 
arg2) {
     // release query resources.
     serviceImpl.handleClientExit();
+    MetricsService.getInstance()
+        .getMetricManager()
+        .getOrCreateGauge(
+            Metric.THRIFT_CONNECTIONS.toString(), MetricLevel.CORE, 
Tag.NAME.toString(), "RPC")
+        .decr(1L);
   }
 
   @Override

Reply via email to