我需要使用石墨测量API端点的响应时间,但我不确定命名空间。
假设我有一个要测量的端点
/results/
/results/?organization_id=100&limit=100
假设我有大量的结果,第一个端点响应时间将比第二个更慢(我需要测量两个端点)。
那么我应该如何在石墨中为此创建命名空间?在命名空间中包含查询参数是常见的(例如project.results.get.organization_id=100&limit=100
和project.results.get.all
)吗?包含查询参数的一个问题是,如果查询参数不断变化(不同的组织,不同的限制,不同的字段等),命名空间将会爆炸。
答案 0 :(得分:1)
我认为最佳度量标准命名方案(命名空间)取决于您希望将这些指标用于什么。
例如,假设在您的情况下,您要检查的是/results/
端点的平均,最小和最大时间,无论查询参数是什么,您都将使用单个度量标准名称,如{{1} }。这有助于监控请求的持续时间并确保它们足够快。
另一方面,如果您认为使用和不使用查询字符串参数查询stats.results.timer
有两个非常不同的时间并且您想要单独考虑它们,您可以为包含的不同类型的参数创建单独的度量标准,例如/results/
,stats.results.organization_id__limit
等。我不会想到在度量标准名称中包含参数值,因为它确实可能会炸毁度量标准命名空间。
我肯定会选择第一个选项,但这又取决于你的具体使用案例。