你的Java服务是如何监控的呢?

  • 1.Null:监控?什么监控?我一个写代码的服务挂了跟我有什么关系?
  • 2.命令行:服务挂了?内存泄漏?jstat jmap jcmd,还好不是我写的
  • 3.撸代码:Java采集JVM/服务器资源信息 -> Prometheus -> Grafana,请允许我对业务代码稍作修改。

今天,给大家介绍一个对源码0入侵的Java服务监控方式,SkyWalking Agent,只需要启动Java程序的时候加几个参数,就能对Java服务进行可视化监控啦

首次接触SkyWalking是学习SpringCloud的时候,使用SkyWalking进行链路追踪。使用SkyWalking进行链路追踪时得到的拓扑图大概是这个样子(Demo项目),不过链路追踪不是本文介绍的重点,本文主要讲解如何使用SkyWalking进行Java服务的监控。

1.下载并配置SkyWalking的后端服务

SkyWalking是需要后端服务的,即启动Java项目的时使用的Agent只负责像SkyWalking后端服务发送指标信息,本身只是个客户端Jar包

(1)下载

直接到SkyWalking的官网下载APM即可,官网地址:https://skywalking.apache.org/

下载完成后解压,得到这个文件夹:

(2)修改配置文件

SkyWalking的后端服务配置文件在 apache-skywalking-apm-bin/webapp 目录下,主要修改一下服务端口号,默认是8080,如果与你的项目端口不冲突的话,可以忽略这一步

(3)启动SkyWalking后端服务

Windows的话,直接运行apache-skywalking-apm-bin/bin目录下的 startup.bat 就好了,其他系统可以运行sh那个。Windows打开后会出现两个黑色的框框,不用管他,最小化就好,这时我们需要的SkyWalking后端服务实际已经启动了。

(4)验证

使用浏览器打开 localhost:18080,如果访问正常,说明服务已正常启动。

2.启动Java项目和SkyWalking Agent

SkyWalking使用了比较简单的jar包agent方式进行客户端启动,Java服务启动命令添加以下参数

-javaagent:F:\skywalking-agent\skywalking-agent.jar -Dskywalking.agent.service_name=demo -Dskywalking.collector.backend_service=localhost:11800

参数说明:

  • -javaagent后添加skywalking-agent.jar的本地路径,哦,对了,这个agent jar包也是从SkyWalking的官网下载就可以
  • skywalking.agent.service_name,该Java服务在SkyWalking后端服务中的显示名称=
  • skywalking.collector.backend_service,SkyWalking的后端服务地址,如果你像我一样修改了配置文件的话,这里就应该是 localhost:11800

3.查看服务相关监控

使用浏览器访问 localhost:18080

点击Service Name,打开服务监控面板,其中Overview中记录了服务的一些基本监控指标,例如:Service Apdex,请求成功率,平均响应时间等

除了服务响应信息,SkyWalking还可以用来监控JVM。 选择Instance,并点击节点链接打开详情

打开后的Overview是单个节点的服务响应信息

选择JVM后,就是常见的JVM指标啦

可以通过以上仪表盘监控JVM堆内存和堆外内存大小,gc时间和gc次数,以及线程相关信息和JVM加在的Class数量,基本的错误排查大体够用。不过并没有JVM老年代和年轻代的具体使用情况,内存监控只区分了堆外内存和堆内存。如果是为了详细的监控JVM的话,这些指标感觉差点儿意思,后面将再介绍一个拥有更多JVM详细监控指标的开源项目,及搭建时遇到的问题,欢迎大家一下交流

【Java监控】使用SkyWalking监控Java服务的更多相关文章

  1. 应用性能监控:SkyWalking

    目录 SkyWalking 简介 SkyWalking 搭建 平台后端(Backend) 平台前端(UI) Java Agent(Java 应用监控) Java Agent 下载 Java 演练项目 ...

  2. java框架之SpringCloud(5)-Hystrix服务熔断、降级与监控

    前言 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败.不做任何处理的情况下,很容易导致服务雪崩. 服务雪崩:多个微服务之间调用的时候,假设 ...

  3. 微服务-技术专区-监控专区(Skywalking与Pinpoint) - 监控对比分析

    由于公司目前有200多微服务,微服务之间的调用关系错综复杂,调用关系人工维护基本不可能实现,需要调研一套全链路追踪方案,初步调研之后选取了skywalking和pinpoint进行对比; 选取skyw ...

  4. 利用Perf4j 对java项目进行性能监控

    Perf4j 可以对自定义监控范围的java代码进行日志记录,再经统计分析生成所需性能数据.Perf4j 提供了对常用日志工具log4j的扩展以方便与产品集成,它产生的性能数据可被用于生成可视化的性能 ...

  5. VisualVM监控远程主机上的JAVA应用程序

    使用VisualVM监控远程主机上JAVA应用程序时,需要开启远程主机上的远程监控访问,或者在远程JAVA应用程序启动时,开启远程监控选项,两种方法,选择其中一种就可以开启远程监控功能,配置完成后就可 ...

  6. java利用WatchService实时监控某个目录下的文件变化并按行解析(注:附源代码)

    首先说下需求:通过ftp上传约定格式的文件到服务器指定目录下,应用程序能实时监控该目录下文件变化,如果上传的文件格式符合要求,将将按照每一行读取解析再写入到数据库,解析完之后再将文件改名. 一. 一开 ...

  7. Java如何实现系统监控、系统信息收集(转

    Java如何实现系统监控.系统信息收集.sigar开源API的学习 系统监控(1) Jar资源下载:http://download.csdn.net/detail/yixiaoping/4903853 ...

  8. 深入理解JAVA虚拟机 虚拟机性能监控和故障处理工具

    jre的bin目录下的工具,都非常小.它都是tools.jar下面的代码的一层封装而已.tools.jar不是java标准,是Hotspot实现的. 名称 作用 jps JVM Process Sta ...

  9. 大众点评Java开发实时应用监控平台-CAT

    CAT介绍 CAT是基于Java开发的实时应用监控平台,包括实时应用监控,业务监控. CAT作为大众点评网基础监控组件,它已经在中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等)中得到广泛应 ...

  10. Java虚拟机性能管理神器 - VisualVM(5) 监控远程主机上的JAVA应用程序【转】

    Java虚拟机性能管理神器 - VisualVM(5) 监控远程主机上的JAVA应用程序[转] 标签: javajvm监控工具性能优化 2015-03-11 18:37 1394人阅读 评论(0) 收 ...

随机推荐

  1. Django4全栈进阶之路3 apps.py 文件

    在 Django 4 中,每个应用(app)都需要定义一个 apps.py 文件,用于配置应用的基本信息,如应用的名称.显示名称.图标.默认路径.启动时需要执行的操作等.apps.py 文件是一个 P ...

  2. vue全家桶进阶之路29:Element Plus

    Element Plus是一个用于Vue.js的UI组件库,为开发人员提供了一组可重用和可定制化的组件,用于构建现代Web应用程序.它是流行的Element UI库的扩展,重点是提高性能和可访问性. ...

  3. 这款全自动自适应工具你用过了吗?autofit.js请求加入你的战场!

    前段时间做了一个自适应的小工具(autofit.js) 经过一段时间的试用,同学们发现了工具存在的一些问题,我自己也发现了一些,这篇文章是针对这些问题撰写的. autofit.js autofit.j ...

  4. react中useRef的应用

    何为useRef useRef是随着react函数式组件发展而来的,是react众多官方hook中的一个,调用useRef可以返回一个伴随这组件整个声明周期不发生改变的对象,这个对象常见的用途有两个: ...

  5. ffuf的使用

    ffuf:模糊测试 使用 ffuf 进行枚举.模糊测试和目录暴力破解 安装 https://github.com/ffuf/ffuf 建议:https://github.com/danielmiess ...

  6. CKS 考试题整理 (08)-Pod指定ServiceAccount

    Context 您组织的安全策略包括: ServiceAccount 不得自动挂载 API 凭据 ServiceAccount 名称必须以 "-sa" 结尾 清单文件 /cks/s ...

  7. Rainbond助力“信创应用”迁移上云

    Rainbond v5.14.2 版本,又称信创版本.从这个版本开始,开源用户也可以利用 Rainbond 管理符合信创要求的硬件计算资源.在这个版本中,产品团队将此前只在企业版产品中存在的信创相关功 ...

  8. GGTalk 开源即时通讯系统源码剖析之:数据库设计

    自从<开源即时通讯GGTalk 8.0发布,增加Linux客户端,支持在统信UOS.银河麒麟上运行!>一文在博客园发布后,有园友联系我QQ,说能不能整理个更系统更详细地介绍GGTalk源码 ...

  9. 应用CS5266设计一款TYPEC转HDMI带PD3.0+USB3.1扩展坞方案电路图

    目前市场TYPEC扩展坞有很多,基本都是大同小异,主要功能是TYPEC转HDMI带PD+USB3.1+RJ45+SD/TF读卡器等多种接口,由于产品类型较多,成本也都是越做越低,CS瑞奇达就开发一系列 ...

  10. win10系统网络图标变成一个地球模型并且无法连上网络

    最近在家远程办公,但是遇到个很棘手的问题,电脑突然连不上无线网络了.... 无线网络图标变成地球模型如下: