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
Feign-Micrometer supplies observation integration through a Capability, creating an observation with the name http.client.requests, low-cardinality KeyNames are:
http.status_code
http.method
http.url
...
Spring supplies observation integration for other "HTTP clients", like their own RestTemplate and WebClient, with the identical observation name but different KeyNames:
status
method
uri
...
This causes problems in at least the Prometheus instrumentation of Micrometer as the list of KeyNames must be consistent across all regarding meters with the same name.
If they are not, the first one called wins (only it's KeyNames are valid from that point on) and any other observation (that has KeyNames not matching this first set) is being ignored. So when one starts up an application that one time first uses a RestTemplate and on a subsequent start an OpenFeign client, that makes a difference.
Very unsure how this could be solved properly.
Changing the KeyNames in feign-micrometer would be a breaking change for anyone relying on the current names and would require maintenance, aligning with further changes on Sping's side
Changing the (default) name of the observation would also be a breaking change, as a workaround already possible now as Spring Boot allows overriding the bean definition
Fix it in Spring Boot, changing the behavior of Micrometer-Feign completely, possibly rewriting everything there.
The text was updated successfully, but these errors were encountered:
Feign-Micrometer supplies observation integration through a Capability, creating an observation with the name
http.client.requests
, low-cardinality KeyNames are:Spring supplies observation integration for other "HTTP clients", like their own RestTemplate and WebClient, with the identical observation name but different KeyNames:
This causes problems in at least the Prometheus instrumentation of Micrometer as the list of KeyNames must be consistent across all regarding meters with the same name.
If they are not, the first one called wins (only it's KeyNames are valid from that point on) and any other observation (that has KeyNames not matching this first set) is being ignored. So when one starts up an application that one time first uses a RestTemplate and on a subsequent start an OpenFeign client, that makes a difference.
Very unsure how this could be solved properly.
The text was updated successfully, but these errors were encountered: