Search code examples
spring-bootnewrelicspring-micrometerspring-actuator

Integrate Spring Boot Actuator with New Relic


I am trying to integrate New Relic with Spring Boot actuator. Most of the tutorials and response in StackOverflow itself suggest to use New Relic Java Agent but as per Spring Boot documentation installing Java Agent is not mandatory (unless I misunderstood something) also checked this. So, here is my application.properties currently.

management.metrics.export.newrelic.enabled = true
management.metrics.export.newrelic.api-key = <API_KEY>
management.metrics.export.newrelic.account-id = <ACCOUNT_ID>
logging.level.io.micrometer.newrelic=TRACE
management.metrics.export.newrelic.step=30s

and in the log I am seeing

2021-01-11 12:05:18.315 DEBUG 44635 --- [trics-publisher] i.m.n.NewRelicInsightsApiClientProvider  : successfully sent 73 metrics to New Relic.

Based on this logs it looks like it is sending logs. But I have no idea where to see this logs. Ideally I would like to pass app name as well so that I can differentiate metric by app name and preferably by env as well later. Any suggestions?


Solution

  • To add "app name" and "env" to your metrics, you just need to configure the MeterFilter with the common tags:

    @Configuration
    public class MetricsConfig {
    
        @Bean
        public MeterFilter commonTagsMeterFilter(@Value("...") appName, @Value("...") env) {
            return MeterFilter.commonTags(Tag.of("app name", appName), Tag.of("env", env);
        }
    }
    

    Setting the following property you should be able to see what metrics are being sent to NewRelic:

    logging.level.io.micrometer.newrelic=TRACE