skywalking适配华为云&Gaussdb

举报
yd_282553764 发表于 2024/11/21 16:19:13 2024/11/21
【摘要】 介绍一下SkywalkingSkyWalking 是一款开源的应用性能管理(APM)和分布式追踪系统,主要用于监控和分析微服务架构下的系统性能和健康状况。它可以帮助开发人员和运维人员追踪请求的完整链路,分析系统瓶颈,优化服务性能。SkyWalking 提供了分布式追踪、服务拓扑、指标监控等多种功能。SkyWalking 的主要功能 1. 分布式追踪:SkyWalking 支持追踪请求的全链路...

介绍一下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:访问,看是否有结果展示,数据库是否保存

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。