Does Elastic APM support Spring Cloud Stream?

Hi!

There is no out of the box support for that.

However, Elastic APM agents expose APIs that provide the ability to follow traces across multiple services programatically. If you have the ability to add a string property to your messages/events on the producer side and read them on the consumer side, this is all you need. Install Elastic APM agents on each of your services and let them instrument your applications. When producing a message to send, use our APIs to get a string representation of the trace context and attach it to the message. When receiving a message, use this trace context string to initiate a transaction related to the same trace.

Since our agents are OpenTracing compatible, you can take advantage of the OpenTracing Inject-Extract API for distributed tracing. Alternatively, if all services you want to instrument are Java, you can rely on the Java agent public API for achieving the same result (see injectTraceHeaders and startTransactionWithRemoteParent APIs specifically).

I hope this helps.
Eyal.