Skip to content
Peihao Yang edited this page Feb 23, 2022 · 6 revisions

Metrics 导出到 Prometheus 进行可视化监控

当前版本支持将开发者定义的 metrics 导出到监控系统中,参见 sentinel/src/exporter.rs,其中定义了一些 GaugeCounter 类型的 metrics 将 sentinel 的相关 metrics 导出到默认端口的默认路径下,启动浏览器访问 localhost:9091/metrics,可以看到导出的数据。导出的端口号和默认路径可以在 sentinel 的配置文件中进行修改,参见文档中的配置章节和源码下的相关配置样例。

如果使用配置文件 /examples/exporter/prometheus/prometheus.yaml 启动 Prometheus,部署在 localhost:9090 的 Prometheus 服务端会自动发现 9091 端口上的 sentinel exporter,可以借助它进行可视化。

需要注意的是,使用该功能需要激活 sentinel crate 的 exporter feature,默认的条件编译选项中并没有开启它。

record 日志

Sentinel 使用了 log 的接口来记录运行日志。目前仅支持两种 logger 的实现。激活 logger_env 特性使用输出到命令行的 env_logger;激活 logger_log4rs 特性使用支持定制的 log4rs,如果没有设置 logger 的配置文件路径,会选择项目根目录下的 log4rs.yaml 配置文件。

如果没有选择 logger,log 库会自动选择一个 "noop" 实现,将不会产生任何日志。

该日志包含规则的推送、接收、处理等记录,排查问题的时候会非常有帮助。

秒级监控日志

资源的秒级日志(metric 日志)位于 ~/logs/csp/ 目录下,文件名格式为 ${appName}-metrics.log.${date}.xx。例如,该日志的名字可能为 my-app-metrics.log.2020-01-22.1。日志样例:

1529573107000|2018-06-21 17:25:07|foo-service|10|3601|10|0|27

日志字段说明:

index 例子 说明
1 1529573107000 时间戳
2 2018-06-21 17:25:07 日期
3 foo-service 资源名称
4 10 这一秒通过的资源请求个数 (pass)
5 3601 这一秒资源被拦截的个数 (block)
6 10 这一秒完成调用的资源个数 (complete),包括正常结束和异常结束的情况
7 0 这一秒资源的异常个数 (error)
8 27 资源平均响应时间(ms)