使用SkyWalking监控Java服务的过程

 更新时间:2023年08月28日 14:31:55   作者:马儿跑  
这篇文章主要介绍了使用SkyWalking监控Java服务,介绍一个对源码0入侵的Java服务监控方式,SkyWalking Agent,只需要启动Java程序的时候加几个参数,就能对Java服务进行可视化监控,需要的朋友可以参考下

你的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详细监控指标的开源项目,及搭建时遇到的问题,欢迎大家一下交流

到此这篇关于使用SkyWalking监控Java服务的文章就介绍到这了,更多相关SkyWalking监控Java服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 关于MyBatis模糊查询的几种实现方式

    关于MyBatis模糊查询的几种实现方式

    在实际项目中,我们会经常对数据做一些模糊查询的操作,这时候就需要利用到 like字段,那么在Mybatis中,有哪些方式可以实现模糊查询呢,需要的朋友可以参考下
    2023-05-05
  • Java Nacos与Gateway的使用操作笔记

    Java Nacos与Gateway的使用操作笔记

    Spring Cloud Gateway 是一个用于构建 API 网关的框架,提供了多种服务路由、过滤和负载均衡的功能,这篇文章主要介绍了Java Nacos与Gateway的使用操作笔记,需要的朋友可以参考下
    2024-08-08
  • java代码实现截图功能(屏幕截图)

    java代码实现截图功能(屏幕截图)

    java代码实现截图功能,该JavaBean可以直接在其他Java应用程序中调用,默认的文件前缀为GuiCamera,文件格式为PNG格式,直接使用下面的类吧
    2013-12-12
  • java实现登录案例

    java实现登录案例

    这篇文章主要为大家详细介绍了java实现登录案例的相关代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • SpringBoot 使用 spring.profiles.active 来区分不同环境配置实现

    SpringBoot 使用 spring.profiles.active 来区分不同环境配置实现

    很多时候,我们项目在开发环境和生产环境的配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境,我们要用生产数据库,这时候,我们可以利用 profile 在不同的环境下配置用不同的配置文件或者不同的配置,感兴趣的可以了解一下
    2026-04-04
  • PowerJob的OhMyClassLoader工作流程源码解读

    PowerJob的OhMyClassLoader工作流程源码解读

    这篇文章主要介绍了PowerJob的OhMyClassLoader工作流程源码解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Java中ASCII字符转十进制数值的实践指南

    Java中ASCII字符转十进制数值的实践指南

    在 Java 开发中,将 ASCII 字符转换为其十进制数值表示,是一项看似简单却蕴含深层计算机科学原理的基础操作,本文将从 ASCII 编码的本质出发,结合 Java 平台的特性,系统探讨这一转换的核心机制、应用场景、设计考量与工程实践,需要的朋友可以参考下
    2026-05-05
  • spring事务Propagation及其实现原理详解

    spring事务Propagation及其实现原理详解

    这篇文章主要介绍了spring事务Propagation及其实现原理详解,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Java异常的处理机制

    Java异常的处理机制

    这篇文章主要介绍了Java异常的处理机制,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Java语言实现简单FTP软件 FTP协议分析(1)

    Java语言实现简单FTP软件 FTP协议分析(1)

    这篇文章主要介绍了Java语言实现简单FTP软件的第一篇,针对FTP协议进行分析,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03

最新评论