Python Persister 性能指标收集¶
故事板: https://storyboard.openstack.org/#!/story/2001576
本文档定义了 Python Persister 中指标 upsert 处理时间和吞吐量的测量指标列表,并提供了一个 REST API 来检索这些测量指标。
问题描述¶
基于 DropWizard 框架构建的 Java Persister 提供了许多内部性能相关的指标,例如自上次服务启动以来处理的指标消息总数、平均指标处理时间、最小值和最大值等。另一方面,Python Persister 缺乏此类工具。这给希望监控、诊断和调整 Persister 性能的运维人员以及在 Queens 版本中引入的 Persister 性能测试工具带来了挑战。Cassandra Python Persister 插件依赖此功能进行性能调整。
用例¶
用例 1:开发人员实现定义的性能指标。
对于内部性能指标,有两种方法。第一种方法是在内存中计量,类似于 Java 实现。数据收集在 Persister 服务启动时开始,并且不会在服务重启后持久化。第二种方法是将此类测量指标与 Monasca 收集的“正常”指标完全相同地对待。优点是这些指标将被持久化,并且已经可以使用 REST API 来检索这些指标。Persister 指标列表包括
在给定周期内,给定 Persister 服务实例收到的并完成的指标 upsert 请求总数
在给定周期内,在给定进程或线程上收到的并完成的指标 upsert 请求总数 (P2)
给定 Persister 服务实例和进程/线程在给定周期内的平均、最小和最大指标请求处理时间。
用例 2:通过 REST API 检索 persister 性能指标。
可以使用 Monasca API 服务中的 list metrics API 来检索性能指标。
提议的变更¶
Monasca Persister
Python Persister 集成 monasca-statsd 以发送计数和计时器指标
Persister 配置文件中添加 statsd 的属性
Persister 性能基准测试工具增加了从 Monasca REST API 来源检索指标的支持,除了 DropWizard admin API。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
其他最终用户影响¶
无
性能影响¶
待定 (TBD),预计调用 statsd 更新计数器和计时器会对性能产生较小的影响。
其他部署者影响¶
服务部署没有变化。
开发者影响¶
无。
实现¶
负责人¶
欢迎贡献者!
主要负责人
其他贡献者
工作项¶
Monasca Persister
Python Persister 集成 monasca-statsd 以发送计数和计时器指标
Persister 配置文件中添加 statsd 的属性
Persister 性能基准测试工具增加了从 Monasca REST API 来源检索指标的支持,除了 DropWizard admin API。
依赖项¶
无
测试¶
建立一个系统,使用 JQuery 自动化存储许多指标,检查结果。可以从 monasca-persister/perf 中找到完成此测试的工具。
文档影响¶
monasca-persister/perf 中的现有 README.md 描述了所需的步骤。可能需要进行一些小的更改以保持最新。
参考资料¶
https://github.com/openstack/monasca-persister/tree/master/perf
历史记录¶
Rocky |
引入 |
|---|---|
Stein |
已修订,包含测试说明 |