Doubts: APM and its inner guts


I have few questions about how APM flushes data to remote APM server and data format itself.

I have a .net Core app, which is instrumented with APM Public API, APM is configured to send directly send data to APM server.

  1. Will the application code wait while APM agent sends data to remote APM server ?
  2. What happens if Application closes early while APM agent is yet to flush data to APM server? is the data lost ?
  3. I read that APM agent cant send data to APM Server via Logstash. is this still true ?
  4. Given that APM agent data eventually ends up in Elasticsearch, is there any documentation on how APM (metrics) data is structured & organized ? So that i can write my own APM agent and log to ES directly (skipping APM agent, APM Server), and still leverage the Alerts & Dashboards that come with APM portal.

The reason for all my questions are
I already have logstash in my environment, and dont want to use APM agent because APM agent can't talk to logstash.

1 Like

Hi @inbox.ex

  1. No, everything happens async in the background.
  2. Yes, the agent won't hold up the application.
  3. I'm not sure, I don't think it'd be easy to have such a setup. You can configure the server url of the agent and there would be a way to replace the component in the .NET APM Agent which sends data to APM Server (and instead of sending to APM Server do something different), but that'd be a bit of a work. I wrote about it here: Is it possible to log apm messages to the console? - #2 by GregKalapos - you'd need to do something similar.
  4. This part of the docs talks about the APM Server data model: Data Model | APM User Guide [8.0] | Elastic - another thing you can do is to have a demo APM setup and just look at the apm-* indices.
1 Like

Thanks for clarification. that helps a lot.

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.