SkyWalking快速上手(二)——架构剖析1

这篇具有很好参考价值的文章主要介绍了SkyWalking快速上手(二)——架构剖析1。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

SkyWalking是一个开源的分布式系统追踪、监控和诊断工具,它能够帮助开发人员和运维人员实时监控和诊断分布式系统的性能问题。本文将深入剖析SkyWalking的架构,并介绍其核心组件及其功能。

架构概述

SkyWalking的架构由以下几个核心组件组成:

  1. Agent:在被监控的应用程序中嵌入的代理组件,用于收集应用程序的性能数据,并将其发送给Collector。

  2. Collector:用于接收和处理来自Agent的监控数据的组件,可以将数据存储到不同的存储介质中,如Elasticsearch、MySQL等。

  3. UI:提供用户界面,用于展示监控数据和性能指标,以及进行系统的配置和管理。

  4. Storage:用于存储和索引监控数据的组件,可以选择使用Elasticsearch、MySQL等作为存储介质。

一、Agent组件

介绍

Agent是SkyWalking的核心组件之一,它负责在被监控的应用程序中收集性能数据,并将其发送给Collector。Agent可以嵌入到应用程序的代码中,或者通过Java Agent的方式进行加载。

Agent的配置

Agent的配置文件使用properties格式,可以通过配置文件指定Agent的相关参数。

Agent的配置代码示例:

# SkyWalking Agent 配置
agent.service_name=my-application
agent.sample_n_per_3_secs=100
agent.namespace=default
agent.collector.backend_service=localhost:11800

在配置中,你需要指定应用程序的名称(service_name)、采样率(sample_n_per_3_secs)、命名空间(namespace)以及Collector的地址(collector.backend_service)。

配置参数详解

下面对Agent的配置参数进行详细解释:

service_name

  • 描述:指定应用程序的名称。
  • 类型:字符串。
  • 示例:agent.service_name=my-application

sample_n_per_3_secs

  • 描述:指定采样率,即每3秒钟采样的次数。
  • 类型:整数。
  • 示例:agent.sample_n_per_3_secs=100

namespace

  • 描述:指定命名空间,用于区分不同的应用程序。
  • 类型:字符串。
  • 示例:agent.namespace=default

collector.backend_service

  • 描述:指定Collector的地址。
  • 类型:字符串。
  • 示例:agent.collector.backend_service=localhost:11800

Agent的工作原理

Agent在应用程序中嵌入的代码中,通过字节码增强技术来收集性能数据。它会拦截应用程序的关键方法,如HTTP请求、数据库访问等,记录方法的调用信息、耗时等数据,并将这些数据发送给Collector进行处理。

Agent的工作流程如下:

  1. Agent启动时,会加载配置文件,并初始化相关组件。

  2. Agent会通过字节码增强技术,修改应用程序的字节码,插入性能数据收集的代码。

  3. 当应用程序执行被拦截的方法时,Agent会收集相关的性能数据,并将其发送给Collector。

  4. Collector接收到Agent发送的数据后,会进行处理和存储,以便后续的查询和分析。

二、Collector组件

什么是Collector组件?

在SkyWalking分布式系统监控工具中,Collector组件是起到收集和存储追踪数据的关键角色。它负责接收来自各个服务实例的追踪数据,并将其存储在后端的存储介质中,以供后续分析和查询使用。

Collector组件的配置

以下是一个示例的Collector组件的配置文件:

# skywalking collector配置
server:
  port: 12800  # Collector的监听端口
  jetty:
    acceptors: -1  # 接受连接的线程数,默认为-1(取决于CPU核心数量)

storage:
  elasticsearch:   # 存储使用的后端数据库(此处以Elasticsearch为例)
    nameSpace: skywalking-oap  # 存储的命名空间
    clusterNodes: localhost:9200  # Elasticsearch集群节点地址

receiver-register:
  backendService:
    # 其他Collector或者接收追踪数据的第三方组件的地址
    addresses: 127.0.0.1:11800

exporter:
  grpc:
    host: 127.0.0.1  # Exporter服务的主机地址
    port: 11800  # Exporter服务的端口号

logging:
  level: debug  # 日志级别

在上述配置文件中,我们可以看到Collector组件的一些重要配置项:

  • server.port:指定Collector的监听端口,默认为12800。
  • storage.elasticsearch.nameSpace:设置存储的命名空间,用于在Elasticsearch中区分不同的SkyWalking数据。
  • storage.elasticsearch.clusterNodes:配置连接Elasticsearch集群的节点地址。

除此之外,配置文件中还有其他可选的配置项,如receiver-register.backendService.addresses用于指定其他Collector或接收追踪数据的第三方组件的地址,以及exporter.grpc.hostexporter.grpc.port用于指定Exporter服务的主机和端口。

配置Collector组件示例

以下是一个配置Collector组件的示例:

# skywalking-collector-config.yaml

server:
  port: 12800

storage:
  elasticsearch:
    nameSpace: skywalking-oap
    clusterNodes: localhost:9200

receiver-register:
  backendService:
    addresses: 127.0.0.1:11800

exporter:
  grpc:
    host: 127.0.0.1
    port: 11800

logging:
  level: debug

将上述配置保存为名为skywalking-collector-config.yaml的文件。然后,在启动Collector组件时,指定配置文件路径:

./bin/startup.sh -c skywalking-collector-config.yaml

这样就完成了Collector组件的配置,并可以通过以上所示的配置文件进行自定义修改。

总结

通过本文的介绍,你对SkyWalking的架构有了更深入的了解。Agent负责收集应用程序的性能数据,Collector负责接收和处理这些数据,UI提供了一个用户界面进行数据展示和配置管理,Storage用于存储和索引监控数据。希望本文对你有所帮助,如果你有任何问题或疑问,请随时提问。如果想对UI组件和Storage组件进行了解,请看下一篇文章:SkyWalking快速上手(二)——架构剖析2文章来源地址https://www.toymoban.com/news/detail-731647.html

到了这里,关于SkyWalking快速上手(二)——架构剖析1的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 链路追踪Skywalking快速入门

    2023年09月08日
    浏览(45)
  • SkyWalking链路追踪-搭建-spring-boot-cloud-单机环境 之《10 分钟快速搭建 SkyWalking 服务》

    首先了解一下单机环境 第一步,搭建一个 Elasticsearch 服务。 第二步,下载 SkyWalking 软件包。 第三步,搭建一个 SkyWalking OAP 服务。 第四步,启动一个 Spring Boot 应用,并配置 SkyWalking Agent。 第五步,搭建一个 SkyWalking UI 服务。 准备工作,准备一个docker网络组,网络组的名字为

    2024年02月15日
    浏览(59)
  • Docker快速搭建SkyWalking[ OAP & UI[登录] & Elasticsearch]

    https://blog.csdn.net/Abraxs/article/details/128517777 2.1 - 运行Skywalking-oap容器 ---- 注意oap运行参数异常 no provider found for module storage 2.2 - 运行SkyWalking-UI容器 2.2.1 注意如果异常 -e SW_OAP_ADDRESS=192.168.56.101:12800 改为 -e SW_OAP_ADDRESS=http://192.168.56.101:12800 Action: 2.2.2 运行容器命令:运行参数配置

    2023年04月09日
    浏览(39)
  • 专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

    服务链路追踪已成为不可或缺的一环 skywalking是一个优秀的 国产 开源框架,2015年由个人 吴晟 (华为开发者)开源 , 2017年加入apache 孵化器。 skywalking是分布式系统的应用 程序性能监视工具 ,专为微服务、云原生架构和基于容器化技术 (docker、K8s、Mesos)架构而设计,它是

    2023年04月08日
    浏览(86)
  • Spring Cloud【SkyWalking日志、SkyWalking告警 、Skywalking自定义告警规则】(十五)

      目录 分布式请求链路追踪_SkyWalking日志 分布式请求链路追踪_SkyWalking告警 

    2024年02月14日
    浏览(39)
  • Spring boot 集成 Skywalking 配置 || Skywalking 打不开【已解决】

    Apache SkyWalking 如果下载太慢,建议复制下载链接, 然后用下载器下载 ,比如某雷。 ​ 打开apm-bin 里的webapp 修改port ​ ​ 这样就解决了端口冲突问题。 ​  ​ ​   ​ -javaagent:D:testxunleiapache-skywalking-java-agent-8.10.0skywalking-agentskywalking-agent.jar //这个是你自己skywalking-agent.j

    2024年02月14日
    浏览(32)
  • Spring Cloud【SkyWalking服务环境搭建、微服务接入SkyWalking探针、Docker搭建Elasticsearch环境 】(十四)

      目录 分布式请求链路追踪_SkyWalking服务环境搭建

    2024年02月07日
    浏览(51)
  • skywalking服务部署

    一、前言 Apache SkyWalking 是一个开源的分布式跟踪、监控和诊断系统,旨在帮助用户监控和诊断分布式应用程序、微服务架构和云原生应用的性能和健康状况。它提供了可视化的分析工具,帮助开发人员和运维团队深入了解应用程序的性能、调用链和异常情况 功能特点 分布式

    2024年02月11日
    浏览(36)
  • skywalking全链路监控部署

    环境配置要求 Centos 7 jdk1.8.0.144 elasticsearch 7.8.1 skyWalking 3.2.6 一、安装jdk1.8 创建相关目录,解压安装包,解压并移动到jdk目录下 设置环境变量,查看jdk版本 二、安装elasticsearch 2.1、创建用户elasticsearch useradd es passwd es 2.2、下载elasticsearch7.8.1,并解压到相关目录 2.3、修改系统参

    2024年02月08日
    浏览(39)
  • skywalking自定义插件开发

    skywalking是使用字节码操作技术和AOP概念拦截Java类方法的方式来追踪链路的,由于skywalking已经打包了字节码操作技术和链路追踪的上下文传播,因此只需定义拦截点即可。 这里以skywalking-8.7.0版本为例。 关于插件拦截的原理,可以看我的另一篇文章:skywalking插件工作原理剖析

    2023年04月24日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包