Opentracing - 我应该跟踪内部服务工作还是只跟踪 API 调用?
Opentracing - Should I trace internal service work or just API calls?
假设我有执行以下操作的服务:
- 收到输入通知
- 处理输入通知,这意味着:
- 一些计算
- 存储在数据库中
- 一些计算
- 生成自己的通知
- 向多个客户端发送自己的通知
在这种情况下,最佳做法是什么?我应该使用单独的跨度精细地跟踪每个操作,如计算、存储在数据库中等,还是将其留给指标(即普罗米修斯)并为整个通知处理创建单个跨度?
对于适合您的应用程序的粒度以及您期望生成的跟踪数据量,这在某种程度上取决于您。一个每分钟处理几个请求的应用程序与一个每秒处理 1000 个请求的应用程序有不同的需求。
也就是说,我建议在控制流进入或离开您的应用程序时创建跨度(例如当您的应用程序开始处理来自外部系统的请求或消息时,以及当您的应用程序调用外部依赖项时,例如HTTP 请求、发送通知或来自数据库的 writing/reading),并对应用程序内部的所有内容使用 logs/tags。
假设我有执行以下操作的服务:
- 收到输入通知
- 处理输入通知,这意味着:
- 一些计算
- 存储在数据库中
- 一些计算
- 生成自己的通知
- 向多个客户端发送自己的通知
在这种情况下,最佳做法是什么?我应该使用单独的跨度精细地跟踪每个操作,如计算、存储在数据库中等,还是将其留给指标(即普罗米修斯)并为整个通知处理创建单个跨度?
对于适合您的应用程序的粒度以及您期望生成的跟踪数据量,这在某种程度上取决于您。一个每分钟处理几个请求的应用程序与一个每秒处理 1000 个请求的应用程序有不同的需求。
也就是说,我建议在控制流进入或离开您的应用程序时创建跨度(例如当您的应用程序开始处理来自外部系统的请求或消息时,以及当您的应用程序调用外部依赖项时,例如HTTP 请求、发送通知或来自数据库的 writing/reading),并对应用程序内部的所有内容使用 logs/tags。