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 仪表板,客户可以安装和自定义这些仪表板,以拥有自己的监控视图和告警。

Access Management ForgeRock's Grafana dashboard

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

切换后你们看到了哪些改进?

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

在重现问题以理解和修复它们时,我们的工程团队也使用了 Prometheus 并扩展了一些仪表板。整个过程使我们拥有了更好的产品,并对哪些指标对客户来说是重要的监控和可视化有了更好的理解。

您认为 ForgeRock 和 Prometheus 的未来将如何发展?

ForgeRock 已开始努力将我们的产品和解决方案作为服务提供。随着这一举措,监控和告警变得更加关键,当然,我们的监控基础设施是基于 Prometheus 的。我们目前有两个级别的监控,每个租户一个,我们在那里使用 Prometheus 收集一个客户环境的数据,并可以为该客户公开一组指标。但我们也建立了一个中心 Prometheus 服务,所有已部署租户的指标都被推送到该服务,以便我们的 SRE 团队能够真正深入了解所有客户环境的运行情况和方式。总的来说,我认为 Prometheus 已成为我们的主要监控服务,它为我们的本地客户以及我们自己运行的服务化解决方案提供支持。