1

I am pretty new to the world of monitoring.

We have some spring boot apps deployed in production, and we're already using Dynatrace as our monitoring tool. After reading the documentation of dynatrace I learned that out-of-the-box OneAgent can automatically discover my entire Java application stack and monitor it.

I also learned about the micrometer dynatrace registry as a way to export spring boot Actuator metrics to OneAgent ingest API.

What is the difference between using micrometer dynatrace registry to send metrics to OneAgent vs. letting OneAgent scrape metrics from processes running in our host machines?

I am asking this question because I want to know what value the micrometer dynatrace registry can add to the table over OneAgent scrapping Java processes.

Jonas
  • 121,568
  • 97
  • 310
  • 388
Hamza Belmellouki
  • 2,516
  • 1
  • 18
  • 39
  • Spring Boot is using Micrometer to instrument itself and auto-configure instrumentation support for other libraries. I'm not sure what OneAgent does in itself but I assume in order to get all the data that Spring Boot records, Micrometer should send that data to the agent/dynatrace endpoint. E.g.: http requests /uri/http method/status code/etc or instrumenting Kafka/MongoDB/etc. – Jonatan Ivanov Dec 27 '21 at 19:15
  • Yes, I already knew that. What I want to understand is the added value that Micrometer could bring. Now our Java apps are already monitored using only OneAgent(without micrometer). Also, OneAgent already provides lots of useful metrics (http requests /uri/http method/status code/etc). I can think of only one reason to add micrometer to our apps which is to avoid vendor lock-in to support multiple monitoring systems. But are there any other reasons? I want to know so I can convince my team to adopt micrometer. – Hamza Belmellouki Dec 28 '21 at 09:04
  • 1
    1. Theoretically better instrumentation since Spring Boot uses Micrometer "natively" 2. Theoretically faster instrumentation since no need for (aop) proxies/ custom classloaders 3. Theoretically better support since the Micrometer team and the Boot Team are close (Spring Boot 3 will use Micrometer 2) 4. Java agents do not work in AOT compiled apps – Jonatan Ivanov Dec 29 '21 at 22:59

1 Answers1

3

I am one of the Dynatrace DevRels and hope to provide some input into this discussion. The benefit of the OneAgent plus the Micrometer Dynatrace integration is that you get the additional metrics that SpringBoot exposes via Micrometer. While OneAgent by default captures a lot of metrics out of the box I agree with Jonatan that adding the specific instrumentation metrics to the mix will be beneficial for your observability implementation. Dynatrace will analyze those additional metrics in context of our smartscape topology model which will make the Dynatrace root cause analysis even better. Therefore my recommendation is use OneAgent + Micrometer. To add some more context to the points Jonatan brought up. OneAgent is a native and not a java agent which means instrumentation doesnt happen via AOP -> it therefore works for all java byte code. But to repeat what I said earlier -> I agree with him on leveraging the specific Micrometer metrics that Spring Boot is exposing. This will clearly be a benefit for you More information on Dynatrace Micrometer can be found on the Dynatrace Hub: https://www.dynatrace.com/hub/detail/micrometer/ Hope this answer helps

Andreas Grabner
  • 645
  • 3
  • 7