summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzhengchao <[email protected]>2019-01-07 17:23:12 +0600
committerzhengchao <[email protected]>2019-01-07 17:23:12 +0600
commita3827e1c6481ad9bc759c8a2e00c688604976354 (patch)
treef7749af2763c17934adeef88a10ffa94d9b004e6
parent317aab84bf36fc4e81d8ae08e802176950e1dfd7 (diff)
对于FS_STYLE_STATUS+FS_CALC_CURRENT使用Histogram输出,以便实现多节点的当前值的聚合。
-rw-r--r--readme.md16
-rw-r--r--src/MESA_field_stat.cpp2
2 files changed, 14 insertions, 4 deletions
diff --git a/readme.md b/readme.md
index 468edb9..168bfb0 100644
--- a/readme.md
+++ b/readme.md
@@ -26,13 +26,21 @@ field_ids[i]=FS_register(handle, FS_STYLE_FIELD, FS_CALC_CURRENT, "field_01");
### 状态(Status)
-​ `FS_STYLE_STATUS` 输出累计值或瞬时值。
+​ `FS_STYLE_STATUS` ,可以输出当前值(FS_CALC_CURRENT)或速度值(FS_CALC_SPEED)。
```c
status_00: 100 status_01: 10
```
-​ 函数接口
+​ 输出前值(FS_CALC_CURRENT)时,StatsD输出会采用Histogram类型,以便telegraf对其进行聚合。例如下面的grafana查询语句:
+
+`SELECT sum("sum_sum") / 5 FROM "[tango_cache]SESSION_REDIS" WHERE $timeFilter GROUP BY time(10s) fill(linear)`
+
+​ 该语句在聚合多个节点上SESSION_REDIS的总数,group by 的时间为10s,因为FieldStat的输出间隔为2s(通过`STAT_CYCLE`参数),所以sum("sum_sum") 的值要再除以5。
+
+​ 注意:在使用多个FieldStat实例时,`STAT_CYCLE`必须设定为相同的值。
+
+函数接口
```
status_ids[i]=FS_register(handle, FS_STYLE_STATUS, FS_CALC_CURRENT, "status_01");
@@ -40,7 +48,7 @@ status_ids[i]=FS_register(handle, FS_STYLE_STATUS, FS_CALC_CURRENT, "status_01")
### 表格 (Line&Column)
- `FS_STYLE_LINE`和`FS_STYLE_COLUMN `输出累计值或瞬时值。
+ `FS_STYLE_LINE`和`FS_STYLE_COLUMN `输出当前值或速度值。
```
___________________________________________________________________________________________________
@@ -124,6 +132,8 @@ line,app_name=APPNAME column1=value,column2=value
`percentiles = [50, 60, 80, 90, 95, 99]`
+
+
## 统计
### 记录统计值
diff --git a/src/MESA_field_stat.cpp b/src/MESA_field_stat.cpp
index 6dbfe9b..28d19b7 100644
--- a/src/MESA_field_stat.cpp
+++ b/src/MESA_field_stat.cpp
@@ -1014,7 +1014,7 @@ void StatsD_output(struct FS_space_t* _handle)
switch(p->style)
{
case FS_STYLE_STATUS:
- if(p->calc_type==FS_CALC_SPEED)
+ if(p->calc_type==FS_CALC_CURRENT)
{
value=get_stat_unit_val(p, 0, FS_CALC_CURRENT, 1);
append_statsd_histogram(_handle, p->name, value, 1);