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

Add support for OTEL_EXPORTER_JAEGER_TIMEOUT #1863

Merged
merged 16 commits into from
Jun 4, 2021

Conversation

srikanthccv
Copy link
Member

Description

Fixes #1781

@srikanthccv srikanthccv requested review from a team, codeboten and ocelotl and removed request for a team May 20, 2021 19:47
request, timeout=self._timeout
)
return SpanExportResult.SUCCESS
except RpcError as error:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Were we incorrectly not catching this exception before?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, We werent' doing anything earlier so this was being handled in processor.

Copy link
Contributor

@codeboten codeboten left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for implementing, this is a good cleanup as well. One question regarding the change to the Collector constructor.

"""

def __init__(self, thrift_url="", auth=None):
self.thrift_url = thrift_url
def __init__(self, collector_endpoint, auth=None, timeout_in_millis=None):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was this change intentional? Based on the change description, i wouldnt expect the interface to the Collector class to change.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was under the impression that only JaegerExporter shouldn't make changes like this although technically the Collector and AgentClientUDP are not private . I wonder if we should make them private. It's not like Collector is configurable in exporter so I wouldn't expect people use this directly. Thoughts?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If can make Collector private, it would be a breaking change.
If we change def __init__(self, thrift_url="", auth=None): to def __init__(self, collector_endpoint, auth=None, timeout_in_millis=None): it would be a breaking change as well.

What is making this change breaking is changing the first argument from thrift_url="" to collector_endpoint. It can be easily avoided just by not making this change but I understand, having a thrift-named argument is undesirable, but that is precisely the price to pay for backwards compatibility, right? 🤷

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, but thirft_url="" especially the empty string was annoying so I thought of changing it because Collector is not something end user uses directly. I will revert this back.

Copy link
Contributor

@ocelotl ocelotl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leaving a comment regarding the renaming of an argument in __init__.

"""

def __init__(self, thrift_url="", auth=None):
self.thrift_url = thrift_url
def __init__(self, collector_endpoint, auth=None, timeout_in_millis=None):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If can make Collector private, it would be a breaking change.
If we change def __init__(self, thrift_url="", auth=None): to def __init__(self, collector_endpoint, auth=None, timeout_in_millis=None): it would be a breaking change as well.

What is making this change breaking is changing the first argument from thrift_url="" to collector_endpoint. It can be easily avoided just by not making this change but I understand, having a thrift-named argument is undesirable, but that is precisely the price to pay for backwards compatibility, right? 🤷

@srikanthccv srikanthccv added the Approve Public API check This label shows that the public symbols added or changed in a PR are strictly necessary label May 27, 2021
@srikanthccv srikanthccv requested a review from ocelotl May 27, 2021 19:14
Copy link
Contributor

@codeboten codeboten left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@lzchen lzchen merged commit 7f71515 into open-telemetry:main Jun 4, 2021
@srikanthccv srikanthccv deleted the jaeger-env-timeout branch June 4, 2021 18:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Approve Public API check This label shows that the public symbols added or changed in a PR are strictly necessary
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add support for OTEL_EXPORTER_JAEGER_TIMEOUT
5 participants