Add python telemetry hopper to land telemetry data in Azure Monitor#249
Merged
Conversation
3 tasks
ee91462 to
f866cfc
Compare
aditjha-msft
added a commit
that referenced
this pull request
May 30, 2025
This PR introduces support for using the OTEL Go sdk to instrument the tool using OTEL standards and practices. It provides initialization logic needed for a global tracer to be used across the tool's execution. For starters, the PR adds a customization time span, with more telemetry to be added in follow up PRs that help with data collection tied to the tool's KPIs. The PR also adds logic to disable telemetry, and uses a no-op tracer when `--disable-telemetry` is passed in. This follows OTEL standardized method of disabling telemetry collection in a clean manner. As part of telemetry initialization, the `telemetry.go` file has been added to set up the OTEL tracer and the OTLP grpc exporter. The exporter will send data to a Python service listening at the local port, which will then forward the data to Azure Monitor. In the effort of splitting up PRs in chunks, the PR for the complement Python telemetry service is here: #249. --- ### **Checklist** - [x] Tests added/updated - [x] Documentation updated (if needed) - [x] Code conforms to style guidelines
7b45fd3 to
2a3dc66
Compare
cwize1
requested changes
Jun 2, 2025
romoh
reviewed
Jun 3, 2025
romoh
reviewed
Jun 3, 2025
romoh
reviewed
Jun 3, 2025
cwize1
reviewed
Jun 3, 2025
aditjha-msft
commented
Jun 5, 2025
cwize1
requested changes
Jun 5, 2025
gmileka
reviewed
Jun 9, 2025
gmileka
reviewed
Jun 9, 2025
gmileka
reviewed
Jun 9, 2025
gmileka
reviewed
Jun 9, 2025
cwize1
requested changes
Jun 12, 2025
cwize1
approved these changes
Jun 13, 2025
romoh
approved these changes
Jun 13, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR introduces the Python telemetry hopper which will be used in the container scenario to forward telemetry from image customizer to Azure Monitor. This approach is needed for a variety of reasons, most importantly because Azure Monitor doesn't provide a Go SDK for instrumentation, and other solutions come with security and auth challenges. See design doc here: Image Customizer OTel Integration.docx
This will work alongside PR: #241
if --disable-telemetry is passed in to the docker command, the telemetry hopper will not be started and collection and export will be disabled:
Telemetry collection in the container will only be enabled if explicitly provided the
ENABLE_TELEMETRYenvironment variable. Otherwise telemetry is disabled by default.Checklist