Add HttpOutcome for HTTP observations
Prior to this commit, the HTTP Observations would use `HttpStatus.Series` as a value source for the "outcome" key value in recorded observations. This would work for most cases, but would not align in the 2xx HTTP status cases: the series would provide a "SUCESSFUL" value whereas the heritage metrics support in Spring Boot would give "SUCESS". This commit introduces a dedicated `HttpOutcome` concept for this and applies it to all HTTP observations. Fixes gh-29232
This commit is contained in:
@@ -83,7 +83,7 @@ class DefaultClientObservationConventionTests {
|
||||
context.setUriTemplate("/resource/{id}");
|
||||
assertThat(this.observationConvention.getLowCardinalityKeyValues(context))
|
||||
.contains(KeyValue.of("exception", "none"), KeyValue.of("method", "GET"), KeyValue.of("uri", "/resource/{id}"),
|
||||
KeyValue.of("status", "200"), KeyValue.of("outcome", "SUCCESSFUL"));
|
||||
KeyValue.of("status", "200"), KeyValue.of("outcome", "SUCCESS"));
|
||||
assertThat(this.observationConvention.getHighCardinalityKeyValues(context)).hasSize(2)
|
||||
.contains(KeyValue.of("client.name", "none"), KeyValue.of("uri.expanded", "/resource/42"));
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ public class DefaultClientObservationTests {
|
||||
.retrieve().bodyToMono(Void.class).block(Duration.ofSeconds(10));
|
||||
verifyAndGetRequest();
|
||||
|
||||
assertThatHttpObservation().hasLowCardinalityKeyValue("outcome", "SUCCESSFUL")
|
||||
assertThatHttpObservation().hasLowCardinalityKeyValue("outcome", "SUCCESS")
|
||||
.hasLowCardinalityKeyValue("uri", "/resource/{id}");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user