cryostat-legacy icon indicating copy to clipboard operation
cryostat-legacy copied to clipboard

[Epic] Explore non-JMX connection options

Open andrewazores opened this issue 3 years ago • 3 comments

This is a high-level issue representing the desire to find non-JMX connection options. The frontrunner idea here is a Cryostat agent attached to the target JVMs, which may use a pull-based HTTP API or more likely some HTTP push protocol. This would be a complement to JMX for users/deployments where JMX is undesirable and attaching a JVM agent is feasible.

andrewazores avatar Jun 17 '21 15:06 andrewazores

We might be able to use the NewRelic JVM agent on the target application side and have Cryostat implement the protocol to receive data pushed by it:

https://github.com/newrelic/newrelic-jfr-core

This can take repeated, short, overlapping recordings from the target JVM, deduplicate them, stitch the results together, re-encode it, and push it to Cryostat. We could then receive these pushed chunks and, using either the address of the pushing client or some other metadata, store the chunks into our archives. These agents could be represented by a specialized kind of ServiceRef and "connecting" to such a ServiceRef could always produce a no-op empty list of active recordings, available templates, etc., only exposing the corresponding archived recordings.

andrewazores avatar Oct 18 '21 15:10 andrewazores

Pushing to 2.2.0.

andrewazores avatar May 13 '22 13:05 andrewazores

See https://github.com/cryostatio/cryostat-agent. This isn't complete yet but underway.

andrewazores avatar Sep 16 '22 20:09 andrewazores