微服务监控指标详解(9大核心指标)

微服务监控指标详解(9大核心指标)-mikechen

要做好微服务监控,需要了解清楚具体监控哪些指标,下面给大家总结了9大微服务监控指标@mikechen

请求响应时间

用于衡量微服务的处理能力,表示从接收请求到返回响应所花费的时间,较短的响应时间通常表示较好的性能。

例如:平均响应时间:100ms等;

 

请求成功率

表示成功处理的请求占总请求数的比例,用于评估服务的可用性和稳定性。

比如:

  • 成功请求:1000次;
  • 总请求数:1100次;
  • 成功率:90.91%;

 

错误率

表示发生错误的请求占总请求数的比例,用于评估服务的健康状况和错误处理能力。

比如:

  • 错误请求:50次;
  • 总请求数:1100次;
  • 错误率:4.55%;

 

吞吐量

吞吐量:表示在一段时间内服务处理的请求数量,用于评估服务的处理能力和负载情况。

吞吐量通常用每秒请求数(Requests Per Second,RPS)来衡量,即在每秒钟内服务能够处理的请求数量。

例如,如果一个微服务在某一时刻的吞吐量为100 RPS,意味着该服务在每秒钟内能够处理100个请求。

吞吐量是一个重要的性能指标,特别是在高负载情况下,它可以帮助评估系统的性能瓶颈和资源限制。

 

并发连接数

并发连接数是指在同一时刻,系统或服务中同时建立的连接数的数量。

对于微服务架构中的并发连接数,它表示在某一时刻同时与服务进行通信的客户端连接数。

例如:一个微服务在某一时刻的并发连接数为100,表示有100个客户端同时连接到该服务进行通信。

并发连接数是一个重要的性能指标,它反映了服务在某一时刻所承受的并发负载。

 

CPU和内存使用率

表示服务实例的CPU和内存资源利用率,用于评估服务的资源消耗和性能。

比如:

CPU使用率:60%;
内存使用率:70%;

 

服务实例的健康状态

服务实例的健康状态通常通过以下方式进行监控和评估:

  1. 心跳检查(Heartbeat Check): 服务实例会定期发送心跳信号,向注册中心或健康检查组件表明自己仍然存活。如果一个实例在一定时间内没有发送心跳信号,那么它很可能已经失去响应或宕机,被认为是不健康的。
  2. 健康检查(Health Check): 服务实例可以定期进行健康检查,检查自身的运行状况和状态。健康检查通常检查服务的关键指标和依赖组件的连接状况。如果一个实例的健康检查失败,它被认为是不健康的,会从服务发现中移除,不再接收流量。
  3. 负载均衡健康检查: 在负载均衡器中,可以设置健康检查来定期验证服务实例是否存活和响应正常。如果服务实例被检查为不健康,负载均衡器将停止将请求发送给该实例,避免向不可用的服务实例发送请求。
  4. 日志和指标监控: 监控服务实例的日志和指标数据,识别是否存在异常或错误情况。例如,错误日志的数量、异常状态码的出现等可以用来判断服务实例的健康状态。
  5. 自愈和自动扩展: 一旦发现服务实例不健康,可以启动自愈机制,例如自动重新启动或自动扩展新的实例,以保持服务的稳定性和可用性。

 

服务之间的请求追踪

服务之间的请求追踪(Request Tracing)是指在微服务架构中跟踪一个请求在不同服务之间的调用链路。

一般来说,请求追踪的流程如下:

  1. 请求入口: 当一个请求进入系统时,一个唯一的Trace ID被生成,并附加到请求中。
  2. 服务调用: 请求经过第一个服务处理后,可能会调用其他服务,将Trace ID传递给其他服务。
  3. 记录信息: 每个服务在处理请求时,会记录自己的处理信息和Trace ID,包括处理时间、错误信息等。
  4. 传递Trace ID: 服务在调用其他服务时,会将Trace ID传递给下一个服务,保持调用链的连续性。
  5. 请求出口: 当请求最终返回响应给客户端时,整个调用链的信息会被汇总和保存。

通过请求追踪,可以对复杂的微服务架构进行性能分析和故障排查。

比如:可以使用SkyWalkingZipkinSleuth、Jaeger、PinPoint等链路追踪工具来分析和定位。

 

资源利用率

表示服务实例的资源利用率,如数据库连接池的使用情况,用于评估资源的合理利用和优化。

以上仅是一些常见的微服务监控指标,实际监控需根据具体的业务需求和系统特点来选择合适的指标。

作者简介

陈睿|mikechen,10年+大厂架构经验,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

评论交流
    说说你的看法