Uh oh!
There was an error while loading. Please reload this page.
feat: Add OpenTelemetry integration - #149
Conversation
This requires dropping Python 2 support, right? (#131) The samples PR is more or less ready to be merged (IMO) and we can then make one final Python 2 compatible release, and drop Python 2 support immediately afterwards. |
sethmaxwl
commented
Jul 10, 2020
Yes, OpenTelemetry does not support any Python version before 3.4. |
plamut
left a comment
There was a problem hiding this comment.
Disclaimer - I would have to familiarize myself with the opentelemetry library more, thus I primarily focused on the code aspects, and less on the actual semantics. Added suggestions at places where the code could benefit from them.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
sethmaxwl
commented
Jul 13, 2020
All suggestions have been addressed. |
Uh oh!
There was an error while loading. Please reload this page.
| trace.set_tracer_provider(TracerProvider()) | ||
| trace.get_tracer_provider().add_span_processor( | ||
| SimpleExportSpanProcessor(CloudTraceSpanExporter()) |
There was a problem hiding this comment.
You should be using a BatchSpanProcessor here. SimpleExportSpanProcessor exports all spans sequentially and will be very slow.
| if "googclient_OpenTelemetrySpanContext" in attrs: | ||
| _LOGGER.warning( | ||
| "googclient_OpenTelemetrySpanContext set on message" | ||
| "as an attribute, but will be overridden." |
cguardia
left a comment
There was a problem hiding this comment.
There are still a couple of suggestions from previous reviews, though they are mostly documentation and log warning formatting issues.
| "opentelemetry-api and opentelemetry-instrumentation" | ||
| "pip modules. See also" | ||
| "https://opentelemetry-python.readthedocs.io/en/stable/getting-started.html" | ||
| ) |
There was a problem hiding this comment.
There are no spaces at the end of these lines, which will cause words to be displayed together (e.g. couldnot, rather than could not).
| "A parent span was provided but it could not be" | ||
| "converted into a SpanContext. Ensure that the" | ||
| "parent is a mapping with at least a trace_id, span_id" | ||
| "and is_remote keys." |
There was a problem hiding this comment.
Same issue from above, where spaces are missing at the end of the lines.
| python.py_samples() | ||
| # ---------------------------------------------------------------------------- | ||
| # Additional unit test dependincies |
| "pip modules. See also" | ||
| "https://opentelemetry-python.readthedocs.io/en/stable/getting-started.html" | ||
| ) | ||
| USE_OPENTELEMETRY = False |
There was a problem hiding this comment.
Just a suggestion: In addition to the import try, wouldn't it be possible to use an environment variable for explicitly disabling opentelemetry? That way the tests below would not need to mess with sys.modules.
cguardia
left a comment
There was a problem hiding this comment.
Seems like lint is not passing, plus there are a few failing tests. Please review.
plamut
commented
Aug 31, 2020
Side note - before merging this (after releasing a new major version, of course), we must also run a few benchmarks to verify that the tracing does not hinder the performance, especially throughput. Mentioning as a a reminder to ourselves. |
johnbryan
commented
Aug 31, 2020
Hi all, Seth (author of this PR) finished his Google internship in mid-August so I assume is not actively maintaining this PR now. I would be willing to address the remaining comments here but will not be able to get to it for a couple of weeks. Seth if I'm mistaken and you are indeed still following/working on this let us know, but I assume you have other things to do! |
plamut
commented
Aug 31, 2020
@johnbryan That sounds good, thanks! No rush, though, as we need too release a new major version first anyway. |
plamut
commented
Sep 14, 2020
@johnbryan FYI, a new major version has been released, unblocking this PR (which needs an update now, however). |
anguillanneuf
commented
Oct 12, 2020
@johnbryan Will you have a chance to rebase this PR? |
pamarc
commented
Nov 30, 2020
Hi, any news on this PR? This could be of use :) |
plamut
commented
Mar 9, 2021
@johnbryan What's the status of this PR, do we have an ETA for bringing it to completion? Thanks in advance! |
plamut
commented
Aug 4, 2021
Just as a quick status update, it is still not clear what exactly do want to be tracked, still awaiting the official specs. We can thus consider this PR blocked until further notice. |
CyberHippo
commented
Aug 8, 2022
Hi, is there any update/ETA on this PR? :) |
This PR has been open a while - any updates as to why it's still blocked? |
| data=data, ordering_key=ordering_key, attributes=attrs | ||
| ) | ||
| span_name = "{} publisher".format(topic) | ||
| span_attributes = {"data": data.decode()} |
There was a problem hiding this comment.
What is the argument for doing this? It seems to me that, best case, it results in the duplication of data in the message. But in the worst case it actually leaks sensitive information into observability stack, just like logging the output of a SQL query would.
mukund-ananthu
commented
Sep 29, 2024
Closing this, since its now done. |
Closes#124
Requires. #158.
This PR adds OpenTelemetry tracing to publisher and subscriber clients.
This PR does not interfere with any underlying client functions. OpenTelemetry is an optional dependency that creates a trace that tracks a message from when it is published to when it is received by a subscriber.
Ongoing concerns
PR checklist