当前位置: 首页 > news >正文

应用监控工具Skywalking

目录

Skywalking介绍

Skywalking架构

Skywalking安装

Skywalking使用

Skywalking配置

Skywalking数据持久化

Skywalking告警


  • Skywalking介绍

        Apache Skywalking是一个开源的应用性能监控(Application Performance Monitoring,APM)工具,它提供了实时的、端到端的、基于跟踪的应用程序性能监测。Apache Skywalking是一个跨语言、跨平台的解决方案,支持Java、.NET、Go、Node.js等多种语言,可以在各种不同的部署环境中使用。

  • Skywalking架构

        1、Tracing、Metrics:负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器;

        2、SkyWalking UI:负责提供页面控制台,查看链路、告警等信息;

        3、SkyWalking OAP:负责接收Agent发送的Tracing数据信息,然后进行分析(Analysis Core),存储到外部存储器(Storage),还提供查询(Query)功能;

        4、Storage:数据存储,目前支持ES、MySQL、Sharding Sphere、TiDB、H2多种存储器,目前采用较多的是ES;      

  • Skywalking安装

        安装步骤如下:

        1、官网下载Index of /dist/skywalking  apache-skywalking-apm-6.6.0.zip(本文以6.6.0版本在windows环境为例讲解)

        2、解压apache-skywalking-apm-6.6.0.zip

        3、启动skywalking

        cd D:\software\apache-skywalking-apm-bin\bin
        startup.bat 

        4、验证skywalking

        http://localhost:8090/ 端口默认8080,更改为8090(D:\software\apache-skywalking-apm-bin\webapp\webapp.yml)

  • Skywalking使用

        本文介绍基于java agent的方式使用skywalking。

        使用步骤如下:

        1、准备好后台服务,本文以decoration-1.0.jar项目为例讲解

        2、将apache-skywalking-apm-bin中的agent目录拷贝到另外一个地方,示例拷贝到D:\software\agent

        3、修改D:\software\agent\config\agent.config文件,修改服务名称:

        agent.service_name=decoration

        4、给应用增加skywalking监控

java -javaagent:D:\software\agent\skywalking-agent.jar -jar decoration-1.0.jar

        5、应用decoration请求一些接口,测试skywalking监控,从下图可以看出接口已经被监控到。

  • Skywalking配置

        1、设置skywalking采样率:默认值是全部采样,在高并发的环境下,全采样会影响应用的性能,建议设置一定的采样率 ,示例:每隔3秒采样3条数据(D:\software\agent\config\agent.config)

        agent.sample_n_per_3_secs=3

        2、设置获取mysql的语句的参数信息:默认值是false(D:\software\agent\config\agent.config)

        plugin.mysql.trace_sql_parameters=true

        3、查看controller--service--db完整链路执行耗时

        将optional-plugins\apm-spring-annotation-plugin-6.6.0.jar拷贝到D:\software\agent\plugins文件下即可,测试效果如下:可以看到从controller层到数据库执行层的完整链路耗时

  • Skywalking数据持久化

        skywalking数据默认持久化到H2数据库中,实际项目中,数据往往持久化到ES或mysql中,示例演示skywalking数据持久化到mysql(本文用的mysql版本是5.7)中,步骤如下:

        1、修改D:\software\apache-skywalking-apm-bin\config\application.yml

        storage节点下注释H2的配置,添加mysql的配置,配置如下:

        2、mysql连接包mysql-connector-java-5.1.41.jar拷贝到D:\software\apache-skywalking-apm-bin\oap-libs目录中

        3、再次启动skywalking,然后发起请求,观察mysql发现,skywalking数据已经落入到mysql中。

  • Skywalking告警

        在实际项目中,需要对应用的相关性能指标进行配置,当指标超过阈值时,需要对外发布告警,让项目的管理者及时收到告警信息并处理。

        skywalking的告警规则设置在alarm-settings.yml(D:\software\apache-skywalking-apm-bin\config)中,默认的告警规则如下:

        1、过去3分钟内服务平均响应时间超过1秒

        2、服务成功率在过去2分钟内低于80%

        3、服务90%响应时间在过去3分钟内高于1000毫秒

        4、服务实例在过去2分钟内的平均响应时间超过1秒

        5、端点平均响应时间过去2分钟超过1秒

        如果要设置新的告警规则,参考上图文本修改即可,其中metrics-name在official_analysis.oal文件中约定。配置的告警规则一旦触发,会在skywalking告警栏显示,如下图:

        在实际项目中,当触发了告警规则后,需要立即通知相关管理者,skywalking通过webhooks功能实现了通知的效果:

        当告警规则触发时,webhooks下方的url地址就会执行,实际项目中将地址发布成专门处理告警信息服务,在服务内部通过邮件或者短信的方式发送给项目管理者。

        如果希望告警规则支持动态修改配置,引入Nacos配置管理器可以实现,步骤如下:

        1、修改D:\software\apache-skywalking-apm-bin\config\application.yml,配置nacos地址

        2、在nacos中配置告警规则,如下图:

        3、发送接口测试,观察skywalking的告警栏已修改为nacos中的配置

http://www.dtcms.com/a/326609.html

相关文章:

  • bitbake –s:列出所有可编译的模块
  • 【STL】queue队列容器
  • priority_queue(优先级队列)和仿函数
  • ArkUI中的自定义组件(一)
  • 用于计算的程序是部署在哪里,为什么可以这样?
  • 从 WebView2 迁移至 DotNetBrowser:第一部分
  • android 换肤框架详解2-LayoutInflater源码解析
  • 《零基础入门AI:深度学习基础核心概念解析(从激活函数到反向传播)》
  • 大模型提示词工程实践:提示词工程实践-引导大模型完成任务
  • 直播美颜SDK架构设计指南:美白滤镜的高效实现与跨平台适配
  • MySQL 基本语法
  • 【网络基础】深入理解 TCP/IP 协议体系
  • 秒懂边缘云|1分钟了解边缘安全加速 ESA
  • GCC C++实现Matlab矩阵计算和数学函数功能
  • 乡土诗性的多重奏鸣——儿歌《生我养我的小村庄》文学赏析
  • C5.3:发射极偏置和LED驱动电路
  • 26考研|西安电子科技大学优势学科、25考研复试线及就业质量分析报告
  • 力扣热题100-----322.零钱兑换
  • 事务的特性
  • 下一代防火墙组网方案
  • IoT/透过oc_lwm2m/boudica150 源码中的AT指令序列,分析NB-IoT接入华为云物联网平台IoTDA的工作机制
  • visual studio 2015 使用番茄助手(Visual Assist)给函数自动添加注释模板
  • WSL / Linux安装MySQL(以及注意事项)
  • 嵌入式学习的第四十八天-中断+OCP原则
  • Photoshop图层混合模式:实现图像元素透明度渐变过渡的终极指南
  • Effective C++ 条款36: 绝不重新定义继承而来的非虚函数
  • 数据结构:树与二叉树
  • ARM基础概念 day51
  • easyExcel嵌套子集合导出Excel
  • 2025第十六届蓝桥杯大赛青少组省赛C++真题(初级组和中级组)