一、动态规则API命令
使用API模式命令需要在客户端引入sentinel-transport-simple-http模块。
1.支持的API命令
http://x.x.x.x:8719/api
备注:get all available command handlers
[{ "url": "/cnode", "desc": "get clusterNode metrics by id, request param: id={resourceName}"}, { "url": "/origin", "desc": "get origin clusterNode by id, request param: id={resourceName}"}, { "url": "/tree", "desc": "get metrics in tree mode, use id to specify detailed tree root"}, { "url": "/version", "desc": "get sentinel version"}, { "url": "/clusterNode", "desc": "get all clusterNode VO, use type=notZero to ignore those nodes with totalRequest <=0"}, { "url": "/basicInfo", "desc": "get sentinel config info"}, { "url": "/jsonTree", "desc": "get tree node VO start from root node"}, { "url": "/getClusterMode", "desc": "get cluster mode status"}, { "url": "/metric", "desc": "get and aggregate metrics, accept param: startTime={startTime}&endTime={endTime}&maxLines={maxLines}&identify={resourceName}"}, { "url": "/setClusterMode", "desc": "set cluster mode, accept param: mode={0|1} 0:client mode 1:server mode"}, { "url": "/systemStatus", "desc": "get system status"}, { "url": "/getSwitch", "desc": "get sentinel switch status"}, { "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": "/setSwitch", "desc": "set sentinel switch, accept param: value={true|false}"}, { "url": "/clusterNodeById", "desc": "get clusterNode VO by id, request param: id={resourceName}"}]
2.基本信息命令
http://x.x.x.x:8719/basicInfo
备注:get sentinel config info
{ "machine": "localhost", "ip": "172.17.202.84"}
3.获取规则命令
http://x.x.x.x:8719/getRules?type={}
支持4种类型:flow、degrade、authority、system
备注:get all active rules by type, request param: type={ruleType}
流控规则
http://x.x.x.x:8719/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": "melonSentinel", "strategy": 0, "warmUpPeriodSec": 10}]
降级规则
http://x.x.x.x:8719/getRules?type=degrade
[{"count":1000.0,"grade":0,"limitApp":"default","passCount":0,"resource":"melonSentinel","timeWindow":10}]
系统规则
http://x.x.x.x:8719/getRules?type=system
[{ "avgRt": -1, "highestCpuUsage": 0.6, "highestSystemLoad": -1.0, "maxThread": -1, "qps": -1.0}]
授权规则(黑白名单)
http://x.x.x.x:8719/getRules?type=authority
[{ "limitApp": "Test01", "resource": "melonSentinel", "strategy": 1}]
4.获取资源clusterNodeVO
http: //x.x.x.x:8719/clusterNodeById?id=melonSentinel
备注:get clusterNode VO by id, request param: id={resourceName}
{ "averageRt": 0, "blockQps": 0, "exceptionQps": 0, "oneMinuteBlock": 0, "oneMinuteException": 0, "oneMinutePass": 0, "oneMinuteTotal": 0, "passQps": 0, "resource": "melonSentinel", "successQps": 0, "threadNum": 0, "timestamp": 1571042212251, "totalQps": 0}
5.集群资源监控信息
http://x.x.x.x:8719/cnode?id=melonSentinel
备注:get clusterNode metrics by id, request param: id={resourceName}
idx id thread pass blocked success total aRt 1m-pass 1m-block 1m-all exception2 melonSentinel 0 0.0 0.0 0.0 0.0 0.0 0 0 0 0.0
6.簇点链路
http://x.x.x.x:8719/jsonTree?type=root
备注:get tree node VO start from root node
[{"averageRt":0,"blockQps":0,"exceptionQps":0,"id":"6f6d19bc-412f-497f-aef2-dbbc72a7d997","oneMinuteBlock":0,"oneMinuteException":0,"oneMinutePass":0,"oneMinuteTotal":0,"passQps":0,"resource":"machine-root","successQps":0,"threadNum":0,"timestamp":1571034483436,"totalQps":0},{"averageRt":0,"blockQps":0,"exceptionQps":0,"id":"57f25e01-0568-4350-bbf0-6287dab39710","oneMinuteBlock":0,"oneMinuteException":0,"oneMinutePass":0,"oneMinuteTotal":0,"parentId":"6f6d19bc-412f-497f-aef2-dbbc72a7d997","passQps":0,"resource":"sentinel_default_context","successQps":0,"threadNum":0,"timestamp":1571034483436,"totalQps":0},{"averageRt":0,"blockQps":0,"exceptionQps":0,"id":"b697d5e7-c608-4018-9563-d872052516da","oneMinuteBlock":0,"oneMinuteException":0,"oneMinutePass":0,"oneMinuteTotal":0,"parentId":"57f25e01-0568-4350-bbf0-6287dab39710","passQps":0,"resource":"melonSentinel","successQps":0,"threadNum":0,"timestamp":1571034483436,"totalQps":0}]
7.获取origin clusterNode
http://x.x.x.x:8719/origin?id=melonSentinel
备注:get origin clusterNode by id, request param: id={resourceName}
id: melonSentinelidx originthreadNum passQps blockQps totalQps aRt 1m-pass 1m-block 1m-total
8.获取所有的clusterNode VO
http://x.x.x.x:8719/clusterNode
备注:get all clusterNode VO, use type=notZero to ignore those nodes with totalRequest <=0
[{ "averageRt": 0, "blockQps": 0, "exceptionQps": 0, "oneMinuteBlock": 0, "oneMinuteException": 0, "oneMinutePass": 0, "oneMinuteTotal": 0, "passQps": 0, "resource": "melonSentinel", "successQps": 0, "threadNum": 0, "timestamp": 1571044165381, "totalQps": 0}]
9.查看系统状态
http://x.x.x.x:8719/systemStatus
备注:get system status
{"b":0.0,"r":0.0,"t":0,"qps":0.0,"rqps":0.0}
10.Metrics Tree
http://x.x.x.x:8719/tree
备注:get metrics in tree mode, use id to specify detailed tree root
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_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)--melonSentinel(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
特定资源的Metrics
http://x.x.x.x:8719/tree?id=melonSentinel
t:threadNum pq:passQps bq:blockQps tq:totalQps rt:averageRt prq: passRequestQps 1mp:1m-pass 1mb:1m-block 1mt:1m-total
11.查询规则开关状态
http://x.x.x.x:8719/getSwitch
备注:get sentinel switch status
Sentinel switch value: true
12.关闭/开启规则
http://x.x.x.x:8719/setSwitch?value=false
备注:setSwitch set sentinel switch, accept param: value={true|false}
Sentinel set switch value: false
13.监控数据
http://172.17.202.84:8719/metric?startTime=1571046028000&endTime=1571046034000&identify=melonSentinel
备注:get and aggregate metrics, accept param: startTime={startTime}&endTime={endTime}&maxLines={maxLines}&identify={resourceName}
1571046478000|__system_load__|20351|0|0|0|0|0|0|01571046478000|__cpu_usage__|936|0|0|0|0|0|0|0
14.使用的Sentinel客户端版本
http://x.x.x.x:8719/version
备注:get sentinel version
1.6.3
15.规则变更
http://x.x.x.x:8719/setRules?type=authority&data=\[{"limitApp":"Test01","resource":"melonSentinel","strategy":1},{"limitApp":"TestB02","resource":"melonSentinel","strategy":1},{"limitApp":"TestB03","resource":"melonSentinel","strategy":1}\]
备注:modify the rules, accept param: type={ruleType}&data={ruleJson}
success
16.集群规则
http://x.x.x.x:8719/getClusterMode
备注:get cluster mode status
{"mode":-1,"clientAvailable":false,"serverAvailable":false,"lastModified":-1}
17.集群规则设置
http://x.x.x.x:8719/setClusterMode?mode=1
备注:set cluster mode, accept param: mode={0|1} 0:client mode 1:server mode
success