http方式
json格式
JSON:
{
"timestamp": 1357441367,
"data": {
"endpoint1": {
"group1": {
"key1": {
"type": 0,
"unit": "req/s",
"value": 250,
},
"key2": {
"type": 3,
"unit": "qps",
"value": "$(key1)/$(key2)",
},
"key3": {
"type": 3,
"unit": "",
"value": "delta($(key1))/delta($(key2))",
},
"req1_time": {
"type": 0,
"unit": "",
"value": 10
},
"req2_time": {
"type": 0,
"unit": "",
"value": 50
},
"req1_counter": {
"type": 0,
"unit": "",
"value": 2
},
"req2_counter": {
"type": 0,
"unit": "",
"value": 5
},
"req{$1}_speed": {
"type": 4,
"rexp": "^req([0-9]+)_", // 生成这组key,其正则表达式描述,()中的会被捕获标记为$1,$2...
"unit": "/s",
"value": $(req{$1}_time) / $req{$1}_counter
},
},
"group2" :{
}
},
"endpoint2": {
}
}
}
说明:
-
timestamp
为数据生成时的时间戳,如果当前时间戳和上次时间戳相同,本次数据会做丢弃处理。 -
endpoint
, 描述counter所在的服务器和端口组合(端口可选)。 -
group
, 描述counter的分组,为了后续能以层级结构展示,注意group不能和别人的group冲突。建议加一个前缀来区分。 -
key
的长度不要超过128, key只允许使用以下字符[0-9a-zA-Z-_.] -
key1
中的字段可以用-
(中划线)来分隔,展示的时候可以根据其做层级划分。 -
type
描述该counter值得类型,值为0,1,2,3或者4。type为0,代表
As is
,即不会对该counter做处理,直接存原始值。type为1,代表
speed per second
,即最终存储的值为(当前值-上次值)/(当前时间-上次时间)
type为2,代表
simple change
,即最终存储的值为当前值-上次值
type为3,代表
dynamic value
,即最终存储的值为一个或多个key的简单运算结果type为4,描述一组key的复杂生成规则,可参考上面的
req{$1}_speed
-
unit
,描述该counter的单位,用作后续的展示。 -
value
,描述counter当前的值,当type
为3或者4时,value
为表达式。
{
"timestamp": 12345,
"data": {
"10.6.2.22:8081" : { // endpoint
},
"10.6.2.22:8080" : { // endpoint
"perf-mfsv2-avatar": { // group, 不要和别人重复
"upstream_time": { // key, 在该group内不能重复
"type": 2, // 最终存储的值为 simple change,即(当前值-上次值)
"unit": "s",
"value": 9804,
},
"upstream_time_counter": {
"type": 1, // 最终存储的值为 speed per second, 即(当前值-上次值)/(当前时间-上次时间)
"unit": "次",
"value": 9804,
},
"upstream_time_speed": {
"type": 3, // 简单表达式
"unit": "次/s",
"value": "delta($(upstream_time))/delta($(upstream_time_counter))", // delta("key") 指的是该counter (当前值-上次值)
}
"req1_time": {
"type": 0,
"unit": "",
"value": 10
},
"req2_time": {
"type": 0,
"unit": "",
"value": 50
},
"req1_counter": {
"type": 0,
"unit": "",
"value": 2
},
"req2_counter": {
"type": 0,
"unit": "",
"value": 5
},
"req{$1}_speed": {
"type": 4, // 复杂的计算表达式
"rexp": "^req([0-9]+)_", // 生成这组key,其正则表达式描述,()中的会被捕获标记为$1,$2...
"unit": "/s",
"value": $(req{$1}_time) / $(req{$1}_counter)
},
}
}
}
}