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

(deprecation) Remove jaeger-agent #4739

Open
4 of 11 tasks
yurishkuro opened this issue Sep 9, 2023 · 13 comments
Open
4 of 11 tasks

(deprecation) Remove jaeger-agent #4739

yurishkuro opened this issue Sep 9, 2023 · 13 comments
Labels
help wanted Features that maintainers are willing to accept but do not have cycles to implement

Comments

@yurishkuro
Copy link
Member

yurishkuro commented Sep 9, 2023

jaeger-agent used to be very useful when Jaeger SDKs were in active use with their default UDP-based exporters. Most OTEL SDKs do not support UDP exporter and are phasing out Jaeger exporters altogether. That makes jaeger-agent an unnecessary component since it is only designed to receive data via UDP.

Note that having a host-local agent is still an often desirable deployment model, because it simplifies the SDK configuration (SDK only needs to know localhost:port address). However, OTEL Collector is a more suitable component for a host agent now, especially since it can also serve other functions like logs forwarding, not just trace data proxying.

Migration

See https://www.jaegertracing.io/docs/latest/architecture/ for the recommended deployment configurations.

Proposal

Deprecate jaeger-agent and in 6-months remove it from the code base. This will allow removing a large chunk of code that we won't need to maintain anymore.

Alternatives considered

Accept OTLP

We could deprecate UDP receivers in the agent and instead mount an OTLP receiver. This will allow jaeger-agent to continue to exist close to its current form. But the benefits of doing so are unclear, while the downsides are that we still need to support a chunk of source code and it creates/causes confusion with the users if the agent is required and why.

@yurishkuro
Copy link
Member Author

cc @vprithvi @jaegertracing/jaeger-maintainers @jaegertracing/helm-charts-maintainers

@vprithvi
Copy link
Contributor

Thanks for the heads up! Agree with this direction (also, goodbye 64KB UDP packet size limitation)

@James-Bartman
Copy link

I'm using the jaeger agent pipeline and have tried moving to the OTLP pipeline, but I am running into a host of issues. The opentelemetry-otlp pipeline doesn't support batching with Tokio, has a wierd Config conflict, and more. Are there any examples of how to switch over without running into all of these issues?

@yurishkuro
Copy link
Member Author

@James-Bartman jaeger-agent does not provide any batching, it is a pass-through proxy. If you are using the classic Jaeger SDKs, they typically would batch spans in the app's memory and export a batch to the backend. You can reconfigure them to export to collector and bypass the agent. Unless your specific SDK does not support non-UDP exports - I don't know since Rust was not officially supported by Jaeger team. The OTEL version does support batching, and can talk to collector: https://docs.rs/opentelemetry-jaeger/latest/opentelemetry_jaeger/

@James-Bartman
Copy link

@yurishkuro Thank you! I was able to get implement the opentelemetry_otlp exporter using tonic, and then I passed it into my opentelemetry_otlp pipeline with Tokio batching. There are a lot of conflicting examples on the web, but the docs you linked a bit of elbow grease got it all working.

@mrasap
Copy link

mrasap commented Dec 18, 2023

Thanks for the heads up! Is it already possible to disable the agent when running the jaeger-operator with a jaeger CR using strategy: production?

The docs currently suggest not to use the agent because it is deprecated, but the configuration does not seem to allow this.

I have installed the jaeger-operator through the helm chart (v1.49.0), using image.tag=1.52.0.

@yurishkuro
Copy link
Member Author

@mrasap good question, this should be part of the deprecation plan. I don't know the answer, so asked here: jaegertracing/jaeger-operator#2401

@varshith257
Copy link
Contributor

@yurishkuro It's time to mark the second point in the checklist of ticket. It's been 6+ months

@varshith257
Copy link
Contributor

varshith257 commented May 21, 2024

When I am taking a look at this ticket #4768 of removing deprecated Jaeger SDK to replace OTEL vars, I found this

The checklists of both tickets seems to be solved together

@varshith257
Copy link
Contributor

@yurishkuro PTAL

@chinaran
Copy link
Contributor

chinaran commented Oct 8, 2024

jaegertracing/jaeger-operator#2611
The PR for jaeger agent deprecation was Revert.
May I ask if it should be added back?

@yurishkuro
Copy link
Member Author

@chinaran yes we should remove it from the operator, but the description lists the order in which the steps need to be done.

@chinaran
Copy link
Contributor

chinaran commented Oct 9, 2024

@chinaran yes we should remove it from the operator, but the description lists the order in which the steps need to be done.

I understand, thanks.

yurishkuro added a commit that referenced this issue Oct 15, 2024
## Which problem is this PR solving?
- Part of #4739

## Description of the changes
- Remove jaeger-agent from binary and Docker distributions
- Move agent's port mappings into `cmd/agent/app/ports.go` to clean up
the main ports

## Dependencies
- Need to refactor crossdock to not rely on agent

## How was this change tested?
- CI

## Checklist
- [ ] I have read
https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING_GUIDELINES.md
- [ ] I have signed all commits
- [ ] I have added unit tests for the new functionality
- [ ] I have run lint and test steps successfully
  - for `jaeger`: `make lint test`
  - for `jaeger-ui`: `yarn lint` and `yarn test`

---------

Signed-off-by: Yuri Shkuro <[email protected]>
yurishkuro added a commit to jaegertracing/documentation that referenced this issue Oct 15, 2024
## Which problem is this PR solving?
- Part of jaegertracing/jaeger#4739

## Description of the changes
- Remove references to `jaeger-agent` everywhere except FAQ and Operator
- Operator page needs to be cleaned-up separately, perhaps it needs
changes in the operator to support OTEL Collector as the agent

## How was this change tested?
- CI

---------

Signed-off-by: Yuri Shkuro <[email protected]>
chahatsagarmain pushed a commit to chahatsagarmain/jaeger that referenced this issue Oct 23, 2024
## Which problem is this PR solving?
- Part of jaegertracing#4739

## Description of the changes
- Remove jaeger-agent from binary and Docker distributions
- Move agent's port mappings into `cmd/agent/app/ports.go` to clean up
the main ports

## Dependencies
- Need to refactor crossdock to not rely on agent

## How was this change tested?
- CI

## Checklist
- [ ] I have read
https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING_GUIDELINES.md
- [ ] I have signed all commits
- [ ] I have added unit tests for the new functionality
- [ ] I have run lint and test steps successfully
  - for `jaeger`: `make lint test`
  - for `jaeger-ui`: `yarn lint` and `yarn test`

---------

Signed-off-by: Yuri Shkuro <[email protected]>
yurishkuro added a commit that referenced this issue Oct 27, 2024
## Which problem is this PR solving?
- Part of #4739

Signed-off-by: Yuri Shkuro <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Features that maintainers are willing to accept but do not have cycles to implement
Projects
None yet
Development

No branches or pull requests

6 participants