Skip to content

Add support for OTEL_EXPORTER_JAEGER_TIMEOUT#1863

Merged
lzchen merged 16 commits intoopen-telemetry:mainfrom
srikanthccv:jaeger-env-timeout
Jun 4, 2021
Merged

Add support for OTEL_EXPORTER_JAEGER_TIMEOUT#1863
lzchen merged 16 commits intoopen-telemetry:mainfrom
srikanthccv:jaeger-env-timeout

Conversation

@srikanthccv
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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