Kibble适配GaussDB开源开发任务验证心得

举报
huangjiaming 发表于 2024/12/06 17:35:20 2024/12/06
【摘要】 Apache Kibble 是一个用于处理日志和分析软件开发生命周期数据的工具。它可以收集来自各种源(如版本控制系统、问题跟踪系统、构建系统等)的数据,并将这些数据整合起来进行分析。

背景介绍

开源for Huawei(参考:https://developer.huaweicloud.com/programs/opensource/contributing/)  通过和公司、高校、社区的开发者合作,完成鲲鹏、昇腾、欧拉、鸿蒙、高斯、云服务等与开源软件的适配开发,帮助繁荣Huawei的基础生态,同时让开源软件能够更加简单、高效的运行于华为云上。

开始之前,开发者可以下载 开源for Huawei Wiki(参考:https://gitcode.com/HuaweiCloudDeveloper/OpenSourceForHuaweiWiki/overview 了解详细的开发步骤,技术准备,以及开发过程需要的各种资源。

组件功能

Apache Kibble 是一个用于处理日志和分析软件开发生命周期数据的工具。它可以收集来自各种源(如版本控制系统、问题跟踪系统、构建系统等)的数据,并将这些数据整合起来进行分析。

  1. 日志收集
        (1)多种数据源支持:Kibble 能够处理来自不同渠道的日志。例如,它可以从版本控制系统(如 Git)收集提交日志,这些日志包含了代码变更的详细信息,如作者、提交时间、提交信息等。还可以从构建服务器收集构建日志,了解构建过程中的各种信息,包括依赖安装是否成功、编译错误等。

        (2)数据格式标准化:在收集日志后,Kibble 会对不同格式的数据进行标准化处理。例如,对于 Git 日志,它可能会提取出提交 ID、分支名称、提交者姓名等关键信息,并将其转换为一种统一的、便于后续分析的数据格式。对于构建日志,它可能会解析其中的错误码、警告信息等,将其整理成结构化的数据。

      2.日志存储与索引

         (1)存储机制:Kibble 通常会将处理后的日志数据存储在合适的存储系统中。这可能是关系型数据库(如 MySQL)或非关系型数据库(如 Elasticsearch)。以 Elasticsearch 为例,Kibble 会将日志数据发送到 Elasticsearch 集群中,利用 Elasticsearch 的分布式存储和高效的索引机制,方便后续的查询和检索。

         (2)索引构建:在存储过程中,Kibble 会帮助构建索引。例如,对于日志中的日期字段,它可以构建时间序列索引,使得用户可以很方便地按照时间范围查询日志。对于用户相关的字段(如提交者姓名),可以构建基于用户的索引,便于查找特定用户相关的所有日志。

适配准备

  1. 已安装并配置好Gauss数据库
  2. Python 3.6 或更高版本(最好是3.8版本,3.10以上版本可能会出现版本不兼容的情况)。
  3. Elasticsearch集群搭建(虽然Kibble服务的日志数据可以存储在关系型数据库中,但由于kibble服务初始化需要依靠ES集群执行,所以还是需要搭建的)

ps:ES集群可到官网地址根据自己主机配置选择所对应的jar包或者rpm包:https://www.elastic.co/cn/elasticsearch

     4.certifi、pyyaml、bcrypt、elasticsearch、pre-commit、python-dateutil、ndicts等依赖库安装

     5.kibble服务安装,源码安装地址:apache/kibble-1: Apache Kibble - a tool to collect, aggregate and visualize data about any software project

适配思路

    先搭建kibble服务,然后启动kibble服务,然后将日志获取绑定为gaussdb,然后再将gaussdb的测试表里进行增删改等操作,然后将kibble记录的日志信息同步到gaussdb里的日志表里,若日志表里的信息与数据库操作一致,则代表适配完成。

适配过程中遇到的问题

1. 连接问题 - 安装依赖库和配置文件修改

描述:缺少数据库连接驱动可能导致无法连接 GaussDB。

解决方法:安装依赖库  

pip install psycopg2

在kibble.yaml配置文件中,根据所建立的gauss数据库的连接信息,将连接信息加入到配置文件中

[database]
         type = gaussdb
         driver = psycopg2
         host = localhost
         port = 5432
         user = kibble_user
         password = kibble_password
         database_name = kibble_gaussdb

2.连接问题 -网络和安全设置

描述:缺少数据库连接驱动可能导致无法连接 GaussDB。

解决办法:如果 GaussDB 服务器在远程且有访问限制,需要在配置文件中正确配置代理相关设置

在kibble.yaml配置文件中,根据Gauss服务器的代理信息,将代理信息加入到配置文件中

[network]
         proxy_type = http
         proxy_host = proxy.example.com
         proxy_port = 8080


适配结果体现:

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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