skywalking适配华为云&Gaussdb
介绍一下Skywalking
SkyWalking 是一款开源的应用性能管理(APM)和分布式追踪系统,主要用于监控和分析微服务架构下的系统性能和健康状况。它可以帮助开发人员和运维人员追踪请求的完整链路,分析系统瓶颈,优化服务性能。SkyWalking 提供了分布式追踪、服务拓扑、指标监控等多种功能。
SkyWalking 的主要功能
1. 分布式追踪:SkyWalking 支持追踪请求的全链路,从入口服务到每一个中间层,直到最终服务。这使得可以清晰地看到请求在系统中的流转过程。
2. 性能监控:通过监控微服务的各项指标(如响应时间、吞吐量、错误率等),可以帮助用户迅速识别性能瓶颈,提升服务性能。
3. 服务拓扑:SkyWalking 可以自动生成服务拓扑图,展示服务之间的调用关系以及每条路径的状态,帮助用户更直观地了解系统结构和依赖关系。
4. 告警机制:可以设定告警策略,当某些指标超出预设阈值时,SkyWalking 会发送告警通知,及时提醒运维人员注意异常情况。
5. 多语言支持:支持 Java、.NET、Go、Node.js、Python 等多种编程语言的探针,适用于不同的技术栈。
6. 可扩展性:SkyWalking 提供丰富的插件机制,可以集成到其他监控系统中,满足不同的监控需求。
SkyWalking 的架构
SkyWalking 的架构主要包括以下几个组件:
• 探针(Agent):安装在服务实例中,负责采集追踪数据,并将数据发送到 OAP(后端)服务。
• OAP(Observability Analysis Platform):核心分析和存储组件,接收探针数据,进行分析和聚合,并存储到数据库中。
• 存储模块:支持多种存储后端,如 ElasticSearch、Apache HBase、MySQL、GaussDB 等,主要用于存储和查询指标数据。
• UI 控制台:用于展示系统的监控数据,提供了多种可视化视图,如拓扑图、仪表板、追踪列表等,帮助用户直观了解系统状况。
如何使用 SkyWalking
1. 安装 SkyWalking:可以通过下载发布包或使用 Docker 镜像快速安装 SkyWalking。也可以根据需求配置适合的存储后端。
2. 部署探针:在应用中集成 SkyWalking 的探针,可以通过依赖注入(如 Java 的 Agent Jar 包)来实现,通常只需少量配置。
3. 配置监控参数:可以通过配置文件或环境变量调整采样率、存储策略等参数,优化性能和数据存储。
4. 查看监控数据:通过 SkyWalking 提供的 UI 控制台查看服务的性能指标和追踪数据,分析瓶颈或异常。
适用于哪些场景
• 微服务架构的性能监控:SkyWalking 可以监控微服务之间的调用链路,特别适用于大型分布式系统。
• DevOps 监控需求:SkyWalking 可以帮助 DevOps 团队快速识别系统的性能瓶颈,提高运维效率。
• 应用性能管理(APM):提供从应用层到数据库的完整性能分析,方便优化应用性能。
如果你正在将 SkyWalking 集成到 GaussDB,可能需要定制存储插件或调整配置,以便 SkyWalking 将数据保存到 GaussDB 中。
步骤1:fork 仓库
主要Skywalking的仓库:https://github.com/apache/skywalking,将其fork到自己的账号下
步骤2:本地编译并运行
主要步骤:
- 执行git submodule init
- 执行git submodule update
- 执行mvn clean install -DskipTests
遇到的问题:
1. 在执行git submodule update时,无法下载,解决方案:①本地加上墙 ②多执行几遍也可以
2. 报错:
Failed to execute goal org.apache.maven.plugins:
maven-gpg-plugin:3.2.6:sign (sign-artifacts) on project apm: failed to execute gpg:
Error while executing process. Cannot run program "gpg": error=2, No such file or directory -> [Help 1]
这是由于 Maven 尝试在构建过程中使用 gpg 插件来签名构建的工件,但本地系统中没有安装 gpg(GNU Privacy Guard),或者没有对签名进行配置。直接忽略。加上参数mvn clean install -DskipTests -Dgpg.skip=true
3. 报错:
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
[INFO] npm ERR! code ETIMEDOUT
[INFO] npm ERR! syscall connect
[INFO] npm ERR! errno ETIMEDOUT
[INFO] npm ERR! network request to https://registry.npmjs.org/zrender/-/zrender-5.4.1.tgz failed, reason: connect ETIMEDOUT 104.16.24.34:443
[INFO] npm ERR! network This is a problem related to network connectivity.
[INFO] npm ERR! network In most cases you are behind a proxy or have bad network settings.
[INFO] npm ERR! network
[INFO] npm ERR! network If you are behind a proxy, please make sure that the
[INFO] npm ERR! network 'proxy' config is set properly. See: 'npm help config'
前端使用npm下载,但是registry是默认的,可以注释掉apm-webapp中的
<arguments>ci --registry=https://registry.npmjs.org/</arguments>
改为:
<arguments>ci </arguments>
在npm注册国内的源
4. 启动OAPServerStartUp类和ApplicationStartUp,就可以启动了。
步骤3:解决思路
如果是完全的新插件,可以参考https://bbs.huaweicloud.com/blogs/437854,进行开发。但是opengauss和Postgresql非常相似。可以测试一下直接替换opengauss的驱动,是否可行
添加驱动:
<dependency>
<groupId>org.opengauss</groupId>
<artifactId>opengauss-jdbc</artifactId>
<version>${opengauss.version}</version>
</dependency>
修改配置文件:
storage:
selector: ${SW_STORAGE:h2}
h2改为postgresql
修改下面的Postgresql的配置
postgresql:
properties:
jdbcUrl: jdbc:opengauss://ip:port/postgres?currentSchema=skywalking
dataSource.user: root
dataSource.password: pwd
dataSource.driverClassName: org.opengauss.Driver
步骤4:购买华为云Gaussdb和ECS
购买华为云Gaussdb,并且购买公网IP,不然无法访问。配置如下:
产品名称 |
产品类型 |
数据库引擎版本 |
性能规格 |
实例类型 |
部署形态 |
备注 |
云数据库 GaussDB |
基础版 |
8.201 |
独享型1:4 |
集中式 |
1主2备 |
推荐 |
产品名称 | CPU架构 | 实例类型 | 公共镜像 | 镜像版本 | 备注 |
---|---|---|---|---|---|
弹性云服务器 | 鲲鹏计算 | 鲲鹏通用计算增强型 | Huawei Cloud EulerOS | Huawei Cloud EulerOS 2.0 标准版 64位 ARM版(10GiB) | 推荐 |
步骤5:在demo项目中添加java agent
java -jar -javaagent:/root/workspace/java/opensource-demo-hikaricp-241106/skywalking-agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=resource-server \
-Dskywalking.collector.backend_service=ip:11800 resource-server/target/resource-server-0.0.1-SNAPSHOT.jar > resource.log 2>&1 &
步骤6:访问,看是否有结果展示,数据库是否保存
- 点赞
- 收藏
- 关注作者
评论(0)