知识卡片
拉取式与推送式遥测采集的取舍
内容
指标和追踪数据从应用送到采集后端,有拉取和推送两种模式:Prometheus 用拉取模式,自己按固定周期主动去应用暴露的端点上抓数据,应用完全不用关心数据发去哪、发给谁;Tempo 用推送模式,应用主动把生成的追踪数据推送过去。拉取模式天然要求应用得存活足够长时间、能等到下一次抓取窗口——对一个跑几秒钟就退出的批处理任务或 Serverless 函数来说,可能它整个生命周期都结束了,Prometheus 还没来得及抓下一轮,这类场景就得反过来让应用主动推送数据,不能指望被动等抓取。发散:这个选择本质是”谁主导采集节奏”的问题——拉取模式把主导权交给采集端,好处是采集端能统一控制频率、方便水平扩展;推送模式把主导权交给应用自己,适合应用生命周期短、等不到被动抓取窗口的场景,两种模式不是谁更先进,而是要匹配被采集对象的生命周期特征。
参考来源
《Cloud Native Spring in Action》第13章《Observability and monitoring》