微服务监控组件Metrics

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
注册配置 MSE Nacos/ZooKeeper,182元/月
简介: Metrics作为微服务中的重要的组件,为微服务的监控提供了数据基础

随着微服务的兴起,如何对微服务进行监控,了解微服务当前的运行指标和健康状态,已经成为必备的能力。Metrics作为微服务中的重要的组件,为微服务的监控提供了数据基础。Metrics是一套标准度量库, 用于提供对从操作系统, 虚拟机, 容器,到应用的全方位, 多维度, 实时, 准确的度量服务。

Metrics(原Alibaba Metrics)是阿里巴巴集团内部广泛使用的度量埋点基础类库,内部有Java和Node.js两个版本,目前开源的是Java版本。内部版本诞生于2016年,经历过近三年的发展,经历三年双十一考验,已经成为阿里巴巴集团内部微服务监控度量的事实标准,覆盖了从系统,JVM,中间件,应用各层的度量指标,并且从命名规则,数据格式,埋点方式,计算规则等方便形成了一套统一的规范。

全面的指标统计

metrics全面支持了从操作系统,JVM,中间件,再到应用层面的各级指标,并且对统一了各种命名指标,可以做到开箱即用,并支持通过配置随时开启和关闭某类指标的收集。

目前支持的指标主要包括

操作系统

支持Linux/Windows/Mac,包含cpu, load, disk, nettraffic, tcp。

JVM

支持classload, gc次数和时间, 文件句柄,young/old区占用,线程状态, 堆外内存,编译时间,部分指标支持自动差值计算。

中间件

  • Tomcat: 请求数,失败次数,处理时间,发送接收字节数,线程池活跃线程数等
  • Druid: sql执行次数,错误数,执行时间,影响行数等
  • Nginx: 接受,活跃连接数,读,写请求数,排队数,请求qps,平均rt等

更详细的指标可以参考这里, 后续会陆续添加对Dubbo, Nacos, Sentinel, Fescar等的支持。

REST支持

metrics提供了基于JAX-RS的REST接口暴露,可以轻松查询内部的各种指标,既可以独立启动HTTP Server提供服务(默认提供了一个基于Jersey+ sun Http server的简单实现),也可以嵌入已有的HTTP Server进行暴露指标。具体的接口可以参考这里

如何使用

使用方式很简单,和日志框架的Logger获取方式一致。

Counter hello = MetricManager.getCounter("test", MetricName.build("test.my.counter"));
hello.inc();

支持的度量器包括:

  • Counter(计数器)
  • Meter(吞吐率度量器)
  • Histogram(直方分布度量器)
  • Gauge(瞬态值度量器)
  • Timer(吞吐率和响应时间分布度量器)
  • Compass(吞吐率, 响应时间分布, 成功率和错误码度量器)
  • FastCompass(一种快速高效统计吞吐率,平均响应时间,成功率和错误码的度量器)
  • ClusterHistogram(集群分位数度量器)

具体各个度量器的使用方式可以参考这里

默认收集的指标,以及使用http接口进行查看,可以参考metrics-demo

相关文章
|
29天前
|
Prometheus 监控 Java
日志收集和Spring 微服务监控的最佳实践
在微服务架构中,日志记录与监控对系统稳定性、问题排查和性能优化至关重要。本文介绍了在 Spring 微服务中实现高效日志记录与监控的最佳实践,涵盖日志级别选择、结构化日志、集中记录、服务ID跟踪、上下文信息添加、日志轮转,以及使用 Spring Boot Actuator、Micrometer、Prometheus、Grafana、ELK 堆栈等工具进行监控与可视化。通过这些方法,可提升系统的可观测性与运维效率。
115 1
日志收集和Spring 微服务监控的最佳实践
|
2月前
|
存储 Prometheus 监控
从入门到实战:一文掌握微服务监控系统 Prometheus + Grafana
随着微服务架构的发展,系统监控变得愈发重要。本文介绍如何利用 Prometheus 和 Grafana 构建高效的监控系统,涵盖数据采集、存储、可视化与告警机制,帮助开发者提升系统可观测性,及时发现故障并优化性能。内容涵盖 Prometheus 的核心组件、数据模型及部署方案,并结合 Grafana 实现可视化监控,适合初学者和进阶开发者参考实践。
352 6
|
20天前
|
监控 Kubernetes Java
使用 New Relic APM 和 Kubernetes Metrics 监控 EKS 上的 Java 微服务
在阿里云AKS上运行Java微服务常遇性能瓶颈与OOMKilled等问题。本文教你通过New Relic实现集群与JVM双层监控,集成Helm部署、JVM代理注入、GC调优及告警仪表盘,打通从节点资源到应用内存的全链路观测,提升排障效率,保障服务稳定。
116 1
|
7月前
|
安全 Java 数据安全/隐私保护
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 三大核心组件
本课程介绍如何在Spring Boot中集成Shiro框架,主要讲解Shiro的认证与授权功能。Shiro是一个简单易用的Java安全框架,用于认证、授权、加密和会话管理等。其核心组件包括Subject(认证主体)、SecurityManager(安全管理员)和Realm(域)。Subject负责身份认证,包含Principals(身份)和Credentials(凭证);SecurityManager是架构核心,协调内部组件运作;Realm则是连接Shiro与应用数据的桥梁,用于访问用户账户及权限信息。通过学习,您将掌握Shiro的基本原理及其在项目中的应用。
258 0
|
3月前
|
存储 监控 Shell
SkyWalking微服务监控部署与优化全攻略
综上所述,虽然SkyWalking的初始部署流程相对复杂,但通过一步步的准备和配置,可以充分发挥其作为可观测平台的强大功能,实现对微服务架构的高效监控和治理。尽管未亲临,心已向往。将一件事做到极致,便是天分的展现。
|
11月前
|
存储 监控 负载均衡
构建高效微服务架构:服务治理与监控的实践
构建高效微服务架构:服务治理与监控的实践
|
10月前
|
Prometheus 监控 Java
如何全面监控所有的 Spring Boot 微服务
如何全面监控所有的 Spring Boot 微服务
443 3
|
11月前
|
监控 负载均衡 Java
微服务架构下的服务治理与监控
微服务架构下的服务治理与监控
550 0
|
监控 Java 对象存储
监控与追踪:如何利用Spring Cloud Sleuth和Netflix OSS工具进行微服务调试
监控与追踪:如何利用Spring Cloud Sleuth和Netflix OSS工具进行微服务调试
176 1
|
XML Java 数据库
在微服务架构中,请求常跨越多个服务,涉及多组件交互,问题定位因此变得复杂
【9月更文挑战第8天】在微服务架构中,请求常跨越多个服务,涉及多组件交互,问题定位因此变得复杂。日志作为系统行为的第一手资料,传统记录方式因缺乏全局视角而难以满足跨服务追踪需求。本文通过一个电商系统的案例,介绍如何在Spring Boot应用中手动实现日志链路追踪,提升调试效率。我们生成并传递唯一追踪ID,确保日志记录包含该ID,即使日志分散也能串联。示例代码展示了使用过滤器设置追踪ID,并在日志记录及配置中自动包含该ID。这种方法不仅简化了问题定位,还具有良好的扩展性,适用于各种基于Spring Boot的微服务架构。
145 3