Prometheus 日志记录的一项统计数据是服务调用的持续时间,但我想测量同一服务的多次调用的时间。
所以我想创建一个字符串到 time.Time 的映射
type SomeService struct {
durations map[string]time.Time
}
第一次输入时,将存储该帐户 ID 的当前时间
durations[GetId()] = time.Now()
然后最后......在另一个调用中......总时间被存储。
startTime := c.durations[id]
duration, _ := c.durationStat.GetMetricWith(prometheus.Labels{"type": duration})
duration.Set(time.Now().Sub(startTime).Seconds())
delete(c.durations, id)
当只有一个副本时这可行,但它在 Kubernetes 集群中崩溃了,对吧?下一个呼叫可能来自另一个端点?如何在微服务中缓存值以便每个副本都可以访问它们?
qq_遁去的一_1
相关分类