Sentinel动态规则API模式命令

1,019 阅读4分钟
一、动态规则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

欢迎关注微信公众号 「瓜农老梁」。