

Rainbond通过插件整合SkyWalking,实现APM即插即用
source link: http://dockone.io/article/2434711
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Rainbond通过插件整合SkyWalking,实现APM即插即用
SkyWalking 是一个开源可观察性平台,用于收集、分析、聚合和可视化来自服务和云原生基础设施的数据。支持分布式追踪、性能指标分析、应用和服务依赖分析等;它是一种现代 APM,专为云原生、基于容器的分布式系统而设计。作者:张震
本文整合的目标要达成,运行在Rainbond上的应用,通过开启Rainbond的SkyWalking插件,自动对接SkyWalking Server,灵活开启APM,不需要时关闭插件,实现即插即用的APM。
二. 整合架构
SkyWalking对服务进行监控时服需要在被监控服务中启用agent服务,而SkyWalking agent需要配置到应用的启动命令,虽然对应用代码无侵入,但配置过程需要侵入应用。Rainbond通过插件实现对应用的无侵入,将SkyWalking的agent制作成Rainbond的 初始化类型插件,在应用容器启动之前将agent的jar包拷贝到应用容器,应用容器就能加载agent并连接SkyWalking Server,整个过程对应用容器无侵入,且拓展性强。对接其他APM也可以用类似方式,使用用户通过替换插件实现对接不同的APM工具。下图展示了在Rainbond中使用SkyWalking对应用进行监控的结构
三. Agent插件实现原理
Rainbond插件体系是相对于Rainbond应用模型的一部分,插件主要用来实现应用容器扩展运维能力。由于运维工具的实现有较大的共性,因此插件本身可以被复用。插件必须绑定到应用容器时才具有运行时状态,用以实现一种运维能力,比如性能分析插件、网络治理插件、初始化类型插件。具有运行时的插件的运行环境与所绑定的组件从以下几个方面保持一致:
- 网络空间 这个一个至关重要的特性,网络空间一致使插件可以对组件网络流量进行旁路监听和拦截,设置组件本地域名解析等。
- 存储持久化空间 这个特性使得插件与组件之间可以通过持久化目录进行文件交换。
- 环境变量 这个特性使得插件可以读取组件的环境变量。
四. 通过Rainbond一键安装SkyWalking
我们已将SkyWalking制作为应用并发布至应用市场,用户可基于开源应用商店一键安装。- 安装 Rainbond;
- 在开源应用商店搜索SkyWalking,点击安装即可一键安装;
SkyWalking 服务端在架构上分为四个部分:探针服务、后端服务、存储服务和 UI:
- 平台后端(oap-server) 支持数据聚合、分析和流处理,包括跟踪、指标和日志。
- 存储(elasticsearch-7.13.4) 通过开放/可插拔接口存储SkyWalking 数据。支持 ElasticSearch、H2、MySQL、TiDB、InfluxDB。
- UI(skywalking-ui) 是高度可定制的基于 Web 的界面,允许 SkyWalking 最终用户可视化和管理 SkyWalking 数据。
- 探针(agent) 收集数据并根据 SkyWalking 要求重新格式化数据(不同的探针支持不同的来源)。
五. 使用SkyWalking对微服务进行监控
预先准备环境
- 拥有一套被监控服务,本文中示例应用为Spring Cloud微服务框架 Pig,我们已将Spring Cloud-pig制作为应用并发布至应用市场,用户可基于应用市场一键安装。
配置服务支持SkyWalking监控
在Rainbond团队界面点击插件后进入插件界面,点击新建插件,创建初始化类型插件源码地址:https://github.com/goodrain/skywalking-agent.git
插件构建成功后即可使用,为pig服务的各组件开通此插件即可。
为pig服务的各组件挂载存储,使其与插件共享该存储。
挂载路径为
/tmp/agent
,挂载类型为共享存储;该存储为初始化插件及该组件提供共享存储,共享同一份数据。- 添加环境变量
变量解释:
|变量值|简介|
| :---: | :---- |
|-Dskywalking.agent.service_name=** |在SkyWalking UI中展示的服务名|
|-Dskywalking.collector.backend_service=Host:Port|SkyWalking oap-server的访问地址,用来接收skywalking trace数据|
|-javaagent:/tmp/agent/skywalking-agent.jar|指定需要注入的jar包地址|
添加环境变量以后更新组件即可生效。
- 建立依赖关系
访问SkyWalking
访问 skywalking-ui 对外端口,进入可视化界面。- 服务调用拓扑图
----------------
Rainbond是一个开源的云原生应用管理平台,使用简单,不需要懂容器和Kubernetes,支持管理多个Kubernetes集群,提供企业级应用的全生命周期管理,功能包括应用开发环境、应用市场、微服务架构、应用持续交付、应用运维、应用级多云管理等。
2021-11-29
Recommend
-
102
过去几年,利用容器打包和部署代码的方式日益流行,越来越多企业开始测试或是已经在生产环境中运行了微服务架构应用,开始直接面对和解决分布式服务化架构演变中出现的各种问题。 在这样的趋势和大环境下,无服务器PaaS Rainbond围绕着服务的拓展、监控、治理等角...
-
97
1. 前言 2018年马上结束啦, 今年是 充实忙碌的一年啊, 年中有一天脑壳一热,突然想开发一个 React 组件库, 之前偶尔写过一些 小玩具, 所以想能不能写一个 大玩具呢? 庆幸自己不是三分钟热度, 花了三个月时间, 周末,和工作日休息时间, 搞了一个
-
12
SkyWalking Agent端日志插件的编写历程与使用说明
-
6
电脑技术:如何将Win10和Linux系统安装进U盘?实现即插即用! 零度解说 By: taho On: 2021年7...
-
5
柯基数据通过Rainbond完成云原生改造,实现离线持续交付客户 03 September 2021柯基数据通过Rainbond完成云原生改造,实现离线持续交付客户 1.关于柯基数据 南京柯基数据科技有限公司成立于2015年,提供一...
-
13
GitLab和Rainbond整合实现一体化开发环境 ...
-
1
针对于多团队管理我先列举几个小问题,看看大家有没有共鸣,我们在刚刚接触并使用Rainbond的时候,仅仅创建一个团队,里面创建一大堆应用,看起来特别乱,进行管理的时候呢,也会非常麻烦,尤其是当团队需要划分角色进行管理的时候,就会发现没有办法将权限...
-
8
Rainbond通过插件整合ELK/EFK,实现日志收集 ...
-
5
Envoy 可以作为 Sevice Mesh 微服务框架中的代理实现方案,Rainbond 内置的微服务框架同样基于 Envoy 实现。本文所描述的熔断实践基于 Rainbond 特有的插件机制实现。 Envoy 熔断机制介绍
-
9
MySQLD Exporter 插件基于标准的 MySQLD Exporter 实现。Rainbond 自带的 Prometheus 监控系统 rbd-monitor 会收集 Exporter 中的数据,并通过监控面板展示出来。用户可以自定义展示哪些关键性能数据的指标,这是监控 Mysql 数据库服务的不二之选。
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK