-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
why jaegerthrifthttpexporter got removed? #4667
Comments
See #4083, cc @jpkrohling |
#4083 said "Jaeger Agents do not offer the ability to send data to the Jaeger Collector using HTTP Thrift for more than a year now" |
{"level":"info","ts":1629211743.3203762,"caller":"server/grpc.go:76","msg":"Starting jaeger-collector gRPC server","grpc.host-port":":14250"} |
Could you please define "crashing"? We should fix that instead of reinstating an exporter that isn't going the default option in Jaeger itself.
The point was that the gRPC transport between the agent and the collector has been the default for a long time and is tried/tested. |
the jaeger collector start two servers, one is of gRPC/http server, one is of thrift/http server. |
I agree with that, but having two exporters means twice the number of exporters to support.
I'm really more interested in fixing whatever might be broken instead. Can you please share the steps I have to take to reproduce the issues you are having? |
2021-08-19T14:25:24.56-0400 [APP/PROC/WEB/0] ERR io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED: deadline exceeded after 9.999074503s. [remote_addr=proxy-aus.xxx.com/10.170.20.117:80] |
this got this error running simple test request, |
with and without batch process config got this error now. |
2021-08-19T14:35:12.31-0400 [APP/PROC/WEB/1] ERR [otel.javaagent 2021-08-19 18:35:12:311 +0000] [grpc-default-executor-5] WARN io.opentelemetry.exporter.jaeger.JaegerGrpcSpanExporter - Failed to export spans |
your comment: I agree with that, but having two exporters means twice the number of exporters to support. |
the above error is from javaagent gRPC jaeger exporter. |
this is the error from otel collector gRPC exporter: sometimes this error is intermittent in the test, looks it is making lots re-connects. |
Our apps using otel jaeger thrift exporter, passed performance test going to get deployed to prod in days, so hope new version of otel collector still have it there. we are using otel collector version 29 |
Run Jmeter test, run for a while, the connect: connection refused error will occur. Sometime down the jaeger collector, sometime, stopped the test, the jaeger collector was still working. |
And of node js openTelemetry's jaeger export, it only support thrift protocol, with using otel collector jaeger thrift exporter, no protocol changing in the collector, it will be more efficient. |
Got error from javaagent gRPC exporter and otel collector gRPC exporter, looks the issue is that the jaeger gRPC server is not mature. |
There's quite a lot to process here, but the TL;DR is: please, provide step-by-step instructions on what you are doing, with source code and commands, that reproduces the performance issue. Without that, I can't help you much.
We are not reinstating the Jaeger Thrift exporter unless we have a good reason. So far, this ticket isn't providing a good reason.
Are you saying that the Jaeger Collector is down? Did it crash? Was it killed? How are you running the Jaeger Collector, and with which database? If you are using the in-memory storage, as you setting the
This has nothing to do with the Jaeger Thrift exporter in the collector. The collector still has a Jaeger Thrift receiver, so that it can receive data from a Jaeger Agent or OpenTelemetry NodeJS Jaeger exporter.
I'm repeating myself, but please provide a runnable test case demonstrating that. At this point, I'm assuming your Jaeger Collector is misconfigured for your use case. |
The Jaeger collector is owned by another team, my team just used their jaeger collectors, the gPRC exporter not working issue, blocked the development for some weeks, they said their Jaeger collector are good, and had been there running with no issue for a round a year, but all their clients are not using otel collector. |
That's fair. In any case, there's still very little that I can use in this ticket. I can try to use My request to you once again: please provide a runnable test case demonstrating the problem. |
My Jmeter test also made the jaeger gui dashboard down, I'm not allowed to run Jmeter test to bring down their collector again. Before, my Jmeter test made their jaeger collector not working, I was not allowed to use their collector for sometime, they said they were going to set up new jaeger collector for me, but they had not get it done for months. |
receivers: this is my config file, with in the place of thrift exporter are gRPC exporters, Jmeter test had connection refused error, tries may parameters that had no effect on git away the issue |
There are lots real world cases, can be managed and can not be managed. |
Please provide a runnable test case demonstrating the problem. |
the jeager collector automatically start a http thrift server and a gRPC server. |
exporters: |
I found this issue while digging into options for the Jaeger exporter. In my case, I need to ship traces from the OpenTelemetry collector to a Jaeger collector, not an agent. Due to limitations of the platform on which we're running our collectors, the Jaeger collector cannot receive HTTP/2 connections, which means it cannot receive gRPC connections, so the removal of the Jaeger Thrift exporter has removed my ability to use the OpenTelemetry collector. Does the OpenTelemetry collector provide a path for us to create our own Jaeger Thrift exporter and pull it in at runtime? |
HTTP/2 is compatible with HTTP 1.1. Can you provide more details about your scenario? What kind of limitations are you encountering? |
Our Jaeger collectors are running in Cloud Foundry, which does not support HTTP/2 or gRPC. While there is work in progress to add that support, there will likely be a fairly long delay between when a Cloud Foundry version exists that can serve gRPC traffic and when our platforms are upgraded to that version. |
@ctreatma, that's unfortunate. I'm convinced that we need to reinstate that exporter, with a big warning that it should only be used in corner cases like yours. Would you be open to creating a PR with the code we had? |
Sounds good. I'll open a PR to restore the exporter & add guidelines for the rare cases when it can be used. |
In some cases, a Jaeger collector may be deployed to a platform that does not support gRPC. This restores the jaegerthrifthttpexporter so that OpenTelemetry users who need to ship traces to a Jaeger collector that cannot support gRPC are able to ship traces using the Jaeger collector's [Thrift over HTTP API](https://www.jaegertracing.io/docs/1.27/apis/#thrift-over-http-stable).
In some cases, a Jaeger collector may be deployed to a platform that does not support gRPC. This restores the jaegerthrifthttpexporter so that OpenTelemetry users who need to ship traces to a Jaeger collector that cannot support gRPC are able to ship traces using the Jaeger collector's [Thrift over HTTP API](https://www.jaegertracing.io/docs/1.27/apis/#thrift-over-http-stable).
Signed-off-by: Bogdan Drutu <[email protected]>
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
I used version 29 with jaegerthrifthttpexporter, it is working well, I used jaeger gRPC exporter, it is crashing the jaeger collector at big test request volume.
Describe the solution you'd like
A clear and concise description of what you want to happen.
I tried to upgrade to version 31, got unknown exporters type "jaeger_thrift" for jaeger_thrift
looks into the code found jaegerthrifthttpexporter is not there
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
The text was updated successfully, but these errors were encountered: