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 已成为我们的主要监控服务,它既服务于我们的本地客户,也服务于我们自己以服务形式运行我们的解决方案。