简单的 Python 包,用于定义要存储在 Elasticsearch 中的构建和测试结果的模式。
项目描述
ebr 连接器
简单的 Python 包,用于定义要存储在 Elasticsearch 中的构建和测试结果的模式
条款
- Build:CI 系统构建/测试执行的单个实例。它应该映射到 CI 系统上的单个 URL/URI/UID。
- 构建 ID:与给定构建关联的 ID (例如1078929)。
- Job :描述构建应该如何运行的任务集合。运行作业应该会导致构建。在 Jenkins 中,这映射到作业/项目,在 Quickbuild 中,这映射到配置(例如cpp-tests、root/prod/main)。
- Product:与给定构建关联的产品名称。
- 测试用例:带有结果信息的单个测试(有时是 C++ 中密切相关的测试的聚合)
- 测试集:测试用例的聚合集合,即一个套件
测试和套件分离
为了更好地支持 Grafana(它对访问 ElasticSearch 中的嵌套信息有限制),测试和套件已被分成两个数组,而不是在此模式中将测试与套件嵌套。
由于构建结果存储在一个文档中,因此无法仅过滤掉例如失败的测试用例。可以仅过滤带有失败测试的构建结果文档,但收到的响应也将包含成功的测试用例。
为了减少接收到的数据量,因此将测试分为通过、失败和跳过的数组。
模式约定
由于架构中使用了嵌套类型,因此需要告知 Elasticsearch 索引器。这是通过定义一个所谓的索引模板来实现的。
为了避免在修改模式时修改索引模板,我们决定使用 动态模板根据以下规则(按此顺序应用)动态映射类型:
- 每个字段都必须以
br_
- 不应该用于全文搜索的字段(关键字)以关键字为后缀,
_key
并将映射到关键字类型。 - 嵌套的字段带有后缀
_nested
并将映射到类型nested。 - 作为计数器的字段以 integer 为后缀
_count
并将映射到类型integer。 - 名称中包含
duration
的字段将映射到float类型。 - 字符串类型的字段获得一个原始字段(除了后缀为
_key
),可用于非全文搜索,并且限制为 256 个字符。
学分
这个包是用Cookiecutter和tomtom-international/cookiecutter-python项目模板创建的。
变更日志
0.1.0-dev (2019-04-10)
- PyPI 上的第一个版本。