目录
Pt1.2 sentinel-transport-common配置项
Pt1 启动项配置
Pt1.1 sentinel-core配置项
基础配置项
名称 | 含义 | 类型 | 默认值 | 是否必需 | 备注 |
---|---|---|---|---|---|
project.name | 指定应用的名称 | String | null | 否 | |
csp.sentinel.app.type | 指定应用的类型 | int | 0 (APP_TYPE_COMMON ) | 否 | 1.6.0 引入 |
csp.sentinel.metric.file.single.size | 单个监控日志文件的大小 | long | 52428800 (50MB) | 否 | |
csp.sentinel.metric.file.total.count | 监控日志文件的总数上限 | int | 6 | 否 | |
csp.sentinel.statistic.max.rt | 最大的有效响应时长(ms),超出此值则按照此值记录 | int | 4900 | 否 | 1.4.1 引入 |
csp.sentinel.spi.classloader | SPI 加载时使用的 ClassLoader,默认为给定类的 ClassLoader | String | default | 否 | 若配置 context 则使用 thread context ClassLoader。1.7.0 引入 |
其中 project.name
项用于指定应用名(appName)。若未指定,则默认解析 main 函数的类名作为应用名。实际项目使用中建议手动指定应用名。
日志相关配置项
名称 | 含义 | 类型 | 默认值 | 是否必需 | 备注 |
---|---|---|---|---|---|
csp.sentinel.log.dir | Sentinel 日志文件目录 | String | ${user.home}/logs/csp/ | 否 | 1.3.0 引入 |
csp.sentinel.log.use.pid | 日志文件名中是否加入进程号,用于单机部署多个应用的情况 | boolean | false | 否 | 1.3.0 引入 |
csp.sentinel.log.output.type | Record 日志输出的类型,file 代表输出至文件,console 代表输出至终端 | String | file | 否 | 1.6.2 引入 |
注意:若需要在单台机器上运行相同服务的多个实例,则需要加入
-Dcsp.sentinel.log.use.pid=true
来保证不同实例日志的独立性。
Pt1.2 sentinel-transport-common配置项
名称 | 含义 | 类型 | 默认值 | 是否必需 |
---|---|---|---|---|
csp.sentinel.dashboard.server | 控制台的地址,指定控制台后客户端会自动向该地址发送心跳包。地址格式为:hostIp:port | String | null | 是 |
csp.sentinel.heartbeat.interval.ms | 心跳包发送周期,单位毫秒 | long | null | 非必需,若不进行配置,则会从相应的 HeartbeatSender 中提取默认值 |
csp.sentinel.api.port | 本地启动 HTTP API Server 的端口号 | int | 8719 | 否 |
csp.sentinel.heartbeat.client.ip | 指定心跳包中本机的 IP | String | - | 若不指定则通过 HostNameUtil 解析;该配置项多用于多网卡环境 |
注:
csp.sentinel.api.port
可不提供,默认为 8719,若端口冲突会自动向下探测可用的端口。
Pt2 日志配置
Pt2.1 拦截详情日志
无论触发了限流、熔断降级还是系统保护,它们的秒级拦截详情日志都在 ${user_home}/logs/csp/sentinel-block.log
里。如果没有发生拦截,则该日志不会出现。日志格式如下:
2014-06-20 16:35:10|1|sayHello(java.lang.String,long),FlowException,default,origin|61,0 2014-06-20 16:35:11|1|sayHello(java.lang.String,long),FlowException,default,origin|1,0
日志含义:
index | 例子 | 说明 |
---|---|---|
1 | 2014-06-20 16:35:10 | 时间戳 |
2 | 1 | 该秒发生的第一个资源 |
3 | sayHello(java.lang.String,long) | 资源名称 |
4 | XXXException | 拦截的原因, 通常 FlowException 代表是被限流规则拦截,DegradeException 则表示被降级,SystemBlockException 则表示被系统保护拦截 |
5 | default | 生效规则的调用来源(参数限流中代表生效的参数) |
6 | origin | 被拦截资源的调用者,可以为空 |
7 | 61,0 | 61 被拦截的数量,0无意义可忽略 |
Pt2.2 秒级监控日志
所有的资源都会产生秒级日志,它在 ${user_home}/logs/csp/${app_name}-${pid}-metrics.log
里。格式如下:
1532415661000|2018-07-24 15:01:01|sayHello(java.lang.String)|12|3|4|2|295
-
1532415661000
:时间戳 -
2018-07-24 15:01:01
:格式化之后的时间戳 -
sayHello(java.lang.String)
:资源名 -
12
:表示到来的数量,即此刻通过 Sentinel 规则 check 的数量(passed QPS) -
3
:实际该资源被拦截的数量(blocked QPS) -
4
:每秒结束的资源个数(完成调用),包括正常结束和异常结束的情况(exit QPS) -
2
:异常的数量 -
295
:资源的平均响应时间(RT)
Pt2.3 业务日志
其它的日志在 ${user_home}/logs/csp/sentinel-record.log.xxx
里。该日志包含规则的推送、接收、处理等记录,排查问题的时候会非常有帮助。
Pt2.4 集群限流日志
-
${log_dir}/sentinel-cluster-client.log
:Token Client 日志,会记录请求失败的信息