可视化您的 OpenStack 云:Gnocchi 和 Grafana

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

过去几个月我们一直在努力与 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,而不涉及任何插件。