首页 > 其他分享 >skywalking快速上手

skywalking快速上手

时间:2023-07-28 11:34:10浏览次数:41  
标签:bin uuid apm apache skywalking 快速 clr

Skywalking 官网 (SW快速上手)

Skywalking 本地安装(windows为例)

skywalking

本次使用的是 apache-skywalking-apm-bin-es7(https://archive.apache.org/dist/skywalking),打开文件夹,打开目录 bin/ 在这里插入图片描述 .bat 是windows 启动。点击之后会出钱两个command,这个时候就启动成功了。 打开localhost:8080,出现如下页面,启动成功 在这里插入图片描述 如果想改变8080端口,在 ==apache-skywalking-apm-bin-es7\webapp== 当中有webapp.yml文件,打开文件修改端口即可。

在这里插入图片描述

idea接入

在vm option当中加入以下命令 在这里插入图片描述

-javaagent:D:/###/skywalking/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar
-Dskywalking.agent.service_name=rare_disease
-Dskywalking.collector.backend_service=127.0.0.1:11800

其中第一行选择自己文件目录下apache-skywalking-apm-bin-es7/agentskywalking-agent.jar地址。 在这里插入图片描述

第二行则是自定义服务名,之后再skywalking上展示的就是这个服务名称。 第三行则是skywalking上报的路径端口。本地默认用11800端口 启动项目 在这里插入图片描述 表明skywalking成功的接进去了,之后则需要对当中随便一个接口进行一次访问,刷新skywalking,仪表盘当中就会有数据了 在这里插入图片描述

MySql 数据持久化

如何让skywalking监控数据持久化呢?在目录 ==apache-skywalking-apm-bin-es7\config== 文件夹中打开 application.yml文件 在这里插入图片描述 在storage:此处将 selector: ${SW_STORAGE:h2}改成你想要改成的存储方式,此处我们使用mysql 则:

selector: ${SW_STORAGE:mysql}

在下面的mysql配置当中,指定数据库为 swtest ,需要提前给swtest数据库建好。 之后修改下面的账户密码。在这里插入图片描述 保存之后重新启动 startup.bat == 注意,此处有个小坑== 在 apache-skywalking-apm-bin-es7\oap-libs 当中缺少数据库连接的jar包,导致直接启动会出现闪退的问题。需要自己从本地maven仓库等地方将mysql的连接jar包拷贝一份过来 在这里插入图片描述 之后再次启动startup.bat,打开数据库,就会发现它会开始创建表 在这里插入图片描述 此时数据持久化就成功了

自定义链路追踪

首先加入pom依赖

		<dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-trace</artifactId>
            <version>8.5.0</version>
        </dependency>

之后在需要追踪的方法上加上@Trace方法

这边写了个小demo

    //controller
    @GetMapping("/get")
    @ResponseBody
    @Trace
    private ResponseDto<String> test(@RequestParam("uuid") final String uuid) {
        return new ResponseDto(grapService.query(uuid));
    }
    // iservice
    /**
     * test skywalking trace
     * @param uuid
     * @return
     */
    String query(String uuid);
	//service
    @Override
    public String query(String uuid) {
         return MD5.create().digestHex(uuid);
    }

此时调用接口 在这里插入图片描述 可以在仪表盘 追踪下面看到详细信息。点击之后,还能看到跨度信息。 在这里插入图片描述 于此同时,我们可以将监控输入输出,在类上加上注解:

   @Tags({@Tag(key = "parm",value = "arg[0]"),
            @Tag(key = "return",value = "returnedObj")})

之后,我们就可以看到,这边可以打印入参出参了。入参出参当中的class一定要复写tostring方法,才能输出想要的值 在这里插入图片描述

性能剖析

在这里插入图片描述 此处我们可以在仪表盘当中新建任务,选择好想要监控的端口。 在这里插入图片描述 监控结束后出现结果,选择分析,会有详细的堆栈以及消耗时间 在这里插入图片描述 可以用来排查哪一步影响性能。(感觉与 Arthas 的 trace 命令有异曲同工之妙)

日志

//加入pom依赖
 <dependency>
     <groupId>org.apache.skywalking</groupId>
       <artifactId>apm-toolkit-logback-1.x</artifactId>
       <version>8.5.0</version>
 </dependency>

创建logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 引入 Spring Boot 默认的 logback XML 配置文件  -->
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>


    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 日志的格式化 -->
        <encoder  class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <Pattern>-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} [%tid] %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}</Pattern>
            </layout>
        </encoder>

    </appender>

    <appender name="grpc-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
                <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</Pattern>
            </layout>
        </encoder>
    </appender>

    <!-- 设置 Appender -->
    <root level="INFO">
        <appender-ref ref="console"/>
        <appender-ref ref="grpc-log"/>
    </root>
</configuration>

启动成功后,调用即可将日志上传,在页面看到。

告警

官方文档 配置文件在 \apache-skywalking-apm-bin-es7\config 当中的alarm-setting.yml文件当中,可以配置回调函数,告警的时候调用微信/飞书等发送告警信息等。 在这里插入图片描述

标签:bin,uuid,apm,apache,skywalking,快速,clr
From: https://blog.51cto.com/u_15352400/6879836

相关文章

  • 实时嵌入式Linux设备基准测试快速入门4测试和测量
    本章将介绍主要测试方案及其具体配置和结果。在介绍实际测量结果之前,将尽可能总结被测设备的特性。最后,将对结果进行分析,并概述由于高速缓存一致性问题造成的延迟方面的主要瓶颈,提出减少延迟的解决方案,并解释用于发现和缓解问题的方法。设备用于智能设备的SABRE板实际参与所......
  • 【阅读笔记】一种暗通道优先的快速自动白平衡算法
    解决问题:自动白平衡算法中存在白色区域检测错误导致白平衡失效的问题,作者提出了一种基于暗通道优先的白平衡算法。算法思想:图像中白色区域或者高饱和度区域的光线透射率较低,根据以上特性利用暗通道法计算图像中白色区域。算法概述:作者使用何凯明提出的基于暗通道优先的方法......
  • C语言快速排序及其优化操作
    快速排序原理简述:找到每一轮最大(最小)的数,依次从左到右存入新的数组,就完成了降序(升序)的排列。#include<stdio.h>intmain(void){intn;scanf("%d",&n);inta[n],temp;for(inti=0;i<n;i++){scanf("%d",&a[i]);}for(......
  • 开源快速开发平台:做好数据管理,实现流程化办公!
    做好数据管理,可以提升企业的办公协作效率,实现数字化转型。开源快速开发平台是深受企业喜爱的低代码开发平台,拥有多项典型功能,是可以打造自主可控快速开发平台,实现一对一框架定制的软件平台。在快节奏的社会中,开源快速开发平台依托优势特点深得客户喜爱和支持。了解了开源快速开发......
  • Figma如何快速导出JPG格式
    在这个追求效率和质量的时代,Figma确实可以加快我们的设计工作,增加效率,功能越来越强大。然而,Figma从未有过中文版本。但就使用工具而言,一次生两次并不难。设计小白经常卡在最后一步,如何用Figma导出jpg图片?Figma导出jpg图片功能强大,可以轻松导出随机选择的元素。可以导出单独的矢......
  • blender快速选中线面的方法
    1、编辑模式,选中线模式,键盘按住ALT键,鼠标左键点击线,可以实现连续线的选择。 2、同样选择面模式,按住键盘alt键,然后鼠标左键选择面,可以实现连续面的选择 ......
  • 如何快速同步第三方平台数据?
    前言最近知识星球中有位小伙伴问了我一个问题:如何快速同步第三方平台数据?他们有个业务需求是:需要同步全国34个省市,多个系统的8种业务数据,到他们公司的系统当中。他们需求同步全量的数据和增量的数据。全量的数据主要是针对多个系统的历史数据,大概有几千万数据,只需要初始化一次......
  • PlantUML快速指南
    目录什么是PlantUML语法入门复杂图式null什么是PlantUMLPlantUML是一个快速创建UML图形的组件,官网上之所以称它是一个组件,我想主要是因为多数情况下我们都是在Eclipse、NetBenas、Intellijidea、Emacs、Word等软件里来使用PlantUML。PlantUML支持的图形有:sequencediagram,......
  • 如何快速在本地运行你vue打包的的dist文件
    要在本机启动运行前端提供的dist包,需要先安装一个HTTP服务器,例如Apache,Nginx,phpstudy。这里以使用Node.js的http-server为例进行说明首先,确保已经安装了Node.js。如果没有安装,可以从官网下载并安装。打开终端或命令行窗口,使用以下命令安装http-servernpminstall-g......
  • 如何快速简化vcf信息?
    目录需求描述可能存在错误的做法更靠谱的做法需求描述vcf是标准的基因型格式文件,其中包含的信息可多可少。主要在于INFO可无限扩展特征,以及每个样本的FORMAT信息,会大大增加vcf文件的大小。一般来说,GATK等软件得到的基因型都会有这些信息,初始变异我们最好保留它们,因为这是过滤位......