Skip to content

[Maven-extension] Instrument artifact transfers #1874

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

Open
cyrille-leclerc opened this issue May 3, 2025 · 2 comments
Open

[Maven-extension] Instrument artifact transfers #1874

cyrille-leclerc opened this issue May 3, 2025 · 2 comments
Assignees

Comments

@cyrille-leclerc
Copy link
Member

Component(s)

maven-extension

Is your feature request related to a problem? Please describe.

Instrument artifact transferts to get finer granularity in build execution.

Describe the solution you'd like

Could be implemented implementing the org.eclipse.aether.transfer.TransferListener API.
WARNING this could generate thousands of spans breaking readability of the produced Maven build traces.

TODO verify how the extension can implement an Aether component.

Describe alternatives you've considered

No response

Additional context

No response

@cyrille-leclerc cyrille-leclerc self-assigned this May 3, 2025
@cyrille-leclerc cyrille-leclerc changed the title Instrument artifact transfer [Maven-extension] Instrument artifact transfers May 3, 2025
@smurf667
Copy link
Contributor

smurf667 commented May 4, 2025

Hi @cyrille-leclerc

Thanks for opening this issue following our brief email exchange.

I don't have an immediate solution to the challenge of having too many transfer spans cluttering the results. One possible approach could be to aggregate them, though this risks losing some useful details (such as timing and location). To address flexibility, I would foresee a configuration switch to enable or disable tracing of transfers.

I've put together a (naive) prototype that I'll share with you privately first. It leverages org.eclipse.aether.transfer.TransferListener to track transfers.

Here's a preview of what it could look like in the Jaeger UI:

Example screenshot

@cyrille-leclerc
Copy link
Member Author

Thanks @smurf667!

Would you mind creating a draft PR with your prototype? I would like to test it.

I don't have an immediate solution to the challenge of having too many transfer spans cluttering the results. One possible approach could be to aggregate them, though this risks losing some useful details (such as timing and location). To address flexibility, I would foresee a configuration switch to enable or disable tracing of transfers.

Some ideas that come to my mind:

  • As you said, a configuration param to enable/disable tracing of artifact transfer
  • A duration threshold to create artifact transfer spans
  • Looking at aggregation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants