一个基于eureka服务发现对微服务应用JVM和WEB请求指标、微服务运行状态的监控,并通过图形化来展示的小型轻量级监控系统。
- 服务发现
- influxdb读写支持基于微服务名称的HASH算法分片
- grafana支持influxdb分片导航
- 微服务运行状态图
- jvm监控图
spring-cloud-monitor安装依赖如下服务,请按照官网安装文档安装:
- grafana https://grafana.com/get
- influxdb https://portal.influxdata.com/downloads
- redis https://redis.io/download
安装golang >1.9.x,执行build.sh编译.
$ cd /path/to/spring-cloud-monitor/app
$ ./build.sh
微服务监控状态Dashboard中直接从redis(单机版直接从内存中)取出微服务列表,再根据微服务获取实例健康状态值。在Dashboard界面上设计了10种渐变颜色来说明服务的健康状态如下图所示:
从红色到绿色,分别来说明健康状态,红色表示所有服务已经不可用了,绿色代表所有服务可用,中间态表示部分服务可用,部分服务不可用。变红表示开始有些实例不可用了,变绿表示不可用实例开始恢复了。
并使用3个区间来分别表示1分钟、5分钟、15分钟服务健康状态,如下所示:
并计算所有实例1分钟的健康状态值的平均数来做为微服务的健康状态,如下所示,有一个实例已经挂了:
如下所示,所有实例已经挂了:
如下所示,其中一个实例刚刚在1分钟内down了:
如下所示,其中一个实例已经挂了快5分钟了:
如下所示,其中一个实例已经挂了快5分钟了,但已经开始恢复了:
如下所示,其中一个已经挂了的实例,在1分钟前恢复了:
如下所示,如果应用未开放/health
(或者无法连接),显示会灰色:
实例状态趋势图: