当前位置: 首页 > news >正文

通过 KafkaMQ 接入Skywalking 数据最佳实践

Skywalking

SkyWalking 是一个开源的分布式追踪系统,主要用于监控和分析分布式系统的性能和行为。它支持多种语言和框架,能够实时收集和分析服务间的调用链路数据、性能指标和日志信息,帮助开发者快速定位系统瓶颈和问题。

SkyWalking Java Agent 是 SkyWalking 提供的针对 Java 应用的自动追踪工具。它通过字节码增强技术,在不修改应用代码的情况下,自动注入追踪代码,实现对 Java 应用的性能监控和调用链追踪。Java Agent 可以与 SkyWalking OAP Server 配合,将采集到的指标、日志和调用链数据上报到后端进行分析和可视化展示,帮助开发和运维团队更好地管理和优化分布式系统。

SkyWalking KafkaMQ

SkyWalking KafkaMQ 是 SkyWalking 项目中的一个插件,用于将 SkyWalking 采集的指标、日志和调用链数据通过 Kafka 消息队列上报到 SkyWalking OAP Server。它允许 SkyWalking Java Agent 将数据发送到 Kafka 集群,再由 Kafka 消费者将数据转发到 SkyWalking OAP Server,从而实现数据的异步传输和解耦,提高系统的可扩展性和可靠性。这种架构特别适用于大规模分布式系统,能够有效减轻 OAP Server 的压力,同时确保数据的高效传输和处理。

观测云

观测云是一款专为 IT 工程师打造的全链路可观测产品,它集成了基础设施监控、应用程序性能监控和日志管理,为整个技术栈提供实时可观察性。这款产品能够帮助工程师全面了解端到端的用户体验追踪,了解应用内函数的每一次调用,以及全面监控云时代的基础设施。此外,观测云还具备快速发现系统安全风险的能力,为数字化时代提供安全保障。

观测云兼容 SkyWalking 的数据,可以将 SkyWalking 的数据直接推送至观测云,或者使用 KafkaMQ 的方式消费 SkyWalking 数据上报至观测云。

实践

实践主题:SpringBoot 应用接入 SkyWalking ,并激活 SkyWalking KafkaMQ 组件上报数据至观测云。

流程

  1. 应用接入 SkyWalking 探针,并通过 KafkaMQ plugin 进行数据上报至 KafkaMQ Server
  2. KafkaMQ Server 缓存 Skywalking 数据
  3. DataKit 启动 KafkaMQ 采集器,消费 KafkaMQ Server 队列数据
  4. DataKit 启动 Skywalking 采集器, KafkaMQ 采集器消费到的数据使用 SkyWalking 采集器进行解析并推送至观测云

应用

当前主要是以 JAVA 应用为主,新增 skywalking-agent 进行自动化埋点,启动命令如下:

java -javaagent:/home/liurui/agent/skywalking-agent-8.15/skywalking-agent.jar \
-Dskywalking.agent.service_name=demo-app  \
-DSW_KAFKA_BOOTSTRAP_SERVERS=localhost:9092 \
-DSW_KAFKA_NAMESPACE=dev  \
-jar demo-app.jar
  • -Dskywalking.agent.service_name: 服务名称
  • -DSW_KAFKA_BOOTSTRAP_SERVERS: kafkamq server
  • -DSW_KAFKA_NAMESPACE: topic 的 namespace,配置后,会影响默认的队列名称。将当前 namespace 作为前缀追加到默认队列名称上。

如需 Skywalking Kafka 插件生效,需要将 optional-reporter-plugins/kafka-reporter-plugin-xxx.jar 文件复制到 plugins 目录下,Skywalking 自动激活 Kafka 插件,并使默认的配置 collector.backend_service 失效。

访问应用产生链路信息,后续采集会用到。

采集器

DataKit 采集器目录为 /usr/local/datakit/conf.d

  • 开启 KafkaMQ 采集器
cd kafkamq
cp kafkamq.conf.sample kafkamq.conf

调整 kafkamq.conf,内容如下:

# {"version": "1.72.0", "desc": "do NOT edit this line"}[[inputs.kafkamq]]addrs = ["localhost:9092"]# your kafka version:0.8.2 ~ 3.2.0kafka_version = "2.0.0"group_id = "datakit-group"# consumer group partition assignment strategy (range, roundrobin, sticky)assignor = "roundrobin"offsets=-1## skywalking custom[inputs.kafkamq.skywalking]## Required: send to datakit skywalking input.dk_endpoint="http://localhost:9529"thread = 8 topics = ["skywalking-metrics","skywalking-profilings","skywalking-segments","skywalking-managements","skywalking-meters","skywalking-logs",]# 需要跟应用配置的kafka namespace 保持一致namespace = "dev"
  • 开启 Skywalking 采集器
cd skywalking
cp skywalking.conf.sample skywalking.conf

内容不需要调整。

  • 重启 DataKit
datakit service -R

效果

登录观测云控制台,点击「应用性能监测」 -「链路」,即可查看服务调用链情况。

点击列表数据可以查看到每一个 trace 的 span 信息。

点击「场景」 -「新建仪表板」,输入 “JVM Skywalking”, 选择 “JVM Skywalking 监控视图”,点击 “确定” 即可添加视图。

http://www.xdnf.cn/news/1389007.html

相关文章:

  • R ggplot2学习Nature子刊一张图,换数据即可用!
  • leetcode 338 比特位计数
  • 04数据库约束实战:从入门到精通
  • Linux下的网络编程SQLITE3详解
  • 算法题打卡力扣第1004. 最大连续1的个数 III(mid)
  • 技术速递|新手指南:如何在 Foundry Local 中使用自定义模型
  • 百度后端岗位--面试真题分析
  • CCS的诡异报错合集1(以C2000为例)
  • MAC spotlight 搜不到应用程序和 tags 生效
  • ZooKeeper 安装配置
  • C++基础(②VS2022创建项目)
  • 球型摄像机实现360°无死角
  • CLion 中配置运行 Qt 项目指南
  • 三一重工AI预测性维护破局:非计划停机减少60%,技师转型与数字孪生技术搅动制造业
  • 预制菜餐厅:工业化与温度餐平衡术
  • 【Rust】 5. Trait 与运算符重载
  • Python Imaging Library (PIL) 全面指南:PIL高级图像处理-分割与颜色空间转换
  • [Mysql数据库] 知识点总结6
  • 人工智能-python-深度学习-批量标准化与模型保存加载详解
  • 嵌入式-定时器的从模式控制器、PWM参数测量实验-Day24
  • 快手发布SeamlessFlow框架:完全解耦Trainer与Agent,时空复用实现无空泡的工业级RL训练!
  • OpenTenBase实战:从MySQL迁移到分布式HTAP的那些坑与收获
  • MySQL數據庫開發教學(三) 子查詢、基礎SQL注入
  • java开发连接websocket接口
  • system论文阅读--HPCA25
  • 基于SpringBoot和百度人脸识别API开发的保安门禁系统
  • LubanCat-RK3568 UART串口通信,以及遇到bug笔记
  • 实时音视频延迟优化指南:从原理到实践
  • Less运算
  • (一)Python语法基础(上)