ForgeRock访谈

继续我们对 Prometheus 用户的一系列访谈,ForgeRock 的 Ludovic Poitou 将会谈论他们的监控之旅。

您能介绍一下自己以及 ForgeRock 的业务吗?

我是 Ludovic Poitou,ForgeRock 的产品管理总监,常驻法国格勒诺布尔附近。ForgeRock 是一家国际身份和访问管理软件公司,拥有 500 多名员工,2010 年成立于挪威,现在总部位于美国旧金山。我们提供解决方案来保护与客户、员工、设备和事物的每一次在线互动。我们拥有 800 多家客户,从金融公司到政府部门都有。

您在使用 Prometheus 之前的监控经验是什么?

ForgeRock 身份平台一直提供监控接口。但是该平台由 4 个主要产品组成,每个产品都有不同的选项。例如,目录服务产品通过 SNMP、JMX 或 LDAP 提供监控信息,或者在最新版本中甚至可以通过 HTTP 提供 RESTful API。其他产品只有 REST 或 JMX。因此,监控整个平台很复杂,需要能够集成这些协议的工具。

您为什么决定考虑使用 Prometheus?

我们需要为所有产品提供一个单一且通用的监控接口,同时保持现有接口以实现向后兼容。

我们开始使用 DropWizard 来收集所有产品中的指标。与此同时,我们开始将这些产品迁移到云端,并在 Docker 和 Kubernetes 中运行它们。因此,Prometheus 因其与 Kubernetes 的集成、部署的简易性以及与 Grafana 的集成而变得显而易见。我们也研究了 Graphite,虽然我们也为我们的产品添加了对它的支持,但我们的客户几乎不使用它。

您是如何过渡的?

我们的一些产品已经在使用 DropWizard 库,并且我们已经决定在所有产品中使用一个通用库,因此 DropWizard 是编写检测代码的显而易见的选择。但是很快,我们遇到了数据模型的问题。Prometheus 接口使用维度,而我们倾向于为指标使用分层模型。我们也开始使用 Micrometer,并很快遇到了一些限制。因此,我们最终构建了一个自定义实现,使用 Micrometer 接口来收集我们的指标。我们调整了 DropWizard Metrics 以满足我们的要求,并对 DropWizard Prometheus 导出器进行了调整。现在,通过一个检测,我们可以按维度或分层的方式公开指标。然后,我们开始构建示例 Grafana 仪表板,我们的客户可以安装和自定义这些仪表板,以获得他们自己的监控视图和警报。

Access Management ForgeRock's Grafana dashboard

我们继续提供之前的接口,但我们强烈鼓励我们的客户使用 Prometheus 和 Grafana。

切换后您看到了哪些改进?

第一个好处来自我们的质量工程团队。当他们开始测试我们的 Prometheus 支持和不同的指标时,他们开始在所有压力和性能测试中默认启用它。他们开始为特定的测试自定义 Grafana 仪表板。不久之后,他们开始突出显示并指出各种指标来解释一些性能问题。

为了重现问题以便理解和修复它们,我们的工程团队也使用了 Prometheus 并扩展了一些仪表板。整个过程使我们获得了更好的产品,并更好地理解了哪些指标对客户的监控和可视化至关重要。

您认为 ForgeRock 和 Prometheus 的未来会怎样?

ForgeRock 已经开始努力将其产品和解决方案作为服务提供。随着这一举措,监控和警报变得更加关键,当然,我们的监控基础设施是基于 Prometheus 的。我们目前有两个级别的监控,每个租户一个,我们使用 Prometheus 来收集关于一个客户环境的数据,并且我们可以为该客户公开一组指标。但是,我们也构建了一个中央 Prometheus 服务,所有已部署租户的指标都会被推送到该服务,以便我们的 SRE 团队可以很好地了解所有客户环境的运行情况。总的来说,我想说 Prometheus 已经成为我们的主要监控服务,它既为我们的本地客户服务,也为我们自己将解决方案作为服务运行提供服务。