假设我有服务以下服务:
- 收到输入通知
- 处理输入通知,这意味着:
- 一些计算
- 存储在DB
- 一些计算
- 生成自己的通知
- 将其自己的通知发送给多个客户
在这种情况下,最好的做法是什么,我应该刻薄地追踪每个操作,例如计算,在DB中存储在DB等,或将其留给指标(即Prometheus(并为整个通知处理创建单个跨度吗?
这在某种程度上取决于适合您的应用程序的粒度,以及您期望生成的跟踪数据的数量。每分钟处理几个请求的申请将有不同的需求,而不是每秒处理1000个请求。
也就是说,我建议当控制流进入或离开应用程序时(例如,当您的应用程序开始处理请求或来自外部系统的消息时,以及您的应用程序呼叫外部依赖关系时,例如HTTP请求时,发送通知或从数据库发送/读取(,并使用日志/标签用于您的应用程序内部的所有内容。