Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ideas for improvement #61

Open
amitjoy opened this issue Feb 2, 2024 · 2 comments
Open

Ideas for improvement #61

amitjoy opened this issue Feb 2, 2024 · 2 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@amitjoy
Copy link

amitjoy commented Feb 2, 2024

I am presently exploring the utilization of JoularJX as an energy profiling tool for Java-based applications. Having meticulously delved into the project's source code after forking it, I have identified several crucial aspects that warrant discussion before implementing any modifications.

  • An imperative consideration revolves around establishing a mechanism for consumers to construct their extensions seamlessly integrating with the agent. Consequently, it becomes imperative to introduce Service Provider Interface (SPI) as a distinct entity. This will empower users to fashion extensions that seamlessly plug into the agent, such as developing an extension for data transmission to Prometheus or Grafana.
  • A corollary to the introduction of SPI is the necessitated modification of the existing code layout. This entails the creation of discrete Maven modules, each dedicated to distinct functionalities like SPI and the core, ensuring a modular and organized codebase.
  • Unifying the code formatting process is paramount to maintain a consistent and cohesive codebase. To this end, it is imperative that all contributors adhere to a shared code formatter, fostering a standardized approach to coding practices.
  • Observing the presence of numerous warnings within the workspace, it is prudent to address and eliminate these warnings, thereby enhancing the overall code quality and maintainability.
  • Proposing a noteworthy extension, the integration of OpenTelemetry/Micrometer or the introduction of an extension to facilitate data transmission to Grafana would undoubtedly augment the project's capabilities and relevance in a broader context.
  • A notable observation is the absence of the agent in Maven Central for wider accessibility. To rectify this, I suggest deploying both the agent and any prospective SPI extensions to Maven Central, ensuring seamless consumption by a broader audience.

I eagerly await your thoughts and feedback on these proposed ideas, as they aim to elevate the functionality, modularity, and accessibility of JoularJX.

@adelnoureddine
Copy link
Member

Dear @amitjoy, these are all great suggestions.

My goal here is to keep the Agent as light as possible, hence the modularity and opening to SPIs would be a good addition.
For telemetry (assuming it's just for easing energy statistics transmissions to Grafana and co.), I'm more open to an extension (through SPI for instance).
Good suggestion for Maven central inclusion, thanks!

As much as I would like to contribute, we do not have sufficient ressources to advance quickly on these modifications.
I'll be willing to review and discuss any PR or proposition you (or anyone in the community) is willing to provide. I could propose student projects or try to find funding for internship in our research group but they won't come until a few months.

Bests.

@adelnoureddine adelnoureddine self-assigned this Feb 7, 2024
@adelnoureddine adelnoureddine added the enhancement New feature or request label Feb 7, 2024
@amitjoy
Copy link
Author

amitjoy commented Feb 14, 2024

@adelnoureddine Thanks a lot for your valuable feedback. I would try to work in my own fork and push the changes separately as soon as they are finished.

@adelnoureddine adelnoureddine added this to the Version 3.0 milestone Feb 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants