过去几个月我们一直在努力与 Gnocchi 团队合作来存储您的指标,我想是时候炫耀一下了。
到目前为止,Gnocchi 提供了可扩展的度量存储和资源索引,尤其是对于 OpenStack 云——但不仅如此,我们是通用的。存储指标很酷,但有一种方法可以可视化它们会更好!
原型制作
我们很快就开始构建一个小的 HTML 界面。作为对 REST 友好的人,我们在用于检索有关指标的信息和度量的相同端点上启用了它,如果您从 Web 浏览器请求这些页面,则发送回
text/html
而不是
application/json
。
但让我们面对现实吧:我们是后端开发人员,我们不擅长任何前端开发。 CSS、HTML、JavaScript?呸!所以我们构建的是一个起点,希望一些神奇的 Web 开发人员能够加入并完成这项工作。
显然它从未发生过。
好吧,外面有什么?
事实证明,那里有后端不可知的解决方案,我们决定选择 Grafana 。 Grafana 是一个完整的图形仪表板解决方案,可以插入任何后端之上。它已经支持时间序列数据库,例如 Graphite、InfluxDB 和 OpenTSDB。
这足以让我的开发伙伴 Mehdi Abaakouk 加入并开始为 Grafana 编写 Gnocchi 插件!因此,现在在 grafana-plugins 存储库中有一个基本但可靠且可工作的 Grafana 后端。
使用该插件,您可以绘制存储在 Gnocchi 中的任何内容,从原始指标到与资源相关的指标。您可以使用模板,但还没有注释。后端支持涉及或不涉及 Keystone 的 Gnocchi,以及任何类型的身份验证(基本身份验证或 Keystone 令牌)。所以,是的,如果您没有将 Gnocchi 与 OpenStack 的其余部分一起运行,它甚至可以工作。
它还支持高级查询,因此您可以根据某些标准搜索资源并绘制其指标图表。
我想试试!
如果你想部署它,你需要做的就是安装 Grafana 和它的插件,并创建一个指向 Gnocchi 的新数据源。就这么简单。如果您计划使用 Keystone 身份验证,则涉及一些 CORS 中间件配置,但这非常简单——只需将
cors.allowed_origin
选项设置为 Grafana 仪表板的 URL。
我们直接在 Gnocchi devstack 插件中添加了对 Grafana 的支持。如果您正在运行
DevStack,
您可以按照
说明
进行操作——基本上是添加行
enable_service gnocchi-grafana
。
迁移至 Grafana 核心
Mehdi 几天前刚刚打开了一个拉取请求 ,将插件合并到 Grafana 核心中。它实际上是迄今为止 Grafana 中单元测试最多的插件之一,因此它应该在未来合并的好路径上,并且支持 Gnocchi 直接进入 Grafana,而不涉及任何插件。