ForgeRock 访谈

2019年6月18日作者 Simon Pasquier

在我们持续进行的 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 已经成为我们主要的监控服务,它既服务于我们的本地部署客户,也服务于我们自己作为服务运行我们的解决方案。