快速集成Skywalking 9(Windows系统、JavaAgent、Logback)

目录

    • 一、Skywalking简介
    • 二、下载Skywalking服务端
    • 三、安装Skywalking服务端
      • 3.1 解压安装包
      • 3.2 启动Skywalking
    • 四、关于Skywalking服务端更多配置
    • 五、Java应用集成skywalking-agent.jar
      • 5.1 下载SkyWalking Java Agent
      • 5.2 集成JavaAgent
      • 5.3 Logback集成Skywalking
      • 5.4 集成效果

一、Skywalking简介

SkyWalking是一个开源的可观察性平台,用于收集、分析、聚合和可视化来自服务和云原生基础设施的数据。SkyWalking提供了一种简单的方法来维护分布式系统的清晰视图,即使是跨云的。它是一个现代APM,专门为云原生的、基于容器的分布式系统而设计,支持对应用端Tracinig、Metrics、Logging的采集和展示。SkyWalking逻辑上分为四个部分:探测器、平台后端、存储和UI,下文中的Skywalking服务端安装主要包括了平台后端、存储(默认内存数据库H2)、UI,探测器则简要介绍了Java Agent集成。
在这里插入图片描述

二、下载Skywalking服务端

进入Skywalking下载页面:https://skywalking.apache.org/downloads/
在这里插入图片描述
点击[tar]下载 apache-skywalking-apm-9.6.0.tar.gz在这里插入图片描述

三、安装Skywalking服务端

关于安装说明可参见:
https://skywalking.apache.org/docs/main/v9.6.0/en/setup/backend/backend-setup/

注: 需本地安装:JDK 11 至 JDK17 均可

3.1 解压安装包

解压apache-skywalking-apm-9.6.0.tar.gz
在这里插入图片描述
SkyWalking的后端发行包由以下部分组成:

  • bin/cmd scripts: 位于/bin文件夹。包括启动Linux shell和Windows cmd脚本后端服务器和UI启动。
  • 后端配置: 位于/config文件夹中,包括后端配置文件:
    • application.yml
    • log4j.xml
    • alarm-settings.yml
  • 后端库: 位于/oap-libs文件夹中,后端的所有依赖项都可以在这里找到。
  • Webapp环境(前端): 位于Webapp文件夹中,UI前端jar文件可以在这里找到,连同它的webapp.yml设置文件

3.2 启动Skywalking

您可以使用bin/startup.bat(或Linux环境sh)以默认设置启动后端和UI,设置如下:

  • 后端存储默认使用H2(为了更容易开始)
  • 后端监听 0.0.0.0/11800的gRPC api0.0.0.0/12800的HTTP REST api
  • UI监听8080端口,请求127.0.0.1/12800运行GraphQL查询

在Java、DotNetCore、Node.js和Istio代理/探测中,
您应该将gRPC服务地址设置为ip/host:11800,
ip/host应该是您的后端所在的位置。

双击运行bin/startup.bat
在这里插入图片描述
运行成功后弹出如下两个窗口:
在这里插入图片描述
其中:

  • Webapp即对应前端UI(位于webapp目录下)
  • Collector即对应后端服务(位于oap-libs目录,配置位于config目录下)

在这里插入图片描述
运行成功后即可访问UI:http://localhost:8080
在这里插入图片描述

四、关于Skywalking服务端更多配置

更多配置可参见:
修改Mysql存储 - https://skywalking.apache.org/docs/main/next/en/setup/backend/backend-setup/#applicationyml
https://skywalking.apache.org/docs/main/next/en/setup/backend/backend-setting-override/

五、Java应用集成skywalking-agent.jar

集成Java Agent可参见:
https://skywalking.apache.org/docs/skywalking-java/v9.0.0/en/setup/service-agent/java-agent/readme/
https://skywalking.apache.org/docs/skywalking-java/v9.0.0/en/setup/service-agent/java-agent/setting-override/

5.1 下载SkyWalking Java Agent

https://www.apache.org/dyn/closer.cgi/skywalking/java-agent/9.0.0/apache-skywalking-java-agent-9.0.0.tgz
在这里插入图片描述

下载apache-skywalking-java-agent-9.0.0.tgz
在这里插入图片描述
解压后:
在这里插入图片描述

5.2 集成JavaAgent

通过Java命令行集成skywalking-agent.jar:

java
# skywalking agent
-javaagent:D:/programs/dev/java/skywalking-agent/skywalking-agent.jar
# 当前服务名
-Dskywalking.agent.service_name=luo-demo::api-sub
# Skywalking后端采集 - gRpc端口
-Dskywalking.collector.backend_service=127.0.0.1:11800
-jar myapp.jar

5.3 Logback集成Skywalking

logback日志集成可参见:
https://skywalking.apache.org/docs/skywalking-java/v9.0.0/en/setup/service-agent/java-agent/application-toolkit-logback-1.x/
https://github.com/apache/skywalking-satellite

maven依赖:

 <!-- logback sw集成 -->
<dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-logback-1.x</artifactId><version>9.0.0</version>
</dependency>

resources/logback-spring.xml:

<configuration scan="true" scanPeriod=" 5 seconds"><!-- 默认日志配置 --><springProfile name="default"><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><root level="INFO"><appender-ref ref="console"/></root></springProfile><!-- SkyWalking配置(注:此处需通过spring.profiles.active=skywalking激活) --><springProfile name="skywalking"><appender name="STDOUT" 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.mdc.TraceIdMDCPatternLogbackLayout"><Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</Pattern></layout></encoder></appender><appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"><discardingThreshold>0</discardingThreshold><queueSize>1024</queueSize><neverBlock>true</neverBlock><appender-ref ref="STDOUT"/></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><root level="INFO"><appender-ref ref="ASYNC"/><appender-ref ref="grpc-log"/></root></springProfile>
</configuration>

5.4 集成效果

启动对应Java应用后,再次访问Skywalking UI:
http://localhost:8080

可以发现左侧菜单多出了【常规服务->服务】,切换到此【服务】菜单后,右侧即可查看已接入服务的追踪、日志等监控数据。

在这里插入图片描述

查看服务拓扑:
在这里插入图片描述

查看服务追踪信息:
在这里插入图片描述
查看服务日志:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/151307.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库的三范式(Normalization)

数据库的三范式&#xff08;Normalization&#xff09;是关系数据库设计中的基本理论原则&#xff0c;旨在减少数据冗余和提高数据库的数据组织结构。三范式通过将数据分解为更小的表&#xff0c;并通过关系建立连接&#xff0c;使得数据库设计更加灵活、规范和容易维护。在这篇…

C语言——函数的嵌套调用

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>void new_line() {printf("Hello\n"); }void three_line() {int i0;for(i0;i<3;i){new_line();} }int main() {three_line();return 0; }

FPGA实现双向电平转换

网上搜了一圈&#xff0c;好像没看到的类似的中文资料&#xff0c;不过MicroSemi有个文档AC349上给出了完整的解决方案&#xff0c;还有参考代码。 话不多说&#xff0c;看图&#xff1a; 欲知详情的朋友&#xff0c;请参考 AC349

你听说过“消费多少返利多少的”模式吗?

今天分享一个新的销售套路&#xff0c;看懂套路奋斗节约3年&#xff0c;你听说过“消费多少返利多少的”模式吗&#xff1f; 消费报销模式就是消费者在平台的消费&#xff0c;根据贡献度和活跃度平台去把之前消费的模式&#xff0c;给你返本了甚至还额外给你补贴奖励&#xff…

二阶段提交

二阶段提交 二阶段提交&#xff08;英语&#xff1a;Two-phase Commit&#xff09;是指&#xff0c;为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法(Algorithm)。 二阶段过程 在两阶段提交过程中&#xff0c;主要分为了两种角色协调者&…

【Java】异常处理(一)

&#x1f33a;个人主页&#xff1a;Dawn黎明开始 &#x1f380;系列专栏&#xff1a;Java ⭐每日一句&#xff1a;什么都不做&#xff0c;才会来不及 &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️ 文章目录 &#x1f4cb;前…

影刀sqlite的插入方法

影刀sqlite的插入方法 变量外面不用加‘’

Linux程序设计(上)

系列文章目录 文章目录 系列文章目录前言一、unix, linux, GNU, POSIXLinux程序 二、shellshell语法1.变量2.语句 函数命令命令的执行dialog工具-- 三、文件操作1. Linux 文件结构2. 系统调用和设备驱动程序3. 库函数4. 底层文件访问5. 标准I/O库6.格式化输入输出7. 文件和目录…

Git 基本操作

目录 创建仓库命令 git init git clone 提交与修改 git add git status git diff git commit git reset git rm git mv git checkout git switch git restore 提交日志 git log git blame 远程操作 git remote git fetch git pull git push Git 的工作就…

URAT串口通信协议

UART是异步串行全双工总线&#xff0c;面向设备和设备之间的连接 配置相关内容 1、串口为串行通讯方式&#xff0c;代表一个时钟周期&#xff0c;只可以收发一位数据 2、115200代表什么&#xff0c;以及115200单位 单位&#xff1a;bps(比特率、二进制/秒) 115200代表&#…

MySQL 的执行原理(四)

5.5. MySQL 的查询重写规则 对于一些执行起来十分耗费性能的语句&#xff0c;MySQL 还是依据一些规则&#xff0c;竭尽全力的把这个很糟糕的语句转换成某种可以比较高效执行的形式&#xff0c;这个过程也可以 被称作查询重写。 5.5.1. 条件化简 我们编写的查询语句的搜索条件…

2023下半年软件设计师考试知识点大全思维导图

软件设计师考试知识点大全思维导图 2023年下半年第一次机考 复习资料 以上是我在学习过程中根据自己的知识结构的特点及刷到的考题 做的导图&#xff0c;有需要的可以留言发原版的 mmap格式文件 方便自己拓展. 软考资料 这是网上找的资料 汇总免费放在这里 吧![ 链接&#x…

【封装UI组件库系列】搭建项目及准备工作

封装UI组件库系列第一篇搭建项目 前言 &#x1f31f;搭建项目 创建工程 基本结构 1.创建8个组件展示页面 ​ 2.配置路由文件router/index.js 3.页面布局 &#x1f31f;总结 前言 在前端开发中&#xff0c;大家可能已经用过各种各样的UI组件库了&#xff0c;现在市面上热…

Android WMS——输入系统管理(十七)

一、简介 1、工作原理 输入子系统从驱动文件中读取事件后,再封装提交给 IMS,IMS 再发送给 WMS 进行处理。 Android 输入系统的工作原理概括来说,内核将原始事件写入到设备节点中,InputReader 不断地通过 EventHub 将原始事件取出来并翻译加工成 Android 输入事件,…

MySQL为什么选择了B+树

首先MySQL的数据**&#xff08;索引记录&#xff09;**是存在磁盘里的&#xff0c;磁盘读取非常慢&#xff0c;所以要尽可能减少磁盘操作&#xff0c;因此我们需要更好的利用索引。 首先索引按顺序排列了数据&#xff0c;那么很显然最好的查找方式是二分查找&#xff0c;数组自…

Web3 分布式存储 IPFS(Web3项目一实战之四)

IPFS是一种分布式文件存储协议,它允许世界各地的计算机存储和服务文件作为一个巨大的对等网络的一部分来存储和服务文件。 世界上任何地方的任何计算机都可以下载IPFS软件并开始托管和提供文件。 如果有人在自己的计算机上运行IPFS,并将文件上传到IPFS网络,那么世界上其他任…

OpenVPN Connect使用连接公网VPN服务器实现内网穿透

安装并运行OpenVPN Connect 点击AGREE 添加配置.OVPN文件 点击连接 连接成功 两个内网主机通过公网VPN穿透

java学习part06数组

62-数组-数组的概述_哔哩哔哩_bilibili 这篇 Java 基础&#xff0c;我吹不动了 - 掘金 (juejin.cn) 1.数组概念 重点 2.数组声明和初始化 new的时候要么给出静态初始化的数据{a,b,c}&#xff0c;要么给出动态初始化指定长度 [4]。 否则报错&#xff0c;初始化必须确定长度…

java拼图小游戏

第一步是创建项目 项目名自拟 第二部创建个包名 来规范class 然后是创建类 创建一个代码类 和一个运行类 代码如下&#xff1a; package heima;import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import jav…

快速排序知识总结

快速排序思维导图&#xff1a; 快速排序算法模版&#xff1a; #include <iostream>using namespace std;const int N 1e5 10;int n; int q[N];void quick_sort(int q[], int l, int r) {if (l > r) return;int x q[(l r) / 2], i l - 1, j r 1;while (i < …