import io.micrometer.core.instrument.Tags;
import io.micrometer.jersey2.server.JerseyTags;
import io.micrometer.jersey2.server.JerseyTagsProvider;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.glassfish.jersey.server.ContainerResponse;
import org.glassfish.jersey.server.monitoring.RequestEvent;
import org.springframework.context.annotation.Bean;
* Configuration Class to add customized tags to http metrics scraped in /actuator/prometheus endpoint
*/
@Configuration
+@ConditionalOnProperty(
+ value="scrape.uri.metrics",
+ havingValue = "true")
public class MicrometerConfiguration {
private static final String TAG_AAI_URI = "aai_uri";
private static final String NOT_AVAILABLE = "NOT AVAILABLE";
#To Expose the Prometheus scraping endpoint
management.server.port=8448
#To Enable Actuator Endpoint, you can override this to True in OOM charts
-management.endpoints.enabled-by-default=false
+management.endpoints.enabled-by-default=true
#To Enable Actuator Endpoint, you can override this in OOM Charts
-#management.endpoints.web.exposure.include=info, health, prometheus
+management.endpoints.web.exposure.include=info, health, prometheus
management.metrics.web.server.auto-time-requests=false
management.metrics.tags.group_id=aai
-management.metrics.tags.app_id=${info.build.artifact}
+# management.metrics.tags.app_id=${info.build.artifact}
+#Enable this option only for debug purposes. For more information: https://github.com/micrometer-metrics/micrometer/issues/1584
+scrape.uri.metrics=true
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
/**
* Test REST requests against configuration resource
responseEntity = restTemplate.exchange(actuatorurl + "/actuator/prometheus", HttpMethod.GET, httpEntity, String.class);
responseBody = (String) responseEntity.getBody();
assertEquals(HttpStatus.OK, responseEntity.getStatusCode());
- assertTrue(responseBody.contains("app_id"));
+ System.out.println("responseBody---------" + responseBody);
+ assertFalse(responseBody.contains("aai_uri"));
assertTrue(responseBody.contains("group_id"));
+
//Set Accept as MediaType.APPLICATION_JSON in order to get access of endpoint "/actuator/info" and "/actuator/health"
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
httpEntity = new HttpEntity<String>(headers);
management.server.port=0
management.endpoints.enabled-by-default=true
management.endpoints.web.exposure.include=info, health, prometheus
-management.metrics.web.server.auto-time-requests=false
\ No newline at end of file
+management.metrics.web.server.auto-time-requests=false
+scrape.uri.metrics=true
\ No newline at end of file