概述
Metricbeat 由模块和 metricset 组成。Metricbeat 模块通常以获取指标的服务命名,例如 redis、mysql 等。每个模块可以包含多个 metricset。metricset 表示通常通过一个来自远程系统的请求检索的多个指标。例如,Redis info
metricset 检索运行 Redis INFO
命令时获取的信息,MySQL status
metricset 检索发出 MySQL SHOW GLOBAL STATUS
查询时获取的信息。
为了保证最佳用户体验,对我们来说,只有高质量的模块才能成为 Metricbeat 的一部分非常重要。贡献的模块和 metricset 必须满足以下要求
- 完整的
fields.yml
文件,用于生成文档和 Elasticsearch 模板 - 文档文件
- 集成测试
- 80% 的测试覆盖率(单元测试、集成测试和系统测试相结合)
Metricbeat 允许您在其之上构建各种模块和 metricset。为了使模块被接受,它应该专注于直接从服务本身获取服务指标,而不是通过第三方工具。 目标是尽可能减少可移动的部件,并使 Metricbeat 尽可能靠近需要监视的服务运行。