HeadlinesBriefing HeadlinesBriefing.com

原生支持 OTel 的产品设计:导出至任意可观测平台

Hacker News •
×

与 Dan Gomez Blanco(New Relic)共同撰写。如果你正在构建自托管软件或 SaaS 产品,用户迟早会要求将日志、追踪和指标发送到他们自己的可观测性平台。将用户锁定在内置仪表板中,或将导出功能限制在特定供应商,会造成不必要的障碍。相反,支持导出至任何兼容 Open Telemetry(OTel)的后端,是一种与供应商无关、面向未来的做法,让用户可以自由选择其可观测性平台。

本文概述了如何设计你的产品,使用户在需要时能够将日志、追踪和指标导出到 OTel 后端。Open Telemetry 定义了四种信号类型,并通过标准的 Open Telemetry 协议(OTLP)传输:日志(事件记录、请求/访问日志、带时间戳和元数据的应用日志)、追踪(分布式追踪和跨度,用户可借此查看跨服务的请求流并与日志关联)、指标(计数器、仪表和直方图,例如请求速率、延迟、错误率)以及性能剖析(显示应用在执行期间消耗资源位置的采样数据)。三种信号的导出方式相同:让用户配置一个 OTLP 端点,并将遥测数据推送到该端点。你可以根据产品生成的数据,支持其中一种、两种或全部三种信号。

许多支持 OTel 导出的平台至少支持追踪和日志,而且越来越多的平台也开始支持指标。从一开始就为三种信号做好设计,可以避免日后再进行改造。一套完善的导出方案,对于所支持的每种信号都应具备以下几个明确特性:与供应商无关、无需深度定制开发、保留丰富的上下文信息,以及支持语义约定。

需要考虑两种场景:你的产品运行在哪里?对于自托管软件,请使用 Open Telemetry 对产品进行插桩,并允许客户通过环境变量或配置文件设置端点。对于云平台,则应添加用于管理导出的平台功能。例如 Keycloak 和 Kuma。

来源: Hacker News · 由HeadlinesBriefing整理摘要