uriVariables をうまく使用していないため、クラスMaximumUriTagsReachedMeterFilter
内で構成されていると警告がログに記録され、収集が停止します。RestTemplateMetricsAutoConfiguration
問題は、uri 変数とクエリ パラメータの両方を使用して URI を作成し、それを に渡す必要があることorg.springframework.web.client.RestTemplate.exchange
です。例えば:
String url = "http://foo.example/api/resources/{id}";
// omitting uriVariables and queryParams maps
URI uri = UriComponentsBuilder.fromUriString(url)
.buildAndExpand(uriVariables)
.toUri();
uri = UriComponentsBuilder
.fromUri(uri)
.queryParams(queryParams)
.build()
.toUri();
restTemplate.exchange(
uri,
HttpMethod.GET,
requestEntity,
new ParameterizedTypeReference<Entity>(){}
);
restTemplate.exchange()
パラメータ化された文字列 URI に uri 変数とクエリ パラメータを一緒に渡す方法が本当にわかりません。これにより、インストルメンテーション コードは uri 変数展開の前にフックするため、メトリクス uri タグを 1 回だけ取得できます。
さらに、カスタム HealthIndicator の RestTemplate メトリックを活用しています。私は本当にこの問題を解決する必要があります。