前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Sentinel动态规则API模式命令【实战笔记】

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

作者头像
瓜农老梁
发布2019-10-16 13:37:38
1.5K0
发布2019-10-16 13:37:38
举报
文章被收录于专栏:瓜农老梁瓜农老梁
一、动态规则API命令

使用API模式命令需要在客户端引入sentinel-transport-simple-http模块。

1.支持的API命令

http://x.x.x.x:8719/api 备注:get all available command handlers

代码语言:javascript
复制
[{
    "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

代码语言:javascript
复制
{
    "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

代码语言:javascript
复制
[{
    "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

代码语言:javascript
复制
[{"count":1000.0,"grade":0,"limitApp":"default","passCount":0,"resource":"melonSentinel","timeWindow":10}]
系统规则

http://x.x.x.x:8719/getRules?type=system

代码语言:javascript
复制
[{
    "avgRt": -1,
    "highestCpuUsage": 0.6,
    "highestSystemLoad": -1.0,
    "maxThread": -1,
    "qps": -1.0
}]

授权规则(黑白名单) http://x.x.x.x:8719/getRules?type=authority

代码语言:javascript
复制
[{
    "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}

代码语言:javascript
复制
{
    "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}

代码语言:javascript
复制
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

代码语言:javascript
复制
[{"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}

代码语言:javascript
复制
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

代码语言:javascript
复制
[{
    "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

代码语言:javascript
复制
{"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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
Sentinel switch value: true
12.关闭/开启规则

http://x.x.x.x:8719/setSwitch?value=false 备注:setSwitch set sentinel switch, accept param: value={true|false}

代码语言:javascript
复制
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}

代码语言:javascript
复制
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

代码语言:javascript
复制
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}

代码语言:javascript
复制
success
16.集群规则

http://x.x.x.x:8719/getClusterMode 备注:get cluster mode status

代码语言:javascript
复制
{"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

代码语言:javascript
复制
success
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 瓜农老梁 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、动态规则API命令
  • 1.支持的API命令
  • 2.基本信息命令
  • 3.获取规则命令
  • 流控规则
  • 降级规则
  • 系统规则
  • 4.获取资源clusterNodeVO
  • 5.集群资源监控信息
  • 6.簇点链路
  • 7.获取origin clusterNode
  • 8.获取所有的clusterNode VO
  • 9.查看系统状态
  • 10.Metrics Tree
  • 特定资源的Metrics
  • 11.查询规则开关状态
  • 12.关闭/开启规则
  • 13.监控数据
  • 14.使用的Sentinel客户端版本
  • 15.规则变更
  • 16.集群规则
  • 17.集群规则设置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档