Apache SkyWalking
Apache SkyWalking 是一款非常优秀的应用性能监控 APM 工具 对微服务、云原生和容器化应用提供自动化、高性能的监控方案。项目于 2015 年创建 并于 2017 年 12 月进入 Apache 孵化器 目前已经是Apache的顶级项目。
Apache SkyWalking 提供了分布式追踪 服务网格 Service Mesh 遥感数据分析 指标聚合和可视化等多种能力。项目覆盖范围 从一个单纯的分布式追踪系统 扩展为一个可观测性分析平台 observability analysis platform 和应用性能监控管理系统。它包括以下主要功能
基于分布式追踪的 APM 系统。满足 100%分布式追踪和数据采集 同时对被监控系统造成极小的压力云原生友好。支持通过以 Istio 和 Envoy 为核心的 Service Mesh 来观测和监控分布式系统多语言自动探针 包括 Java .NET NodeJS Python包含展示 Trace 指标和拓扑图在内的可视化界面SLS TraceSLS Trace方案完全兼容可观察性数据标准 OpenTelemetry 为客户提供Trace数据的存储、分析、展示等功能 此外SLS Trace也支持其他Trace方案 例如Jaeger、Zipkin、SkyWalking等 数据的接入。SLS Trace方案的主要功能特点如下
支持多种接入方式 SLS本身支持以OpenTelemetry、Jaeger、Zipkin等协议直接写入 接入包括10 种语言 多种现有平台 支持公网、阿里云内网、全球加速等接入网络。内部存储、分析、展示等数据格式均遵循OpenTelemetry Trace 1.0标准规范 符合云原生、微服务背景下的Trace格式需求。高性能 支持日PB级数据接入 提供预计算能力 提取指标并进行依赖分析 具备支撑海量场景下Trace数据100%采样的能力。弹性 可任意设置日志存储周期 Logstore容量可动态伸缩以满足业务增长需求。具备丰富的Trace功能 包括Trace详情展示、服务概览、Trace查询统计、依赖分析等 同时提供自定义分析 SQL分析方式 的功能 满足各类特性化需求。下游生态友好 SLS的Trace数据以及计算后的指标数据等都支持对各类接流计算、离线计算引擎 并支持自定义订阅数据进行定制化的处理。提供多种内置的AIOps算法 自动分析Trace对于性能、错误率的影响 帮助开发者在复杂环境下快速排查问题的根因当SkyWalking结合SLSApache SkyWalking总体共分为Agent 后端和存储三部分
Agent和应用绑定在一起 随应用启动而启动 这个不需运维人员过多的关心后端和存储则重度依赖运维人员 需要根据业务的规模和数据量决定该部署多大规模的后端和存储集群。特别地 当某个业务因某个活动出现追踪数据流量激增下 后端很大可能会因为当时评估的量不够从而导致因处理能力不够 也可能出现存储能力不够而造成追踪数据丢失的问题。SLS Trace已经支持Apache SkyWalking Agent端直接接入SLS Trace服务。运维人员可以直接将已经接入Apache SkyWalking的应用的Agent端直接接入到SLS Trace服务 下文会有详细说明 而不需要考虑规模和部署的问题。接入SLS Trace的优势有
弹性 弹性是SLS的一大特点 在面对激增流量方面使得SLS Trace具有天然的优势。高性能 SLS提供了相比ES更优的查询性能 支持每天PB级的数据接入 十亿、百亿级别的查询在秒级即可返回。稳定性 SLS的数据全部使用3副本存储 提供99.9%的可用性以及十一个9的数据可靠性。免运维 SLS提供了开箱即用的SkyWalking Trace接入服务 SLS本身是云服务 无需运维服务器和后端应用。3. 根据实际情况填写Trace实例名称 项目Project选择刚创建的Project
SLS SkyWalking数据接入配置登陆SLS控制台 在接入数据中选择SkyWalking接入进入配置页后 点击选择上一节创建的Project和Logstore。注意 Logstore的名字为 INSTANCE _traces。举个例子 创建的Trace实例为qs-trace-test 那么存放trace的logstore名字为qs-trace-test_traces。创建机器组如果您已有可用的机器组 请单击使用现有机器组。如果您还没有可用的机器组 请执行以下操作 以ECS为例 。在ECS页签中 选中目标ECS实例 单击立即执行。更多信息 请参见安装Logtail ECS实例 。如果是自建集群、其他云厂商服务器 需要手动安装Logtail。更多信息 请参见安装Logtail Linux系统 或安装Logtail Windows系统 。添加Logtail配置 将以下配置内容到配置中{
? ? inputs : [
? ? ? ? {
? ? ? ? ? ? detail : {
? ? ? ? ? ? ? ? // 注意 若您的Logtail本地11800端口被占用 可替换为其他可用端口 同时需修改SkyWalking上报的端口号。
? ? ? ? ? ? ? ? Address : 0.0.0.0:11800
? ? ? ? ? ? },
? ? ? ? ? ? type : service_skywalking_agent_v3
? ? ? ? }
? ? ],
? ? aggregators : [
? ? ? ? {
? ? ? ? ? ? detail : {
? ? ? ? ? ? ? ? MetricsLogstore : qs-trace-test-metrics ,
? ? ? ? ? ? ? ? TraceLogstore : qs-trace-test-traces
? ? ? ? ? ? },
? ? ? ? ? ? type : aggregator_skywalking
? ? ? ? }
? ? ],
? ? global : {
? ? ? ? AlwaysOnline : true,
? ? ? ? DelayStopSec : 300
? ? }
}
将ApacheSkyWalking Agent参数添加到启动命令 并启动应用 以下以Java应用为例。demo代码见Github.
java -javaagent:/PATH/TO/AGENT/skywalking-agent.jar -Dskywalking.agent.service_name XXX -Dskywalking.agent.service_name XXX -jar xxx.jar
概览页面可以查看单个服务的概览信息 其中包括Trace发生的条数 服务数 平均延迟 Pxx等相关指标
服务列表服务列表可以查看服务列表及单个服务下调用的相关指标信息
拓扑调用图可以展示所有接入SLS Trace服务中的服务的调用关系及调用相关指标
单条Trace详情
从总体来看 SLS Trace服务接入SkyWalking Trace方面比较简单 对于现有接入SkyWalking的应用和服务来说 无需做任何修改就能让现有的已接入SkyWalking的应用直接接入到SLS中 对于新接入SkyWalking 运维人员不用再为评估和部署SkyWalking后端集群和ES集群而发愁。
参考https://skywalking.apache.org/https://www.infoq.cn/article/lclyrgcbxtlam82ue-7whttps://help.aliyun.com/document_detail/208914.html?spm a2c4g.11174283.6.1023.2a754c07H6Jyyb本文转自网络,原文链接:https://developer.aliyun.com/article/785327