eclipse-jkube / jkube

Build and Deploy java applications on Kubernetes
https://www.eclipse.dev/jkube/
Eclipse Public License 2.0
775 stars 522 forks source link

Support OpenTelemetry agents #3457

Open ecausarano opened 1 month ago

ecausarano commented 1 month ago

Component

JKube Kit

Is your enhancement related to a problem? Please describe

Jkube containers don't support OpenTelemetry.

Describe the solution you'd like

Add an OpenTeletry module in https://github.com/eclipse-jkube/jkube-images/ to add the agent as described in https://opentelemetry.io/docs/zero-code/java/agent/

Describe alternatives you've considered

No response

Additional context

No response

manusa commented 1 month ago

Hi @ecausarano, are you working on this? shall I assign it to you?

ecausarano commented 1 month ago

I could -- it doesn't look too difficutl -- but someone should explain me the layout of the modules (what's the difference between the jboss.container... and the org.eclipse... and which ones matter)

manusa commented 1 month ago

Quoting from an internal email I sent (maybe you didn't get it or went to spam)

I noticed modules are duplicated between org.eclipse.jkube.prometheus and jboss.container.prometheus. Can you provide some context about this, and how should I proceed to integrate the module in the container?

This requires a little bit of context.

Originally, the jkube-images project relied completely on the modules provided by jboss. This is because even before that, jboss reused some images and scripts that were maintained in the github.com/fabric8io/github.com/fabric8io-images organizations. The jboss modules are kept in the https://github.com/jboss-openshift/cct_module repository. However, this project is no longer actively maintained. For the prometheus module, we needed to add a newer version of the agent, so we created a pseudo jkube-0.20.0 version to be able to still use the rest of modules from jboss. However, since that happened a few more modules needed updating and it became clearer that the jboss-openshift/cct_module project was officially abandoned in favor of other alternatives. A few months ago we decided to maintain the modules ourselves, hence the new org.eclipse.jkube.xxx modules. The previous ones are kept there because our legacy images depend on them.

TL;DR If you need to copy-paste-adapt a module, please use org.eclipse.jkube.prometheus or org.eclipse.jkube.jolokia which are probably a good scaffold of what you need.