You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Metrics.cache_reporter stores a map from metric sources to measurement. Now, the issue is that if you have a source that uses tags, and multiple measurements with different tags are used, only the latest one is stored. NB: each source has a uid, and comparison of a source created one way with the same parameters as another source are not identical.
It would be great to instead adapt the cache_reporter to properly cope with this. Eventually instead of a "Map.Make(Src)", there should be something that takes all tags into account (but here I'm lost how to write this down - esp. since 'a Tags.t is pretty tough (and there's no equality/comparison defined for Tags.t)...
The text was updated successfully, but these errors were encountered:
The Metrics.cache_reporter stores a map from metric sources to measurement. Now, the issue is that if you have a source that uses tags, and multiple measurements with different tags are used, only the latest one is stored. NB: each source has a
uid
, and comparison of a source created one way with the same parameters as another source are not identical.A workaround is done e.g. in the mirage-net-solo5 package -- https://github.com/mirage/mirage-net-solo5/blob/v0.8.0/src/netif.ml#L82 -- where each new mirage-net-solo5 instance (value returned by Netif.connect) creates a fresh source.
It would be great to instead adapt the cache_reporter to properly cope with this. Eventually instead of a "Map.Make(Src)", there should be something that takes all tags into account (but here I'm lost how to write this down - esp. since
'a Tags.t
is pretty tough (and there's no equality/comparison defined for Tags.t)...The text was updated successfully, but these errors were encountered: