我正在使用 statsd(确切地说是 django-statsd 库)来跟踪我的应用程序的计时指标。当我需要在堆栈的多个级别上测试某些东西时,就会出现问题。一个典型的例子:创建一个对象,从该对象调用一个 post_save 方法,然后从那里触发一个 celery 任务,随后触发另一个 celery 任务调用 twilio 向用户发送文本消息,最终命中在我的服务器上设置一个端点,让我知道文本已成功发送。
我很想跟踪这个的总时间,而不必求助于手动拼凑每个函数的时间(无论如何,这会丢失调用之间的延迟时间)。我还想避免将“开始时间”写入数据库以在调用堆栈行程结束时引用,因为开始时间的数据库查找时间也会扭曲我的指标。但是,对某种缓存的调用可能具有足够低的延迟,可以忽略不计。但这需要比我在这个原型阶段所希望的更多的基础设施。
关于此最佳方法的任何想法?