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集群中崩溃时它起作用吗?下一个呼叫可能会在另一个端点上传入?您如何在微服务中缓存值,以便每个副本都可以访问它们?