精华内容
下载资源
问答
  • skywalking

    2021-03-26 15:12:52
    当您需要分布式系统的应用程序性能监视工具时,请使用Apache SkyWalking,该工具特别为微服务,云原生和基于容器(Docker,K8s,Mesos)的体系结构而设计。...
  • SkyWalking Python代理 SkyWalking-Python :Apache SkyWalking的Python代理,它为Python项目提供了本机跟踪功能。 SkyWalking :一个APM(应用程序性能监视器)系统,专门为微服务,云原生和基于容器(Docker,...
  • Apache SkyWalking客户端JS 客户端JavaScript异常和跟踪库。 向SkyWalking后端提供指标和错误收集。 轻的 使浏览器成为整个分布式跟踪的开始 用法 安装 skywalking-client-js运行时库位于 。 npm install ...
  • Apache SkyWalking Nginx代理 Nginx代理为由Nginx LUA模块提供支持的Nginx提供了本机跟踪功能。 该代理遵循SkyWalking跟踪和标头协议。 它通过HTTP协议向SkyWalking APM报告跟踪数据。 该代理可以收集所有通过...
  • skywalking的如下版本apache-skywalking-apm-bin-es7.rar skywalking的如下版本apache-skywalking-apm-bin-es7.rar skywalking的如下版本apache-skywalking-apm-bin-es7.rar skywalking的如下版本apache-skywalking-...
  • skywalking建表SQL

    2020-11-12 10:14:38
    skywalking启用mysql时的建表SQL,配置好mysql后,如果提示找不到表,可以使用此SQL来建表。
  • skywalking-kubernetes:Apache SkyWalking Kubernetes部署Helm Chart
  • 为您提供SkyWalking应用性能监控系统下载,SkyWalking 是一款开源的应用性能监控系统,包括指标监控,分布式追踪,分布式系统性能诊断。功能:1、服务,服务实例,端点指标分析2、根本原因分析。在运行时分析代码。...
  • gin+skywalking demo源码

    2021-08-04 12:39:41
    gin+skywalking demo源码
  • skywalking_springboot.jar

    2020-08-04 16:07:00
    skywalking spring jar包,随着分布式系统和微服务架构的出现,一次用户的请求会经过多个系统,不同服务之间的调用关系十分 复杂,任何一个系统出错都可能影响整个请求的处理结果。以往的监控系统往往只能知道单个...
  • 钉钉一级功能实践 Skywlaking 8.3版本以前需要webhook来发送到钉钉等聊天工具。... mvn清洁软件包java -jar skywalking-webhook-dingding-talk.jar --spring.config.location = / tmp / application.properties
  • SkyWalking

    2021-08-19 07:33:56
    1. skywalking是什么 对于一个大型的几十个、几百个微服务构成的微服务架构系统,通常会遇到下面一些问题,比如: 如何串联整个调用链路,快速定位问题? 如何理清各个微服务之间的依赖关系? 如何进行各个...

    1. skywalking是什么

    对于一个大型的几十个、几百个微服务构成的微服务架构系统,通常会遇到下面一些问题,比如:

    1. 如何串联整个调用链路,快速定位问题?
    2. 如何理清各个微服务之间的依赖关系?
    3. 如何进行各个微服务接口的性能分折?
    4. 如何跟踪整个业务流程的调用处理顺序?

    skywalking是一个国产开源框架,2015年由吴晟开源 , 2017年加入Apache孵化器。skywalking是分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。SkyWalking 是观察性分析平台和应用性能管理系统,提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。

    官网:Apache SkyWalking

    下载:Downloads | Apache SkyWalking

    Github:GitHub - apache/skywalking: APM, Application Performance Monitoring System

    中文文档地址:UI Introduction | Apache SkyWalking

    1.1 Skywalking主要功能特性

    1、多种监控手段,可以通过语言探针和service mesh获得监控的数据;

    2、支持多种语言自动探针,包括 Java,.NET Core 和 Node.JS;

    3、轻量高效,无需大数据平台和大量的服务器资源;

    4、模块化,UI、存储、集群管理都有多种机制可选;

    5、支持告警;

    6、优秀的可视化解决方案;

    1.2 Skywalking整体架构

    整个架构分成四部分:

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

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

    3、右部分Storage:Tracing数据存储,目前支持ES、MySQL、Sharding Sphere、TiDB、H2多种存储器,目前采用较多的是ES,主要考虑是SkyWalking开发团队自己的生产环境采用ES为主;

    4、左部分SkyWalking UI:负责提供控制台,查看链路等等;

    SkyWalking支持三种探针:

    ● Agent – 基于ByteBuddy字节码增强技术实现,通过jvm的agent参数加载,并在程序启动时拦截指定的方法来收集数据。

    ● SDK – 程序中显式调用SkyWalking提供的SDK来收集数据,对应用有侵入。

    ● Service Mesh – 通过Service mesh的网络代理来收集数据。

    后端(Backend)

    接受探针发送过来的数据,进行度量分析,调用链分析和存储。后端主要分为两部分:

    ● OAP(Observability Analysis Platform)- 进行度量分析和调用链分析的后端平台,并支持将数据存储到各种数据库中,如:ElasticSearch,MySQL,InfluxDB等。

    ● OAL(Observability Analysis Language)- 用来进行度量分析的DSL,类似于SQL,用于查询度量分析结果和警报。

    界面(UI)

    ● RocketBot UI – SkyWalking 7.0.0 的默认web UI

    ● CLI – 命令行界面

    1.3 操作 

    官网下载8.7.0版本:Downloads | Apache SkyWalking

     在本地目录进行解压如下:

    目录结构说明:

    启动:直接执行./startup.sh ,该命令包含了2部分

    启动成功后会启动两个服务,一个是skywalking-oap-server,一个是skywalking-web-ui

    skywalking-oap-server服务启动后会暴露11800 和 12800 两个端口,分别为收集监控数据的端口11800和接受前端请求的端口12800,修改端口可以修改config/applicaiton.yml

    启动的日志如下所示:

    skywalking-web-ui服务会占用 8080 端口, 修改端口可以修改webapp/webapp.yml

    打开页面:http://localhost:8080

    后端项目配置以及启动

     -DSW_AGENT_NAME:在skywalking可视化界面上显示的服务名称
    -DSW_AGENT_COLLECTOR_BACKEND_SERVICES:和skywalking通讯的ip地址和端口号
    -javaagent:无侵入引入skywalking增强jar包

    首页:

    拓扑图显示了springboot中调用的关联关系,如果引入了第三方程序,则调用链也会展示出来。

    追踪:一个请求接口从请求到响应的完整链路。可以展示请求的参数,执行的sql语句以及返回的结果集合【前提:配置trace和tag注解】

            <dependency>
                <groupId>org.apache.skywalking</groupId>
                <artifactId>apm-toolkit-trace</artifactId>
                <version>8.7.0</version>
                <scope>provided</scope>
            </dependency>
        @ApiOperation("获取通话记录列表2")
        @Trace
        @Tags({@Tag(key = "self-param", value = "arg[0]"),
                @Tag(key = "self-user", value = "returnedObj")})
        @PostMapping("/list3")
        public ApiResult<TbCallRecord> list3(@RequestBody(required = false) TbCallRecordReq tbCallRecordReq) {
            //TraceContext可以绑定key-value
            TraceContext.putCorrelation("name", "你好list3");
            Optional<String> op = TraceContext.getCorrelation("name");
            log.info("name = {} ", op.get());
            //获取跟踪的traceId
            String traceId = TraceContext.traceId();
            log.info("traceId = {} ", traceId);
            String s = baseAgent.doGet("http://localhost:8091/skydemo");
            log.info("remote-result:{}",s);
            return ApiResult.success(callRecordService.list(tbCallRecordReq));
        }

    @Trace:表明该方法放入链路追踪中,只要调用了,一定会在链路上展示出来

    @Tag:相当于自定义返回的结果参数,可以在链路中查看。如:key=self-param,value=arg[0](相当于展示请求的参数对象),key=self-user,value=returnObj(相当于展示返回的结果对象)

    doGet调用另外模块效果:

    告警模块:config/alarm-settings.yml可以设置告警信息。如果配置了告警的回调接口,则满足告警机制的时候,会触发。(备注:回调函数必须是post请求,否则会报错

    性能分析:创建一个任务,指定要检测的端点名称(观察的接口),以及监控时间,可以针对性的看出调用链的执行情况。个人觉得和追踪类似。

    日志管理:在日志中可以将traceId打印在经过的所有方法日志中,方便排查问题。

    pom文件引入

    <dependency>
        <groupId>org.apache.skywalking</groupId>
        <artifactId>apm-toolkit-logback-1.x</artifactId>
        <version>8.7.0</version>
    </dependency>

    日志文件引入:

        <appender name="console-sky" 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>%d{yyyy-MM-dd HH:mm:ss.SSS} 【%tid】 [%thread] %-5level %-40.40logger{39} - %-4line : %msg%n</Pattern>
                </layout>
            </encoder>
        </appender>

    如果想上本地打印的日志上传到skywalking前端页面,则需要在日志文件中文件

    <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.TraceIdPatternLogbackLayout">
                    <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} 【%tid】 [%thread] %-5level %-40.40logger{39} - %-4line : %msg%n</Pattern>
                </layout>
            </encoder>
        </appender>
    
        <springProfile name="dev">
            <root level="INFO">
                <appender-ref ref="console-sky" />
                <appender-ref ref="grpc-log" />
                <appender-ref ref="FILE" />
    
            </root>
        </springProfile>
    
        <springProfile name="prod">
            <root level="INFO">
                <appender-ref ref="FILE" />
            </root>
        </springProfile>

     grpc推送在agent/config/agent.config配置中的默认配置如下:【备注:ui页面上的日志是倒序展示的

    配置名

    解释

    默认值

    plugin.toolkit.log.transmit_formatted

    是否以格式化或未格式化的格式传输记录的数据

    true

    plugin.toolkit.log.grpc.reporter.server_host

    指定要向其报告日志数据的grpc服务器的主机

    127.0.0.1

    plugin.toolkit.log.grpc.reporter.server_port

    指定要向其报告日志数据的grpc服务器的端口

    11800

    plugin.toolkit.log.grpc.reporter.max_message_size

    指定grpc客户端要报告的日志数据的最大大小

    10485760

    plugin.toolkit.log.grpc.reporter.upstream_timeout

    客户端向上游发送数据时将超时多长时间。单位是秒

    30

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,839
精华内容 3,135
关键字:

skywalking