构建集成的小技巧

编辑

本节为开发者提供了一些技巧,以改进他们正在开发的集成。它结合了提示、指南、建议和技巧。请将本节视为一份动态文档,它可能会根据整个平台(Elastic Package Registry、Elastic Agent 和 Kibana)的业务或技术需求而发生变化。

elastic-package

编辑

elastic-package 是一个用 Go 编写的命令行工具,用于开发 Elastic 包。它可以帮助你检查代码风格、格式化、测试和构建你的包。这是开发集成的官方构建工具。请参阅 入门 部分,快速上手并查看其功能。

如果你需要正确版本的 elastic-package 版本(与 CI 使用的版本相同),该版本在 go.mod 中定义,请使用以下命令(在 Integrations 仓库中)

$ go build github.com/elastic/elastic-package
$ ./elastic-package help

新的集成

编辑

清单文件

编辑
  1. 将初始版本设置为 0.1.0

    使用较低的版本(例如 0.0.1)标记集成意味着它处于非常早期的阶段,很可能根本无法工作。它可能处于部分开发阶段。

  2. 为集成选择一到两个类别。

    可用类别的列表位于 Package Registry 源代码中: https://github.com/elastic/package-registry/blob/1dd3e7c4956f7e34809bb87acae50b2a63cd7ad0/packages/package.go#L29-L55

  3. 确保 Kibana 的版本条件设置为 +^7.10.0+,而不是 >=7.10.0。否则,该包也包含在 8.0.0 中,但我们今天不知道它是否真的与 >= 8.0.0 兼容。

    conditions:
      kibana.version: '^7.10.0'
  4. 设置正确的包所有者(GitHub 团队或个人帐户)

    团队的理想候选者:elastic/integrationselastic/security-service-integrations

    相应地更新 .github/CODEOWNERS 文件。

所有集成

编辑

开发

编辑
  1. 当你开发集成并希望将你的更改传播到包注册表时,首先重新构建包

    $ cd packages/apache
    $ elastic-package build

    然后,重新构建并重新部署 Package Registry

    在 Integrations 仓库中执行以下命令非常重要。

    $ elastic-package stack up -v -d --services package-registry

    说明:重新构建和重启包含 Package Registry 的容器比使用挂载卷要快得多。

代码审查者

编辑
  1. Ping “Team:Integrations”。

    使用团队标签通知相关团队成员即将到来的拉取请求。

清单文件
编辑
  1. 配置选项的描述应尽可能简短。

    记住只保留关于配置选项的有意义的信息。

    理想的候选者:产品配置的引用、可接受的字符串值、解释。

    不理想的候选者:_从 A、B、C、D……X、Y、Z 数据集收集指标_。

  2. 描述应易于阅读。

    尝试改写类似这样的句子:_收集 foo_Bar3 指标_,改为_收集 Foo Bar 指标_。

  3. 描述应易于理解。

    简化句子,如果不需要,不要提供关于输入的信息。

    不理想的候选者:_收集应用程序日志(日志输入)_

    理想的候选者:_收集应用程序日志_,_收集应用程序的标准日志_

  4. 字母大小写对于屏幕截图描述很重要。

    这些描述在 Kibana UI 中可视化。如果它们简洁一致,将会提供更好的体验。

    不理想的候选者:_在 ec2 机器上运行 filebeat_

    理想的候选者:_在 AWS EC2 机器上运行 Filebeat_

  5. 如果包依赖于某些功能或字段,而这些功能或字段仅在特定版本的 Stack 或 Beats 中可用,则应在包的 manifest.yml 中相应地调整 kibana.version 条件。

    conditions:
       kibana.version: '^8.7.0'

    具有上述条件的包版本仅在 Kibana 版本 >=8.7.0 中可用。

    使用未发布版本的 Kibana 更改仪表板和可视化可能不安全,因为 Kibana 团队可能会更改 Kibana 代码和潜在的数据模型。我们不能保证你的更改在发布新 Kibana 版本之前不会被破坏。

  1. 在本地运行 elastic-package checkelastic-package test

    如果你想验证你的集成是否按预期工作,你可以执行与 CI 相同的步骤。

    $ cd packages/apache
    $ elastic-package check -v
    $ elastic-package test -v

    请记住,elastic-package test 命令需要一个正在运行的活动集群和导出的环境变量。可以使用 eval "$(elastic-package stack shellinit)" 设置环境变量。

字段
编辑
  1. 删除空的字段文件。

    如果你注意到字段文件(例如 package-fields.yml)不包含任何字段定义,或者它只定义根,请随时删除它。

    不理想的候选者

    - name: mypackage.mydataset
      type: group