SkyWalking的学习之一


前言

最近在学习应用调优诊断等内容.
现在实际工作中实质上的拆分和微服务在售前阶段
所以真正用到链路的地方比较少. 但是人生都是要向前看的.
想着一方面提高自己. 一方面也是为了以后着想.
在一个看不到未来和光的地方, 要么离开,要么继续深入掘进.

Skywalking的简介

Skywalking是一个国产的开源框架,2015年有吴晟个人开源,2017年加入Apache孵化器,
国人开源的产品,主要开发人员来自于华为,2019年4月17日Apache董事会批准SkyWalking成为顶级项目,
支持Java、.Net、NodeJs等探针,数据存储支持Mysql、Elasticsearch等,
跟Pinpoint一样采用字节码注入的方式实现代码的无侵入,
探针采集数据粒度粗,但性能表现优秀,且对云原生支持,目前增长势头强劲,社区活跃。 Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,
它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。 目前市面上开源的APM系统主要有CAT、Zipkin、Pinpoint、SkyWalking,大都是参考Google的Dapper实现的 From:https://www.jianshu.com/p/ffa7ddcda4ab/

SkyWalking的下载与安装

https://skywalking.apache.org/downloads/

我这边仅是学习与研究Java相关的, 其他内容暂时放下不表
注意这里需要下载两个内容:
SkyWalking APM
Java Agent 需要注意 选择 distribution 下载对应的压缩包就可以.
需要注意两个文件比较大一点 137M 3月 9 11:46 apache-skywalking-apm-9.4.0.tar.gz
31M 4月 4 09:43 apache-skywalking-java-agent-8.15.0.tgz
需要注意 apm 是核心应用
agent需要作为一个启动加载方式挂接到springboot的应用中去.

agent的使用方式

建议将agent进行解压缩放到特定的一个路径
然后在启动脚本里面加进来特定的内容:
注意 主要有三个地方:
定义agent的位置, 不建议只复制 jar包 最好是使用特定路径, 因为agent 还有很多配置文件等.
定义 server_name 可以在apm中进行展示
定义backend_service 定义apm服务器的地址.
端口信息在后续解释. -javaagent:/skywalking/skywalking-agent/skywalking-agent.jar
-Dskywalking.agent.service_name=master5202
-Dskywalking.collector.backend_service=127.0.0.1:11800

apm的启动和注意事项之一

解压缩apm的压缩包
然后进行相关的处理
注意 初始使用比较核心的是 bin 和 config ├── bin
├── config
├── config-examples
├── LICENSE
├── licenses
├── LICENSE.tpl
├── logs
├── NOTICE
├── oap-libs
├── README.txt
├── tools
├── webapp
└── zipkin-LICENSE

apm的启动和注意事项之二

启动脚本说明
bin 目录下面有一个 startup.sh 可以启动两个应用
一个是 oap 一个是 receiver 的工作进程. SkyWalking OAP started successfully!
SkyWalking Web Application started successfully! 需要注意 skywalking 至少要用 jdk11.
jdk8 是不支持的为了方便可以如下修改
比如我这边在 startup.sh 上面进行了简单处理 export JAVA_HOME=/skywalking/jdk-17.0.2
export PATH=/skywalking/jdk-17.0.2/bin:$PATH

apm的启动和注意事项之三

设置连接nacos等事项
skywalking 默认使用h2来存储部分数据.
也可以使用elasticsearch. 因为是周末自学
所以简单使用 h2. 但是要连接nacos
所以需要修改配置文件
apache-skywalking-apm-bin/conf/application.yml 注意内容为:
nacos:
serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}
hostPort: 10.110.136.xxx:8848
# Nacos Configuration namespace
namespace: ${SW_CLUSTER_NACOS_NAMESPACE:"public"}
# Nacos auth username
username: nacos
password: xxxxx

启动apm后启动应用

会在skywalking的服务,普通服务里面看到对应的服务信息.

也能够看到服务的一些拓扑信息


简单效果


简单效果


自己的公众号

SkyWalking的学习之一的更多相关文章

  1. skywalking学习之路---skywalking环境从零搭建部署

    介绍 SkyWalking项目是由华为大牛吴晟开源的个人项目,目前已经加入Apache孵化器.SkyWalking项目的核心目标是针对微服务.Cloud Native.容器化架构提供应用性能监控和分布 ...

  2. skywalking学习

    skywalking简介 SkyWalking一个开源可观测性平台,用于收集.分析.聚合和可视化来自服务和云原生基础设施的数据.SkyWalking提供了一种简单的方法,可以让你清晰的查看分布式系统. ...

  3. Dubbo学习系列之十八(Skywalking服务跟踪)

    我们知道,微服务不是独立的存在,否则就不需要微服务这个架构了,那么当发起一次请求,如何知道这次请求的轨迹,或者说遇到响应缓慢. 请求出错的情况,我们该如何定位呢?这就涉及到APM(Applicatio ...

  4. skywalking学习ppt

    和传统应用监控的区别,Dapper论文 监控图

  5. SpringCloud微服务学习笔记

    SpringCloud微服务学习笔记 项目地址: https://github.com/taoweidong/Micro-service-learning 单体架构(Monolithic架构) Mon ...

  6. 最全的.NET Core跨平台微服务学习资源

    一.Asp.net Core基础 微软中文官网:https://docs.microsoft.com/zh-cn/aspnet/core/getting-started/ 微软英文官网:https:/ ...

  7. .NET Core微服务架构学习与实践系列文章索引目录

    一.为啥要总结和收集这个系列? 今年从原来的Team里面被抽出来加入了新的Team,开始做Java微服务的开发工作,接触了Spring Boot, Spring Cloud等技术栈,对微服务这种架构有 ...

  8. 2020 重新出发,JAVA 学习计划

    ------ @[toc]# 前言 我呢已经工作七年了,一直没有换工作,因为我这个人没什么太大的野心,安安稳稳的生活就挺好,目前的公司虽然福利一般,但是工作稳定,环境也都很熟悉了. 但是今年,到目前为 ...

  9. [业界方案] 用SOFATracer学习分布式追踪系统Opentracing

    [业界方案] 用SOFATracer学习分布式追踪系统Opentracing 目录 [业界方案] 用SOFATracer学习分布式追踪系统Opentracing 0x00 摘要 0x01 缘由 &am ...

  10. [业界方案]用Jaeger来学习分布式追踪系统Opentracing

    [业界方案]用Jaeger来学习分布式追踪系统Opentracing 目录 [业界方案]用Jaeger来学习分布式追踪系统Opentracing 0x00 摘要 0x01 缘由 & 问题 1. ...

随机推荐

  1. Spring AOP @before@after@around@afterreturning@afterthrowing执行顺序

    public Object aop(Method method,Object object) { try { try { /*doAround start*/ doBefore(); method.i ...

  2. PCRaster安装

    改了很久才import成功.期间查了不少东西,虽然大部分没用上,但还是记录一下. PCRaster的安装和个人的最终解决方法 Software for environmental modelling ...

  3. JavaScript ES6 类和对象 简单记录

    一/*1.在ES6之前如果定义一个类?通过构造函数来定义一个类*/ function Person(myName, myAge) { // 实例属性 // this.name = "lnj& ...

  4. CH573 CH582 CH579蓝牙从机(peripheral)例程讲解四(蓝牙动态广播)

    动态广播有两种实现方式: 1.关闭广播,更改广播包数据,等待关闭上报状态后,开启广播. uint8_t initial_advertising_enable = FALSE; GAPRole_SetP ...

  5. 7 Free Energies: 7.4 Umbrella Sampling Example

    7.4 Umbrella Sampling Example计算丙氨酸二肽 Phi/Psi 旋转的 PMF    http://ambermd.org/tutorials/advanced/tutori ...

  6. [转]常见的视频编码详解 Cinepak Codec by Radius

    AVI所采用的压缩算法并无统一的标准.也就是说,同样是以AVI为后缀的视频文件,其采用的压缩算法可能不同,需要相应的解压软件才能识别和回放该AVI文件.除了Microsoft公司之外,其他公司也推出了 ...

  7. Spring设计模式——代理模式[手写实现JDK动态代理]

    代理模式 代理模式(Proxy Pattern):是指为其他对象提供一种代理,以控制对这个对象的访问. 代理对象在客户端和目标对象之间起到中介作用,代理模式属于结构型设计模式. 使用代理模式主要有两个 ...

  8. SpringBoot——常用配置

    application.yml配置信息 spring: profiles: active: dev application: name: jwt-token-security # Jackson 配置 ...

  9. node使用multer进行文件上传

    开场白 在平时的业务中,我们很多使用都会有文件上传这个功能. 今天分享一下使用 node+element-ui实现一下文件上传. 请个人大佬指点一番~~~.批评的时候稍微轻一点. 毕竟我心里承受能力弱 ...

  10. Python学习笔记--元组+字符串

    元组 元组一旦定义完成,就不能再被修改 同样,元组也可以进行嵌套操作 当然,若是在元组里面嵌套一个list,那么list里面的元素是可以进行修改的! 案例: 实现: 字符串 查找索引值: 字符串替换: ...