为 Otterize 网络映射器添加 OpenTelemetry 支持

博客文章在发布后不会更新。这篇文章已经发布一年多了,其内容可能已过时,部分链接可能无效。在依赖任何信息之前,请务必核实。

OTel 集成!

一个显而易见的集成:为 Otterize 网络映射器添加 OpenTelemetry 支持

Otterize 为零信任环境自动化工作负载身份和访问管理 (IAM),通过一系列开源项目自动化 Kubernetes 网络策略、Istio 策略、AWS IAM 策略等。为了实现这种自动化,Otterize 构建了网络映射器。Otterize 网络映射器是一个独立的 Kubernetes 工具,可以构建您基础设施的实时网络图,并将其可视化为图像文件,在 Otterize Cloud 上作为交互式图表,或导出为 ClientIntents(一种描述每个工作负载所需访问权限或其“意图”的自定义 Kubernetes 资源)。它被设计为零配置部署,可立即提供网络图,同时资源占用少,且需要最低的权限。其核心是收集 DNS 流量并进行分析,以找出通信模式。

很棒的 ServiceNow Cloud Observability(原 Lightstep)团队 最近为网络映射器贡献了 OpenTelemetry 导出支持。这意味着您现在可以使用网络映射器生成基础设施的网络图,并将 OpenTelemetry 数据导出到 Grafana Tempo 实例,无需对集群中已部署的服务进行任何更改即可查看服务图。

A screenshot showing a Grafana Tempo service graph

这次集成很简单:OpenTelemetry SDK 易于使用,完美契合了现有的网络映射器代码。

OpenTelemetry 如何与网络映射器协同工作?

通过服务图,您将能够看到哪些服务正在相互通信。然后,您可以将这些信息用于运营或安全需求,例如确定停机或安全事件的影响范围。您可以使用服务图来确定开始推广 OpenTelemetry 跟踪的位置,因为该部署通常更复杂,并且需要将 OpenTelemetry SDK 集成到您的源代码中。

虽然对网络映射器来说使用 OTel SDK 很简单,但当我们审视 OpenTelemetry 时,可以理解其中的“鸡生蛋还是蛋生鸡”问题:要开始看到跟踪的显著价值,您确实需要看到许多服务在一起,而这可能作为第一步需要做很多工作。

由于网络映射器不需要您更改任何现有应用程序代码,因此大大降低了入门 OpenTelemetry 的门槛。这是开始为基础设施中的每个服务发出 OpenTelemetry 指标并了解服务如何相互交互的一个好方法,然后再承诺进行更重大的 OpenTelemetry 推广。

开源的力量在行动!

我们最初从未考虑过添加此功能,因为它并没有进入我们的视野,但其价值是不可否认的,特别是对于那些部署网络映射器并使用 Grafana Tempo 的人,或者正在探索 OpenTelemetry 的个人。

很高兴 ServiceNow Cloud Observability 团队发现了网络映射器并慷慨地贡献了此增强功能,使得网络映射器能够与 OpenTelemetry 和 Grafana 无缝集成。这就是开源协作之美!

如果您有兴趣探索或贡献我们的项目,请前往 https://github.com/otterize/network-mapper