ForgeRock 采访
2019年6月18日作者 Simon Pasquier
继续我们对 Prometheus 用户的一系列采访,ForgeRock 的 Ludovic Poitou 谈论了他们的监控历程。
您能介绍一下您自己以及 ForgeRock 做什么吗?
我是 Ludovic Poitou,ForgeRock 的产品管理总监,我们公司位于法国格勒诺布尔附近。ForgeRock ForgeRock 是一家国际化的身份和访问管理软件公司,拥有 500 多名员工,于 2010 年在挪威成立,现总部设在美国旧金山。我们提供解决方案,以保障与客户、员工、设备和物联网的所有在线互动安全。我们的客户超过 800 家,遍布金融公司到政府服务机构。
在使用 Prometheus 之前,您的监控体验是怎样的?
ForgeRock Identity Platform 一直提供监控接口。但该平台由 4 个主要产品组成,每个产品都有不同的选项。例如,Directory Services 产品通过 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 exporter 进行了调整。现在,通过单一的仪器化,我们可以以维度或分层的方式暴露指标。然后,我们开始构建示例 Grafana 仪表板,客户可以安装和自定义这些仪表板,以拥有自己的监控视图和告警。

我们继续提供之前的接口,但我们强烈鼓励客户使用 Prometheus 和 Grafana。
切换后你们看到了哪些改进?
最初的好处来自于我们的质量工程团队。当他们开始测试我们的 Prometheus 支持和不同的指标时,他们开始默认启用它进行所有压力和性能测试。他们开始为特定的测试自定义 Grafana 仪表板。不久之后,他们开始突出显示并指出各种指标,以解释一些性能问题。
在重现问题以理解和修复它们时,我们的工程团队也使用了 Prometheus 并扩展了一些仪表板。整个过程使我们拥有了更好的产品,并对哪些指标对客户来说是重要的监控和可视化有了更好的理解。
您认为 ForgeRock 和 Prometheus 的未来将如何发展?
ForgeRock 已开始努力将我们的产品和解决方案作为服务提供。随着这一举措,监控和告警变得更加关键,当然,我们的监控基础设施是基于 Prometheus 的。我们目前有两个级别的监控,每个租户一个,我们在那里使用 Prometheus 收集一个客户环境的数据,并可以为该客户公开一组指标。但我们也建立了一个中心 Prometheus 服务,所有已部署租户的指标都被推送到该服务,以便我们的 SRE 团队能够真正深入了解所有客户环境的运行情况和方式。总的来说,我认为 Prometheus 已成为我们的主要监控服务,它为我们的本地客户以及我们自己运行的服务化解决方案提供支持。