网站开发的目的实习报告,网站开发需要数据库,网站整体地图怎么做,营销型网站建设主要需要注意什么文章目录 介绍架构概述一、Agent组件介绍Agent的配置配置参数详解service_namesample_n_per_3_secsnamespacecollector.backend_service Agent的工作原理 二、Collector组件什么是Collector组件?Collector组件的配置配置Collector组件示例 总结 介绍
SkyWalking是一个开源的分… 文章目录 介绍架构概述一、Agent组件介绍Agent的配置配置参数详解service_namesample_n_per_3_secsnamespacecollector.backend_service Agent的工作原理 二、Collector组件什么是Collector组件?Collector组件的配置配置Collector组件示例 总结 介绍
SkyWalking是一个开源的分布式系统追踪、监控和诊断工具它能够帮助开发人员和运维人员实时监控和诊断分布式系统的性能问题。本文将深入剖析SkyWalking的架构并介绍其核心组件及其功能。
架构概述
SkyWalking的架构由以下几个核心组件组成 Agent在被监控的应用程序中嵌入的代理组件用于收集应用程序的性能数据并将其发送给Collector。 Collector用于接收和处理来自Agent的监控数据的组件可以将数据存储到不同的存储介质中如Elasticsearch、MySQL等。 UI提供用户界面用于展示监控数据和性能指标以及进行系统的配置和管理。 Storage用于存储和索引监控数据的组件可以选择使用Elasticsearch、MySQL等作为存储介质。
一、Agent组件
介绍
Agent是SkyWalking的核心组件之一它负责在被监控的应用程序中收集性能数据并将其发送给Collector。Agent可以嵌入到应用程序的代码中或者通过Java Agent的方式进行加载。
Agent的配置
Agent的配置文件使用properties格式可以通过配置文件指定Agent的相关参数。
Agent的配置代码示例
# SkyWalking Agent 配置
agent.service_namemy-application
agent.sample_n_per_3_secs100
agent.namespacedefault
agent.collector.backend_servicelocalhost:11800在配置中你需要指定应用程序的名称service_name、采样率sample_n_per_3_secs、命名空间namespace以及Collector的地址collector.backend_service。
配置参数详解
下面对Agent的配置参数进行详细解释
service_name
描述指定应用程序的名称。类型字符串。示例agent.service_namemy-application
sample_n_per_3_secs
描述指定采样率即每3秒钟采样的次数。类型整数。示例agent.sample_n_per_3_secs100
namespace
描述指定命名空间用于区分不同的应用程序。类型字符串。示例agent.namespacedefault
collector.backend_service
描述指定Collector的地址。类型字符串。示例agent.collector.backend_servicelocalhost:11800
Agent的工作原理
Agent在应用程序中嵌入的代码中通过字节码增强技术来收集性能数据。它会拦截应用程序的关键方法如HTTP请求、数据库访问等记录方法的调用信息、耗时等数据并将这些数据发送给Collector进行处理。
Agent的工作流程如下 Agent启动时会加载配置文件并初始化相关组件。 Agent会通过字节码增强技术修改应用程序的字节码插入性能数据收集的代码。 当应用程序执行被拦截的方法时Agent会收集相关的性能数据并将其发送给Collector。 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:11800exporter: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.host和exporter.grpc.port用于指定Exporter服务的主机和端口。
配置Collector组件示例
以下是一个配置Collector组件的示例
# skywalking-collector-config.yamlserver:port: 12800storage:elasticsearch:nameSpace: skywalking-oapclusterNodes: localhost:9200receiver-register:backendService:addresses: 127.0.0.1:11800exporter:grpc:host: 127.0.0.1port: 11800logging: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