Sentinel动态规则API模式命令【实战笔记】

目录
一、动态规则API命令
    1.支持的API命令
    2.基本信息命令
    3.获取规则命令
    4.获取资源clusterNodeVO
    5.集群资源监控信息
    6.簇点链路
    7.获取origin clusterNode
    8.获取所有的clusterNode VO
    9.查看系统状态
    10.Metrics Tree
    11.查询规则开关状态
    12.关闭/开启规则
    13.监控数据
    14.使用的Sentinel客户端版本
    15.规则变更
    16.集群规则
    17.集群规则设置
二、系列文章

一、动态规则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   exception
2   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: melonSentinel

idx 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|0
1571046478000|__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

二、系列文章

Sentinel服务治理知识梳理【原理笔记】

Sentinel服务治理工作原理【源码笔记】

Sentinel服务治理中各个插槽职责【源码笔记】

Sentinel基于滑动窗口的流量统计【源码笔记】


「瓜农老梁  学习同行」

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值