java 方法监控_使用Metrics方法级远程监控Java程序

本文以Spring Web的后台开发讲解。上一篇讲解了如何使用jvisualvm监控Java程序。jvisualvm虽然已经挺强大了,但是在实际的应用中依然不满足我们的需求。现在,我们想要监控应用程序中所有Controller提供的接口的访问数量,频次,响应时长。Service层方法的执行次数,执行时长,频次等等。以便之后对系统的性能优化做准备。这个时候jvisualvm已经不能满足我们的需求了。...
摘要由CSDN通过智能技术生成

本文以Spring Web的后台开发讲解。

上一篇讲解了如何使用jvisualvm监控Java程序。jvisualvm虽然已经挺强大了,但是在实际的应用中依然不满足我们的需求。现在,我们想要监控应用程序中所有Controller提供的接口的访问数量,频次,响应时长。Service层方法的执行次数,执行时长,频次等等。以便之后对系统的性能优化做准备。这个时候jvisualvm已经不能满足我们的需求了。

1 方法级监控Java程序的方案

这是我对于方法级监控Java程序的方案:

付费的,比如YourKit,JProfile等。我尝试了YourKit,功能确实强大,但是现在性能并不是我们现在的瓶颈,我们尽量使用不付费的。

Metrics-Spring。Metrics-Spring需要在每个方法上使用注解。我们采用微服务架构,20多个服务,每个工程预计平均有100左右个方法要监控。如果是一开始就用这个我觉得还可以。

Metrics+Spring AOP。从Metrics-Spring中可以看到,Metrics统计的信息基本满足我们的需求。我们的项目需求是统计Controller层和Service层的方法。那么可以通过Spring中的切面完成我们的需求。

我调查的方案和分析基本这样,其他人如果有更好的方案可以提出一起探讨。

下面是讲解+部分代码,本次讲解还有优化篇。

2 Metrics的功能

关于Metrics的使用方法,已经有很多文章介绍了,我在这里推荐我认为还不错的给大家,然后我再介绍的使用方法.

Metrics介绍。这篇文章对Metrics的基本功能介绍的已经很全面了。

Metrics-Spring官方文档。这篇文章介绍了Metrics与Spring的集成,但是文档感觉不全呀。

其他的文章我就不多分享了,感觉大同小异。没什么太大差别。

3 将Metrics相关类装载到Spring容器

要使用Metric,那么首先需要MetricRegistry。

我们需要提供Http的报表,所以我们需要将MetricsServlet注册到Spring中,以便可以通过Http接口获取监控结果。下面代码我们将监控接口定义为:/monitor/metrics。

import com.codahale.metrics.MetricRegistry;

import com.codahale.metrics.servlets.MetricsServlet;

import org.springframework.boot.web.servlet.ServletRegistrationBean;

import org.springframework.context.annotation.Bean;

import org.springframework.contex

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 Prometheus 和 Grafana 监视基于 Jetty 的 Java 应用程序可以帮助你收集和分析应用程序的性能指标,并据此进行优化和调整。下面是一些基本步骤: 1. 安装 Prometheus 和 Grafana。可以从官网下载并安装它们,也可以使用 Docker 镜像启动。 2. 在应用程序中添加 Prometheus 客户端库。这个库提供了一些 API,可以让应用程序将性能指标暴露给 Prometheus。 3. 在应用程序的启动脚本中添加启动参数,以启用 Prometheus 客户端库。例如,可以添加以下参数: ``` -javaagent:/path/to/prometheus/jmx_prometheus_javaagent.jar=8080:/path/to/config.yml ``` 这个参数会启动一个 Java 代理,将应用程序的性能指标暴露给 Prometheus。8080 是代理监听的端口号,config.yml 是代理的配置文件。 4. 在 Prometheus 的配置文件中添加监控目标。例如,可以添加以下配置: ``` - job_name: 'jetty' metrics_path: '/metrics' static_configs: - targets: ['localhost:8080'] ``` 这个配置告诉 Prometheus 监视名为 "jetty" 的目标,并从该目标的 /metrics 路径获取指标。目标地址为 localhost:8080。 5. 启动应用程序和 Prometheus,并验证指标是否被成功收集。可以使用 Prometheus 的 Web UI 来查看指标。 6. 在 Grafana 中创建仪表盘,将应用程序的指标展示出来。可以使用 Grafana 的模板和图表来构建仪表盘。 这些步骤只是一个简单的指导,具体的实现可能因应用程序和环境的不同而有所不同。但总的来说,使用 Prometheus 和 Grafana 监视基于 Jetty 的 Java 应用程序是相对简单和方便的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值