SentinelAPI模式部分命令
API模式命令依赖
使用API模式命令需要在客户端引入sentinel-transport-simple-http模块。
1.查看支持的API命令及说明
http://IP:对外通信端口/api
[
{
"url":"/cnode",
"desc":"get clusterNode metrics by id, request param: id={resourceName}"
},
{
"url":"/setParamFlowRules",
"desc":"Set parameter flow rules, while previous rules will be replaced."
},
{
"url":"/origin",
"desc":"get origin clusterNode by id, request param: id={resourceName}"
},
{
"url":"/cluster/server/flowRules",
"desc":"get cluster flow rules"
},
{
"url":"/cluster/server/modifyFlowConfig",
"desc":"modify cluster server flow config"
},
{
"url":"/cluster/server/modifyTransportConfig",
"desc":"modify cluster server transport config"
},
{
"url":"/basicInfo",
"desc":"get sentinel config info"
},
{
"url":"/getClusterMode",
"desc":"get cluster mode status"
},
{
"url":"/cluster/client/modifyConfig",
"desc":"modify cluster client config"
},
{
"url":"/setClusterMode",
"desc":"set cluster mode, accept param: mode={0|1} 0:client mode 1:server mode"
},
{
"url":"/getRules",
"desc":"get all active rules by type, request param: type={ruleType}"
},
{
"url":"/api",
"desc":"get all available command handlers"
},
{
"url":"/setRules",
"desc":"modify the rules, accept param: type={ruleType}&data={ruleJson}"
},
{
"url":"/cluster/server/modifyNamespaceSet",
"desc":"modify server namespace set"
},
{
"url":"/cluster/client/fetchConfig",
"desc":"get cluster client config"
},
{
"url":"/cluster/server/paramRules",
"desc":"get cluster server param flow rules"
},
{
"url":"/tree",
"desc":"get metrics in tree mode, use id to specify detailed tree root"
},
{
"url":"/cluster/server/fetchConfig",
"desc":"get cluster server config"
},
{
"url":"/version",
"desc":"get sentinel version"
},
{
"url":"/clusterNode",
"desc":"get all clusterNode VO, use type=notZero to ignore those nodes with totalRequest <=0"
},
{
"url":"/jsonTree",
"desc":"get tree node VO start from root node"
},
{
"url":"/getParamFlowRules",
"desc":"Get all parameter flow rules"
},
{
"url":"/cluster/server/modifyParamRules",
"desc":"modify cluster param flow rules"
},
{
"url":"/metric",
"desc":"get and aggregate metrics, accept param: startTime={startTime}&endTime={endTime}&maxLines={maxLines}&identify={resourceName}"
},
{
"url":"/systemStatus",
"desc":"get system status"
},
{
"url":"/cluster/server/modifyFlowRules",
"desc":"modify cluster flow rules"
},
{
"url":"/cluster/server/metricList",
"desc":"get cluster server metrics"
},
{
"url":"/getSwitch",
"desc":"get sentinel switch status"
},
{
"url":"/setSwitch",
"desc":"set sentinel switch, accept param: value={true|false}"
},
{
"url":"/clusterNodeById",
"desc":"get clusterNode VO by id, request param: id={resourceName}"
},
{
"url":"/cluster/server/info",
"desc":"get cluster server info"
}
]
2.基本信息命令
http://IP:对外通信端口/basicInfo
{
"machine": "earl-MacBook-Pro.local",
"ip": "192.168.10.46"
}
3.获取规则命令
http://IP:对外通信端口/getRules?type={type}
目前支持四种规则查看,暂未发现热点规则接口查看方式
参数 | 说明 |
---|---|
flow | 查看流控规则 |
degrade | 查看降级规则 |
authority | 查看系统规则 |
system | 查看授权规则 |
- 流控:http://IP:对外通信端口/getRules?type=flow
[{"clusterConfig":{"fallbackToLocalWhenFail":true,"sampleCount":10,"strategy":0,"thresholdType":0,"windowIntervalMs":1000},"clusterMode":false,"controlBehavior":0,"count":2.0,"grade":1,"limitApp":"default","maxQueueingTimeMs":500,"resource":"getTest","strategy":0,"warmUpPeriodSec":10}]
- 降级:http://IP:对外通信端口/getRules?type=degrade
[
{
"count":0.2,
"grade":1,
"limitApp":"default",
"minRequestAmount":2,
"resource":"getTestRT",
"rtSlowRequestAmount":5,
"timeWindow":10
}
]
- 系统:http://IP:对外通信端口/getRules?type=authority
[
{
"limitApp":"demo22",
"resource":"getTest",
"strategy":0
}
]
- 授权:http://IP:对外通信端口/getRules?type=system
[
{
"avgRt":2,
"highestCpuUsage":-1,
"highestSystemLoad":-1,
"maxThread":-1,
"qps":-1
}
]
4.获取资源clusterNodeVO
http://IP:对外通信端口/clusterNodeById?id={resourceName}
{
"averageRt":0,
"blockQps":0,
"exceptionQps":0,
"oneMinuteBlock":1,
"oneMinuteException":0,
"oneMinutePass":0,
"oneMinuteTotal":1,
"passQps":0,
"resource":"getTest",
"successQps":0,
"threadNum":0,
"timestamp":1620374043294,
"totalQps":0
}
5.簇点链路
http://IP:对外通信端口/jsonTree?type=root
[{"averageRt":0,"blockQps":0,"exceptionQps":0,"id":"9788f92a-786e-47ba-bd77-9db161ce9e92","oneMinuteBlock":0,"oneMinuteException":0,"oneMinutePass":0,"oneMinuteTotal":0,"passQps":0,"resource":"machine-root","successQps":0,"threadNum":0,"timestamp":1620374217513,"totalQps":0},{"averageRt":0,"blockQps":0,"exceptionQps":0,"id":"0fdbc53a-a3a3-480c-ad05-d5a44dd3edcf","oneMinuteBlock":0,"oneMinuteException":0,"oneMinutePass":0,"oneMinuteTotal":0,"parentId":"9788f92a-786e-47ba-bd77-9db161ce9e92","passQps":0,"resource":"sentinel_spring_web_context","successQps":0,"threadNum":0,"timestamp":1620374217513,"totalQps":0},{"averageRt":0,"blockQps":0,"exceptionQps":0,"id":"dfb41dfc-c722-4a4a-b3a6-cc310818826e","oneMinuteBlock":0,"oneMinuteException":0,"oneMinutePass":0,"oneMinuteTotal":0,"parentId":"0fdbc53a-a3a3-480c-ad05-d5a44dd3edcf","passQps":0,"resource":"/root/getTest","successQps":0,"threadNum":0,"timestamp":1620374217513,"totalQps":0},{"averageRt":0,"blockQps":0,"exceptionQps":0,"id":"05f8468d-2bb9-4450-8495-4250e8adf6de","oneMinuteBlock":0,"oneMinuteException":0,"oneMinutePass":0,"oneMinuteTotal":0,"parentId":"dfb41dfc-c722-4a4a-b3a6-cc310818826e","passQps":0,"resource":"getTest","successQps":0,"threadNum":0,"timestamp":1620374217513,"totalQps":0},{"averageRt":0,"blockQps":0,"exceptionQps":0,"id":"d07a5d78-a6c5-4059-a8cb-3d932293d16e","oneMinuteBlock":0,"oneMinuteException":0,"oneMinutePass":0,"oneMinuteTotal":0,"parentId":"0fdbc53a-a3a3-480c-ad05-d5a44dd3edcf","passQps":0,"resource":"/error","successQps":0,"threadNum":0,"timestamp":1620374217513,"totalQps":0},{"averageRt":0,"blockQps":0,"exceptionQps":0,"id":"fbd00c7b-7f6d-4c37-833e-6016984d7b80","oneMinuteBlock":0,"oneMinuteException":0,"oneMinutePass":0,"oneMinuteTotal":0,"parentId":"9788f92a-786e-47ba-bd77-9db161ce9e92","passQps":0,"resource":"sentinel_default_context","successQps":0,"threadNum":0,"timestamp":1620374217513,"totalQps":0}]
6.获取origin clusterNode
http://IP:对外通信端口/origin?id={resourceName}
id: getTest
idx originthreadNum passQps blockQps totalQps aRt 1m-pass 1m-block 1m-total
1 demo 0 0.0 0.0 0.0 0.0 0 0 0
7.获取所有的clusterNode VO
http://IP:对外通信端口/clusterNode
[{"averageRt":0,"blockQps":0,"exceptionQps":0,"oneMinuteBlock":0,"oneMinuteException":0,"oneMinutePass":0,"oneMinuteTotal":0,"passQps":0,"resource":"/root/getTest","successQps":0,"threadNum":0,"timestamp":1620374482142,"totalQps":0},
{"averageRt":0,"blockQps":0,"exceptionQps":0,"oneMinuteBlock":0,"oneMinuteException":0,"oneMinutePass":0,"oneMinuteTotal":0,"passQps":0,"resource":"/error","successQps":0,"threadNum":0,"timestamp":1620374482142,"totalQps":0},
{"averageRt":0,"blockQps":0,"exceptionQps":0,"oneMinuteBlock":0,"oneMinuteException":0,"oneMinutePass":0,"oneMinuteTotal":0,"passQps":0,"resource":"getTest","successQps":0,"threadNum":0,"timestamp":1620374482142,"totalQps":0}]
8.查看系统状态
http://IP:对外通信端口/systemStatus
{
"b":0,
"r":0,
"t":0,
"qps":0,
"rqps":0
}
9.树状试图
http://IP:对外通信端口/tree?id={resourceName}
EntranceNode: machine-root(t:0 pq:0.0 bq:0.0 tq:0.0 rt:0.0 prq:0.0 1mp:0 1mb:0 1mt:0)
-EntranceNode: sentinel_spring_web_context(t:0 pq:0.0 bq:0.0 tq:0.0 rt:0.0 prq:0.0 1mp:0 1mb:0 1mt:0)
--/root/getTest(t:0 pq:0.0 bq:0.0 tq:0.0 rt:0.0 prq:0.0 1mp:0 1mb:0 1mt:0)
---getTest(t:0 pq:0.0 bq:0.0 tq:0.0 rt:0.0 prq:0.0 1mp:0 1mb:0 1mt:0)
--/error(t:0 pq:0.0 bq:0.0 tq:0.0 rt:0.0 prq:0.0 1mp:0 1mb:0 1mt:0)
-EntranceNode: sentinel_default_context(t:0 pq:0.0 bq:0.0 tq:0.0 rt:0.0 prq:0.0 1mp:0 1mb:0 1mt:0)
t:threadNum pq:passQps bq:blockQps tq:totalQps rt:averageRt prq: passRequestQps 1mp:1m-pass 1mb:1m-block 1mt:1m-total
10.查询规则开关状态
http://IP:对外通信端口/getSwitch
Sentinel switch value: true
11.关闭/开启规则
http://IP:对外通信端口/setSwitch?value={value}
参数 | 说明 |
---|---|
true | 开启 |
false | 关闭 |
Sentinel set switch value: true
12.监控数据
http://IP:对外通信端口/metric?startTime={startTime}&endTime={endTime}&maxLines={maxLines}&identify={resourceName}
1620376297000|__system_load__|26435|0|0|0|0|0|0|0
1620376297000|__cpu_usage__|558|0|0|0|0|0|0|0
13.使用的Sentinel客户端版本
http://IP:对外通信端口/version
1.7.1
14.规则变更
http://IP:对外通信端口/type={ruleType}&data={ruleJson}
success