与 Datawire 的访谈

Prometheus 用户访谈系列仍在继续,来自 Datawire 的 Richard Li 讲述了他们如何过渡到 Prometheus。

您能介绍一下自己和 Datawire 的业务吗?

在 Datawire,我们开发开源工具,帮助开发者在 Kubernetes 上更快地编写代码。我们的项目包括用于 Kubernetes 服务本地开发的 Telepresence;基于 Envoy Proxy 构建的 Kubernetes 原生 API 网关 Ambassador;以及构建/部署系统 Forge

我们在 AWS 的 Kubernetes 中运行着一些关键任务云服务,以支持我们的开源工作。这些服务支持诸如每天动态配置数十个 Kubernetes 集群的用例,这些集群随后被我们的自动化测试基础设施使用。

您在使用 Prometheus 之前的监控经验是怎样的?

我们曾使用 AWS CloudWatch。它很容易设置,但我们发现随着我们采用更分布式的开发模式(微服务),我们需要更大的灵活性和控制力。例如,我们希望每个团队都能够根据需要定制他们的监控,而无需运维方面的帮助。

您为什么决定关注 Prometheus?

我们有两个主要需求。第一个是希望这里的每一位工程师都能够对他们的服务拥有运维控制权和可见性。我们的开发模式天生高度去中心化,我们尽量避免工程师需要等待其他工程师才能完成某项工作的情况。对于监控,我们希望工程师能够对他们的指标基础设施拥有很大的灵活性和控制权。我们的第二个需求是一个强大的生态系统。一个强大的生态系统通常意味着既定的(和文档化的)最佳实践、持续的开发以及大量可以在您遇到困难时提供帮助的人。

Prometheus,特别是 Prometheus Operator,符合我们的要求。有了 Prometheus Operator,每个开发者都可以根据需要创建自己的 Prometheus 实例,无需运维帮助(没有瓶颈!)。我们也是 CNCF 的成员,在 Kubernetes 和 Envoy 社区拥有丰富的经验,因此关注 Prometheus 这个另一个 CNCF 社区是很自然的选择。

Datawire's Ambassador dashboards

您是如何过渡的?

我们知道我们想从将 Prometheus 与我们的 API 网关集成开始。我们的 API 网关使用 Envoy 进行代理,并且 Envoy 使用 statsd 协议自动发出指标。我们安装了 Prometheus Operator(此处有一些详细笔记)并配置它开始收集 Envoy 的统计数据。我们还根据另一位 Ambassador 贡献者的一些工作设置了一个 Grafana 面板

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

我们的工程师现在对 L7 流量有了可见性。我们还能够使用 Prometheus 比较金丝雀部署的延迟和吞吐量,以便更有信心新版本的服务不会导致性能下降。

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

使用 Prometheus Operator 仍然有点复杂。我们需要为我们的服务团队找出运维最佳实践(什么时候部署一个 Prometheus?)。然后我们需要向工程师们讲解这些最佳实践,并培训他们如何配置 Operator 来满足他们的需求。我们预计这将是一个需要进行一些实验的领域,以找出哪些方法有效,哪些方法无效。