skywalking分布式服务调用链路追踪APM应用监控

SkyWalking是一款开源的分布式系统APM工具,它具有对分布式系统进行调用链分析和故障诊断的能力。本攻略将解释如何安装和使用SkyWalking进行分布式服务调用链路追踪。

安装SkyWalking

  1. 下载SkyWalking安装包,官网文档下载链接为 https://skywalking.apache.org/downloads/

  2. 解压下载后的SkyWalking安装包,例如解压到“C:\skywalking”。

  3. 修改SkyWalking配置文件,打开文件“C:\skywalking\config\application.yml”进行修改。将以下两行配置的#号去掉,取消注释。

# name: default
# namespace: default

  1. 启动SkyWalking,进入解压目录执行命令:

C:\skywalking\bin\startup.bat

  1. 访问SkyWalking控制台,URL为http://localhost:12800

使用SkyWalking进行分布式服务调用链路追踪

  1. 配置服务端

  2. 在服务端的pom.xml文件中添加SkyWalking相关依赖

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

  3. 在服务端的启动类中添加SkyWalking启动配置

    ```java
    public static void main(String[] args) {
    SkyWalking.setConfigService(new ConfigService() {
    @Override
    public String getAgentConfig() {
    return null;
    }

         @Override
         public String getDefaultConfig() {
             return null;
         }
     });
     SpringApplication.run(MyApplication.class, args);
    

    }
    ```

  4. 配置客户端

  5. 在客户端的pom.xml文件中添加SkyWalking相关依赖

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

  6. 在客户端的请求方法中添加SkyWalking追踪配置

    java
    private void sendRequest() {
    try (Scope scope = ContextManager.createEntrySpan("SendRequest")) {
    // TODO 发送请求
    } catch (Throwable e) {
    ContextManager.activeSpan().errorOccurred().log(e);
    }
    }

  7. 查看调用链路追踪

访问SkyWalking控制台,可以看到已启动的服务应用,点击服务应用名称可以查看应用内的调用链路。点击调用链路可以查看每个服务节点的性能指标,包括请求响应时间、调用次数等指标。

示例说明

这里以一个简单的微服务调用为例,说明如何使用SkyWalking进行分布式服务调用链路追踪。

  1. 配置服务端

假设现有一个订单服务和一个库存服务,订单服务向库存服务发送请求查询库存信息。在订单服务的pom.xml文件种添加SkyWalking相关依赖,然后在启动类中添加SkyWalking启动配置。其中SkyWalking.setConfigService()方法需要传入一个ConfigService实例,在本例中返回null即可。

```java
@SpringBootApplication
public class OrderServiceApplication {
public static void main(String[] args) {
SkyWalking.setConfigService(new ConfigService() {
@Override
public String getAgentConfig() {
return null;
}

           @Override
           public String getDefaultConfig() {
               return null;
           }
       });
       SpringApplication.run(OrderServiceApplication.class, args);
   }

}
```

  1. 配置客户端

在订单服务中,向库存服务发送请求的方法中添加SkyWalking的追踪配置。需要将发送请求的代码块放入try语句块中,确保在请求正常处理和异常情况下都可以正确记录追踪信息。

java
private String queryInventory(String pid) {
try (Scope scope = ContextManager.createLocalSpan("queryInventory")) {
RestTemplate template = new RestTemplate();
String url = "http://localhost:9090/queryInventory?pid=" + pid;
ResponseEntity<String> responseEntity = template.getForEntity(url, String.class);
return responseEntity.getBody();
} catch (Throwable e) {
ContextManager.activeSpan().errorOccurred().log(e);
return "";
}
}

  1. 浏览调用链路追踪

访问SkyWalking控制台,在服务管理页面可以看到已启动的服务应用。点击订单服务应用的名称,然后选择调用链路,即可看到从订单服务发起的微服务调用链路。可以查看每个服务节点的性能指标,检查每个节点的响应时间和错误率等指标,从而定位服务故障点。

SkyWalking适用于各种分布式系统,如微服务、云原生等。以上简单示例介绍了SkyWalking的部分功能,使用SkyWalking可以大大提高分布式系统的故障诊断效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:skywalking分布式服务调用链路追踪APM应用监控 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • OMEN暗影精灵8 Pro值得入手吗 OMEN暗影精灵8 Pro游戏本评测

    OMEN暗影精灵8 Pro游戏本评测 概述 OMEN暗影精灵8 Pro是一款专为游戏玩家打造的高性能笔记本电脑。它搭载了英特尔酷睿i7处理器、英伟达GeForce RTX 3070显卡等顶级配置,提供了出色的游戏性能。同时,它还具有优秀的散热效果和舒适的键盘手感,是一款非常值得推荐的游戏本。 性能 OMEN暗影精灵8 Pro采用了英特尔酷睿i7处理器和英伟达…

    人工智能概览 2023年5月25日
    00
  • Python检测网络延迟的代码

    请看下面的完整攻略,包含了Python检测网络延迟代码的详细讲解,并提供了两个示例说明: 背景 在进行网络应用开发时,需要检测网络延迟来判断网络连接的质量,以便做出相应的调整。Python作为一门通用性编程语言,也可以用来实现这一功能。 实现方法 Python中可以使用第三方库进行网络延迟检测,下面将介绍两种主要方法: 方案一:使用ping命令 在Pytho…

    人工智能概论 2023年5月25日
    00
  • Nginx解决403 forbidden的完整步骤

    下面是“Nginx解决403 forbidden的完整步骤”的完整攻略,希望对您有所帮助。 1. 确认权限设置 首先,我们需要确认权限设置是否正确。 在Nginx的配置文件中,可以通过以下方式指定访问的路径: location /path/to/resource { … } 在这里,需要确认相关路径和权限设置是否正确。可以使用以下命令查看文件和目录的权限…

    人工智能概览 2023年5月25日
    00
  • springboot整合Nginx实现负载均衡反向代理的方法详解

    SpringBoot整合Nginx实现负载均衡反向代理的方法详解 什么是负载均衡反向代理 负载均衡反向代理是指使用代理服务器来分发网络请求,以达到负载均衡的目的。它可以使多台服务器共同为用户提供服务,提高了系统的稳定性、可用性和性能。其中,代理服务器位于客户端和应用服务器之间,可以对网络请求进行转发和分发,避免服务器出现过载或单点故障。 SpringBoot…

    人工智能概览 2023年5月25日
    00
  • Go实现分布式系统高可用限流器实战

    Go实现分布式系统高可用限流器实战攻略 什么是限流器? 限流器是用来控制流量的一种重要工具。在分布式系统中,限流器可以帮助我们控制流量并且保证系统的稳定运行。 Go实现分布式系统高可用限流器的步骤 以下是Go实现分布式系统高可用限流器的步骤: 1. 定义限流器的数据结构 我们需要定义一个结构体来表示限流器。这个结构体包含以下字段: 每秒钟可以处理的请求数 r…

    人工智能概览 2023年5月25日
    00
  • Win7安装Visual Studio 2015失败的解决方法

    下面是Win7安装Visual Studio 2015失败的解决方法的完整攻略。 问题描述 在Win7系统中,安装Visual Studio 2015时可能会出现各种失败的情况,如安装卡在某个进度、安装失败等。这种情况经常会令人困扰,导致无法正常使用VS以及开发环境。 解决方法 方法一:更新系统及安装环境 打开Windows Update,更新系统至最新版本…

    人工智能概览 2023年5月25日
    00
  • Linux系统中设置多版本PHP共存配合Nginx服务器使用

    下面是关于Linux系统中设置多版本PHP共存配合Nginx服务器使用的完整攻略。 准备工作 在进行如下操作之前,需要先在Linux系统上安装好Nginx服务器,以及所需的各版本PHP。 步骤一:安装fastcgi 为了让Nginx能够运行PHP脚本,需要安装fastcgi。在终端执行以下命令: sudo apt-get install fastcgi 步骤…

    人工智能概览 2023年5月25日
    00
  • pytorch教程实现mnist手写数字识别代码示例

    下面是“pytorch教程实现mnist手写数字识别代码示例”的攻略。 概述 在这个教程中,我们将使用PyTorch框架来实现一个手写数字识别模型,即利用深度学习技术识别“0”到“9”共10个数字。我们将使用一个称为MNIST的数据集,它包含了大量由手写数字扫描所得的数字图像。具体而言,我们将建立一个由2个卷积层、2个全连接层和一个输出层组成的神经网络模型,…

    人工智能概论 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部