Skip to content

chore(deps): update rust crate init-tracing-opentelemetry to 0.34.0#255

Open
renovate[bot] wants to merge 2 commits intomainfrom
renovate/opentelemetry-packages
Open

chore(deps): update rust crate init-tracing-opentelemetry to 0.34.0#255
renovate[bot] wants to merge 2 commits intomainfrom
renovate/opentelemetry-packages

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Apr 4, 2025

This PR contains the following updates:

Package Type Update Change
init-tracing-opentelemetry (source) workspace.dependencies minor 0.32.1 -> 0.34.0

Release Notes

davidB/tracing-opentelemetry-instrumentation-sdk (init-tracing-opentelemetry)

v0.34.0

Compare Source

v0.33.0

Compare Source


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added dependencies Pull requests that update a dependency file renovate rust labels Apr 4, 2025
@renovate renovate bot force-pushed the renovate/opentelemetry-packages branch from b13bc96 to e02e4fe Compare April 28, 2025 20:25
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Apr 28, 2025

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Join our Discord community for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@renovate renovate bot force-pushed the renovate/opentelemetry-packages branch 2 times, most recently from d2a14d9 to 664de7e Compare May 6, 2025 21:32
@renovate renovate bot force-pushed the renovate/opentelemetry-packages branch 2 times, most recently from d6ef99e to d5d7f27 Compare May 23, 2025 20:05
@renovate renovate bot force-pushed the renovate/opentelemetry-packages branch 2 times, most recently from 00d7d11 to a5e5c58 Compare June 4, 2025 01:03
@renovate renovate bot force-pushed the renovate/opentelemetry-packages branch 2 times, most recently from 973180b to 9978b57 Compare July 10, 2025 07:07
@renovate renovate bot force-pushed the renovate/opentelemetry-packages branch from 9978b57 to f7d7afd Compare July 18, 2025 10:51
@renovate renovate bot force-pushed the renovate/opentelemetry-packages branch 2 times, most recently from 3d4346b to dfead51 Compare August 10, 2025 14:47
@renovate renovate bot force-pushed the renovate/opentelemetry-packages branch from dfead51 to 520ff2b Compare August 25, 2025 17:36
@renovate renovate bot force-pushed the renovate/opentelemetry-packages branch 5 times, most recently from 318022a to e207c5a Compare October 1, 2025 20:49
@renovate renovate bot force-pushed the renovate/opentelemetry-packages branch 2 times, most recently from 4d41997 to 3c518fc Compare October 14, 2025 22:00
@renovate renovate bot force-pushed the renovate/opentelemetry-packages branch 2 times, most recently from 0fadcc1 to 25fba2e Compare October 30, 2025 06:46
@claude
Copy link

claude bot commented Oct 30, 2025

Pull Request Review: OpenTelemetry Dependencies Update

Summary

This PR updates OpenTelemetry and tracing-related dependencies from version 0.26-0.28 to 0.31-0.32. This is a Renovate bot automated dependency update that includes several breaking changes across multiple packages.


Code Quality & Best Practices ✅

Positive aspects:

  • Clean dependency update with no code changes required
  • All updates are aligned across the OpenTelemetry ecosystem
  • Follows semantic versioning conventions
  • The existing code in init_telemetry.rs and http.rs appears compatible with the new versions

Breaking Changes Analysis ⚠️

The following breaking changes are included in these updates:

1. OpenTelemetry Core (0.28.0 → 0.31.0)

  • set_tracer_provider now returns Unit instead of a result (affects init_telemetry.rs:38)
  • ExportError, TraceError, and TraceResult moved from opentelemetry::trace to opentelemetry_sdk
    • Impact: Your code imports TraceError at line 3 of init_telemetry.rs - this should be updated
  • Context-based telemetry suppression added (good for preventing recursive telemetry)
  • Baggage API changes (doesn't appear to affect this codebase)

2. OpenTelemetry SDK (0.28 → 0.31)

  • SpanExporter::export() signature changed from requiring &mut self to &self
  • Views improvements with new builder pattern for Stream
  • Cardinality capping re-enabled by default (2000 limit)

3. tracing-opentelemetry (0.29 → 0.32)

  • Breaking: Attribute names changed for semantic conventions:
    • code.filepathcode.file.path
    • code.linenocode.line.number
    • code.namespacecode.module.name
  • Breaking: otel.status_messageotel.status_description
  • OpenTelemetry context activation behavior changed
  • metrics_gauge_unstable feature removed

4. OpenTelemetry OTLP (0.28.0 → 0.31.0)

  • Timeout configuration changed from seconds to milliseconds (ENV vars affected)
  • HTTP compression support added (gzip-http and zstd-http feature flags)
  • Retry with exponential backoff added
  • Export configuration via code is now final (ENV cannot override)

Potential Issues 🔍

Critical - Import Path Issue

File: scotty/src/init_telemetry.rs:3

use opentelemetry::trace::{TraceError, TracerProvider};

Issue: TraceError has been moved to opentelemetry_sdk::trace::TraceError in version 0.29+. This import path is now incorrect and will cause a compilation error.

Required Fix:

use opentelemetry::trace::TracerProvider;
use opentelemetry_sdk::trace::TraceError;

Medium - Return Type Change

File: scotty/src/init_telemetry.rs:38

global::set_tracer_provider(tracerprovider);

Issue: In OpenTelemetry 0.31.0, set_tracer_provider now returns () instead of a Result. While this shouldn't break compilation, it's worth noting that error handling for this operation is no longer possible.

Status: ✅ No changes needed, but be aware of the behavior change.


Security Concerns 🔒

Positive security improvements:

  1. Context-based telemetry suppression: Prevents recursive telemetry and potential DoS scenarios
  2. Retry with exponential backoff: Better resilience against transient failures
  3. HTTP compression support: Reduces bandwidth usage
  4. Updated dependencies: Includes bug fixes and security patches from upstream

No security vulnerabilities identified in this update.


Performance Considerations ⚡

Improvements:

  1. Cardinality capping: Default limit of 2000 prevents unbounded metric growth
  2. True parallel exports: Bug fix in BatchSpanProcessor honors OTEL_BSP_MAX_CONCURRENT_EXPORTS properly
  3. Improved span processor: No longer calls on_start for non-recording spans
  4. Retry mechanism: Better handling of temporary export failures

Potential concerns:

  • Cardinality limit of 2000 might need tuning based on your metrics volume
  • HTTP compression (if enabled) adds CPU overhead but reduces network usage

Test Coverage 🧪

Recommendations:

  1. ✅ Verify tracing functionality still works as expected
  2. ✅ Test OTLP export to your telemetry backend
  3. ✅ Ensure timeout configurations are still appropriate (note: now in milliseconds)
  4. ✅ Verify semantic attribute changes don't break downstream processing
  5. ✅ Test graceful shutdown behavior with the updated SDK

Missing:

  • No tests visible in this PR (expected for dependency update)
  • Consider adding integration tests for OpenTelemetry initialization

Action Items 🔧

Required before merge:

  1. Fix import path in init_telemetry.rs:3 - move TraceError to opentelemetry_sdk
  2. Run tests to verify compilation and functionality
  3. Update timeout configurations if using OTEL_EXPORTER_OTLP_*_TIMEOUT ENV vars (seconds → milliseconds)

Recommended:

  1. Review cardinality limit settings for your metrics use case
  2. Consider enabling HTTP compression features if network bandwidth is a concern
  3. Update any documentation referencing the old semantic attribute names

Overall Assessment

Verdict: ⚠️ Approve with changes required

This is a valuable update that brings bug fixes, performance improvements, and better standards compliance. However, there is one critical compilation error that must be fixed before merging.

Risk Level: Medium - Breaking changes require code modifications and testing

Recommendation:

  1. Fix the import path issue
  2. Run full test suite
  3. Deploy to staging environment for validation
  4. Merge after successful verification

References

Review conducted using conventional commit practices and Rust best practices.

@renovate renovate bot force-pushed the renovate/opentelemetry-packages branch from 25fba2e to 98cc2af Compare November 3, 2025 14:48
@claude
Copy link

claude bot commented Nov 3, 2025

PR Review: OpenTelemetry Dependencies Update (0.28 → 0.31)

Overview

This PR updates multiple OpenTelemetry-related dependencies from version 0.28.x to 0.31.x. This is an automated Renovate PR that brings several minor version updates with important breaking changes and improvements.


✅ Code Quality & Best Practices

Strengths:

  • Clean dependency update with proper version alignment across all OpenTelemetry packages
  • Removes unused dependencies (async-stream, async-stream-impl, glob, and duplicate axum/tower versions)
  • Reduces dependency tree complexity by removing 22 lines of unused packages
  • All OpenTelemetry packages are updated consistently to maintain compatibility

Observations:

  • The changes are well-scoped to Cargo.toml and Cargo.lock only
  • No code changes are required, which suggests the API surface used by this project remains stable

⚠️ Breaking Changes & Compatibility

Critical Breaking Changes from Upstream:

  1. TraceError and TraceResult relocation (0.29.0):

    • ACTION REQUIRED: Your code imports opentelemetry::trace::TraceError at /home/runner/work/scotty/scotty/scotty/src/init_telemetry.rs:3
    • These have been moved to opentelemetry_sdk::trace::{TraceError, TraceResult}
    • This will cause compilation failures and must be fixed
  2. Baggage API changes (0.29.0):

    • If you use baggage context, the API has changed significantly
    • Based on code review, this doesn't appear to affect your codebase
  3. Telemetry suppression (0.30.0):

    • New context-based telemetry suppression to prevent feedback loops
    • This is a positive addition that will automatically benefit your application
  4. SpanExporter trait changes (0.29.0):

    • Changed from &mut self to &self in export methods
    • Only affects custom exporters (not applicable to this project)
  5. OTEL_EXPORTER_OTLP_TIMEOUT units changed (0.29.0):

    • Changed from seconds to milliseconds
    • Verify your environment variables if you set these explicitly

🐛 Potential Issues

  1. Compilation Error - High Priority

    // File: scotty/src/init_telemetry.rs:3
    // Current (BROKEN):
    use opentelemetry::trace::{TraceError, TracerProvider};
    
    // Should be:
    use opentelemetry::trace::TracerProvider;
    use opentelemetry_sdk::trace::TraceError;
  2. Missing Return Type Update

    • The return type at line 10 also needs updating:
    // Current (BROKEN):
    pub fn build_otel_layer<S>() -> Result<OpenTelemetryLayer<S, Tracer>, TraceError>
    
    // Should be:
    use opentelemetry_sdk::trace::TraceError;
    pub fn build_otel_layer<S>() -> Result<OpenTelemetry Layer<S, Tracer>, TraceError>
  3. Environment Variable Changes

    • If you set timeout environment variables, update them from seconds to milliseconds:
      • OTEL_EXPORTER_OTLP_TIMEOUT
      • OTEL_EXPORTER_OTLP_TRACES_TIMEOUT
      • OTEL_EXPORTER_OTLP_METRICS_TIMEOUT
      • OTEL_EXPORTER_OTLP_LOGS_TIMEOUT

🔒 Security Considerations

Positive:

  • Security updates included in the dependency chain
  • No known vulnerabilities in the updated versions
  • Removes unused dependencies, reducing attack surface

Recommendations:

  • Continue monitoring for security advisories on OpenTelemetry crates
  • Consider enabling Dependabot security updates if not already enabled

⚡ Performance Considerations

Improvements from v0.31.0:

  • True parallel exports restored in BatchSpanProcessor (fixes regression from #2685)
  • Honors OTEL_BSP_MAX_CONCURRENT_EXPORTS for better throughput
  • Cardinality capping for metrics now configurable (default: 2000)
  • Improved metric collection performance

Recommendations:

  • Monitor export performance after upgrade to ensure parallel exports are working
  • Review cardinality limits if you have high-cardinality metrics

🧪 Test Coverage

Concerns:

  • ❌ No unit tests found for init_telemetry.rs
  • ❌ No tests cover the telemetry initialization paths
  • The project has 87 tests total, but none specifically test OpenTelemetry integration

Recommendations:

  1. Add integration tests for telemetry initialization
  2. Add tests that verify tracing works correctly with and without OTLP enabled
  3. Mock OTLP endpoints in tests to verify proper trace export

📋 Action Items Before Merge

Must Fix:

  1. ❌ Update import in scotty/src/init_telemetry.rs:3:
    • Change use opentelemetry::trace::TraceError to use opentelemetry_sdk::trace::TraceError
  2. ❌ Run cargo build to verify compilation succeeds
  3. ❌ Run cargo test to ensure existing tests pass

Should Consider:

  1. ⚠️ Review timeout environment variables (seconds → milliseconds)
  2. ⚠️ Add integration tests for telemetry code
  3. ⚠️ Test in a staging environment before production deployment

Nice to Have:

  1. 💡 Review cardinality limits for your metrics workload
  2. 💡 Consider leveraging new telemetry suppression features in custom exporters

📊 Summary

Aspect Status Notes
Code Quality ✅ Good Clean, focused dependency update
Breaking Changes Blocking Import path must be fixed
Security ✅ Good No known vulnerabilities
Performance ✅ Improved Parallel exports restored
Test Coverage ⚠️ Insufficient No telemetry-specific tests
Documentation ✅ Adequate Renovate provides good changelog links

🎯 Recommendation

DO NOT MERGE without fixing the compilation error in init_telemetry.rs. Once the import is corrected and tests pass, this update brings valuable improvements and should be merged.

Estimated effort to fix: 5-10 minutes
Risk level after fix: Low to Medium (requires runtime testing)


📚 References

@renovate renovate bot force-pushed the renovate/opentelemetry-packages branch from 98cc2af to 493f1c6 Compare November 12, 2025 22:21
@claude
Copy link

claude bot commented Nov 12, 2025

Pull Request Review: OpenTelemetry Dependencies Update

Overview

This PR updates several OpenTelemetry-related dependencies from versions 0.26-0.28 to 0.31-0.33. This is a Renovate bot PR that includes significant version jumps with breaking changes.

Code Quality ✅

Positive aspects:

  • The dependency updates are well-organized and consistently applied across the workspace
  • All related OpenTelemetry packages are updated together, maintaining compatibility
  • The changes are isolated to Cargo.toml and Cargo.lock

Potential Breaking Changes ⚠️

Based on the upstream changelogs, there are several breaking changes to be aware of:

1. TraceError Import Path Change 🔴

Location: scotty/src/init_telemetry.rs:3

use opentelemetry::trace::{TraceError, TracerProvider};

Issue: In OpenTelemetry 0.29+, TraceError was moved from opentelemetry::trace::TraceError to opentelemetry_sdk::trace::TraceError.

Required Fix:

use opentelemetry::trace::TracerProvider;
use opentelemetry_sdk::trace::TraceError;

2. set_tracer_provider Return Type Change

Location: scotty/src/init_telemetry.rs:38

The return type changed from returning a result to returning () (unit). The current code doesn't use the return value, so this should be compatible, but it's worth noting.

3. Context-based Telemetry Suppression

OpenTelemetry 0.30+ introduced context-based telemetry suppression to prevent recursive telemetry generation. While this is automatic, it's good to be aware that the SDK now suppresses telemetry from its own operations.

Security Concerns ✅

  • All dependencies are from official sources (crates.io)
  • No security-related changes detected in the diff
  • The updates include security patches and bug fixes from upstream

Performance Considerations ✅

Improvements:

  • OpenTelemetry 0.31 includes parallel export optimizations in BatchSpanProcessor
  • More efficient baggage insertion performance
  • Reduced overhead in metric collection

Potential Impact:

  • The removal of unused dependencies (async-stream, glob, older axum versions) will reduce binary size
  • HTTP compression support added (though not enabled by default)

Test Coverage ⚠️

Concerns:

  • This PR doesn't include any test updates or additions
  • The codebase appears to have limited OpenTelemetry-specific tests
  • Recommendation: Run the full test suite and verify:
    • Application starts correctly
    • Telemetry/tracing functionality works as expected
    • No runtime panics from API changes

Dependencies Analysis

Removed (no longer needed):

  • async-stream and async-stream-impl
  • glob (replaced by internal implementation)
  • Duplicate axum 0.7.x (consolidated to 0.8.x)
  • matchit 0.7.x (consolidated to 0.8.x)
  • tower 0.4.x (consolidated to 0.5.x)

Updated (major version jumps):

  • axum-tracing-opentelemetry: 0.26.1 → 0.32.2
  • init-tracing-opentelemetry: 0.27.1 → 0.33.0
  • opentelemetry: 0.28.0 → 0.31.0
  • opentelemetry-otlp: 0.28.0 → 0.31.0
  • opentelemetry_sdk: 0.28 → 0.31
  • tracing-opentelemetry: 0.29 → 0.32
  • prost: 0.13.5 → 0.14.1
  • tonic: 0.12.3 → 0.14.2

Recommendations

Before Merging:

  1. Fix the import issue in init_telemetry.rs (see breaking change chore(deps-dev): bump rollup from 4.22.0 to 4.24.0 in /frontend #1)
  2. Run full test suite to verify compatibility
  3. Test the application manually with telemetry enabled and disabled
  4. Verify OTLP exports if using OpenTelemetry collectors

Testing Checklist:

  • Application starts without panics
  • Tracing is functional when enabled (traces setting)
  • HTTP endpoints with OpenTelemetry middleware work correctly
  • All existing tests pass
  • Clippy and fmt checks pass

Post-Merge Monitoring:

  • Monitor for any runtime errors related to tracing
  • Verify telemetry data is still being exported correctly
  • Check for any performance regressions

Verdict

Status: ⚠️ REQUIRES CHANGES

This is a valuable update that brings bug fixes, performance improvements, and new features. However, there is at least one breaking change that needs to be addressed before merging.

Next Steps:

  1. Update the import path for TraceError in scotty/src/init_telemetry.rs
  2. Run the test suite and verify all tests pass
  3. Consider manual testing of the telemetry functionality
  4. Once fixed, this PR should be safe to merge

Review generated by Claude Code - Please verify the suggested changes and run comprehensive tests before merging.

@renovate renovate bot force-pushed the renovate/opentelemetry-packages branch from 493f1c6 to 66d415c Compare November 15, 2025 01:11
@claude
Copy link

claude bot commented Nov 15, 2025

Pull Request Review: OpenTelemetry Dependencies Update (PR #255)

Overview

This PR updates multiple OpenTelemetry-related dependencies from version 0.26-0.29 to 0.31-0.33. This is a minor version update with some breaking changes that need attention.


Code Quality & Best Practices ✅

Positive aspects:

  • Automated dependency updates via Renovate bot - good maintenance practice
  • Clean diff with only dependency version changes in Cargo.toml and Cargo.lock
  • No manual code changes, indicating backward compatibility with current usage

Potential Issues & Breaking Changes ⚠️

Based on the upstream changelogs and code analysis, there are several breaking changes to be aware of:

1. Critical: TraceError Location Change

The code in scotty/src/init_telemetry.rs:3 imports:

use opentelemetry::trace::{TraceError, TracerProvider};

Breaking change (opentelemetry 0.29.0): TraceError has been moved from opentelemetry::trace::TraceError to opentelemetry_sdk::trace::TraceError.

Action required: Update the import to:

use opentelemetry::trace::TracerProvider;
use opentelemetry_sdk::trace::TraceError;

Or update the function signature in scotty/src/init_telemetry.rs:10 to use a different error type.

2. set_tracer_provider Return Type Change

The code at scotty/src/init_telemetry.rs:38 calls:

global::set_tracer_provider(tracerprovider);

Breaking change (opentelemetry 0.31.0): This method now returns () instead of the previous return type. This is likely already compatible, but verify no code depends on the return value.

3. Semantic Conventions Updates

Breaking change (tracing-opentelemetry 0.32.0): Code attributes have been renamed:

  • code.filepathcode.file.path
  • code.linenocode.line.number
  • code.namespacecode.module.name
  • otel.status_messageotel.status_description

Impact: Low - these changes only affect trace attribute names if your code explicitly sets or queries these fields.


Performance Considerations 🚀

Improvements:

  1. Parallel exports restored (opentelemetry_sdk 0.31.0): A regression fix that honors OTEL_BSP_MAX_CONCURRENT_EXPORTS for true parallel exports in BatchSpanProcessor
  2. Better cardinality capping (opentelemetry_sdk 0.30.0): Metrics now have configurable cardinality limits (default: 2000) which improves memory usage
  3. Telemetry suppression (opentelemetry 0.30.0): New context-based suppression prevents recursive telemetry and reduces overhead

Concerns:

  • The update includes significant internal refactoring - recommend performance testing in staging

Security Concerns 🔒

Positive:

  • All dependencies are from trusted sources (open-telemetry official repos, tokio-rs)
  • No known security vulnerabilities addressed or introduced in the changelogs
  • Updates include several bug fixes and stability improvements

Recommendation:

  • This is a maintenance update with no security-specific changes noted
  • Keep dependencies updated regularly (as Renovate is doing)

Test Coverage 📊

Concerns:

  1. Limited test files found: Only 2 test-related files in the codebase (scotty/src/api/secure_response_test.rs, scottyctl/src/commands/test.rs)
  2. No integration tests for telemetry: The breaking changes in trace/error types might not be caught without compilation

Recommendations:

  1. Verify the build passes - the TraceError import change will cause a compilation error if not addressed
  2. Test telemetry functionality:
    • Verify traces are exported correctly with the new versions
    • Check that OtelAxumLayer and OtelInResponseLayer middleware still function
    • Validate OTLP exporter connectivity if used
  3. Monitor in staging: Watch for any behavioral changes in trace collection/export

Action Items Before Merge 🔧

  1. [REQUIRED] Fix the TraceError import in scotty/src/init_telemetry.rs:3
  2. [REQUIRED] Verify the code compiles successfully
  3. [RECOMMENDED] Run integration tests with telemetry enabled
  4. [RECOMMENDED] Test in staging environment to verify trace export works correctly
  5. [OPTIONAL] Consider updating to use new context suppression features to prevent telemetry recursion

Additional Notes

  • The removal of unused dependencies (async-stream, glob, old axum and tower versions) is a positive cleanup
  • The update includes new features like HTTP compression support (gzip-http, zstd-http) and retry with exponential backoff - consider enabling these if needed
  • The tonic update (0.12 → 0.14) brings significant internal changes but should be transparent to your usage

Verdict

Conditional Approval

This PR is good for merge after fixing the TraceError import issue. The updates bring valuable performance improvements and bug fixes, but the breaking change must be addressed first.

Estimated effort: ~5 minutes to fix the import and verify compilation.

@renovate renovate bot force-pushed the renovate/opentelemetry-packages branch from 66d415c to 222ee2c Compare November 15, 2025 14:28
@claude
Copy link

claude bot commented Nov 15, 2025

Pull Request Review - OpenTelemetry Dependencies Update

Summary

This PR updates several OpenTelemetry-related dependencies from version 0.26-0.28 to 0.31-0.34. This is an automated Renovate PR that brings the project up to date with the latest OpenTelemetry instrumentation libraries.

Code Quality & Best Practices ✅

Positive observations:

  • Clean dependency update with proper version alignment across all OpenTelemetry packages
  • Removes unused dependencies (async-stream, async-stream-impl, glob, old axum and tower versions)
  • Consolidates duplicate dependencies (e.g., matchit, tower, axum-core)
  • Lockfile changes look correct and comprehensive

Breaking Changes Analysis ⚠️

Important breaking changes to be aware of:

  1. global::set_tracer_provider return type change (scotty/src/init_telemetry.rs:38)

    • Changed from returning a value to returning () (Unit)
    • Current code compatibility: Your code doesn't use the return value, so this is safe ✅
  2. TraceError moved location

    • Moved from opentelemetry::trace::TraceError to opentelemetry_sdk::trace::TraceError
    • Action needed: Update import in scotty/src/init_telemetry.rs:3 to:
    use opentelemetry_sdk::trace::{TraceError, TracerProvider};

    However, checking the changelog, TracerProvider is still in opentelemetry::trace, so you may need:

    use opentelemetry::trace::TracerProvider;
    use opentelemetry_sdk::trace::TraceError;
  3. Tonic upgrade (0.12 → 0.14)

    • Significant version jump with potential breaking changes
    • No direct usage detected in your code, only used transitively through opentelemetry-otlp ✅
  4. Prost upgrade (0.13 → 0.14)

    • Minor breaking changes but again only used transitively ✅
  5. Baggage API changes (if used)

    • Major changes to baggage handling, but I don't see baggage usage in your code ✅

Potential Issues 🔍

  1. Import Path Issue (scotty/src/init_telemetry.rs:3)

    use opentelemetry::trace::{TraceError, TracerProvider};

    According to the OpenTelemetry 0.29.0 changelog, TraceError has been moved to opentelemetry_sdk::trace::TraceError. This import will likely fail compilation.

  2. Telemetry Suppression Context

    • New feature added in 0.30.0 for preventing recursive telemetry
    • Not breaking, but could be beneficial to adopt in processors/exporters if you write custom ones

Performance Considerations 🚀

Improvements:

  • Better handling of concurrent exports in BatchSpanProcessor (fixed regression from #2685)
  • Cardinality capping for metrics is now re-enabled with configurability (default limit: 2000)
  • Improved async handling and proper shutdown behavior

No negative performance impacts expected.

Security Concerns 🔒

  • All updates are from trusted OpenTelemetry repositories
  • No security vulnerabilities identified
  • Updates include bug fixes and improvements to telemetry handling
  • Dependency cleanup reduces attack surface by removing unused packages ✅

Test Coverage 🧪

Recommendation:

  • Verify that the application builds successfully with the updated dependencies
  • Test the telemetry initialization path (scotty/src/init_telemetry.rs)
  • Ensure OpenTelemetry traces are still being exported correctly to your OTLP endpoint
  • Check that the axum middleware layers still work as expected

Action Items 📋

Before merging:

  1. Fix the import in scotty/src/init_telemetry.rs:3:

    // Change from:
    use opentelemetry::trace::{TraceError, TracerProvider};
    
    // To:
    use opentelemetry::trace::TracerProvider;
    use opentelemetry_sdk::trace::TraceError;
  2. Verify compilation:

    • Run cargo check --workspace
    • Run cargo build --workspace
    • Run cargo test --workspace
  3. Test runtime behavior:

    • Start the application and verify traces are being sent
    • Check that the middleware layers are properly instrumenting HTTP requests
    • Verify no runtime panics or errors in telemetry initialization

Overall Assessment ✨

This is a good dependency update that brings important bug fixes and improvements. The breaking changes are minimal and mostly don't affect your codebase, with the exception of one import path that needs to be updated.

Recommendation: Approve after fixing the import path issue

The update is well-scoped, removes technical debt (unused dependencies), and keeps the project current with the OpenTelemetry ecosystem.


Review generated with Claude Code

@renovate renovate bot changed the title chore(deps): update opentelemetry packages chore(deps): update rust crate init-tracing-opentelemetry to 0.34.0 Nov 24, 2025
@renovate renovate bot force-pushed the renovate/opentelemetry-packages branch from 222ee2c to 4e93b65 Compare November 24, 2025 21:32
@claude
Copy link

claude bot commented Nov 24, 2025

PR Review: Update init-tracing-opentelemetry to 0.34.0

Summary

This is a Renovate-generated dependency update bumping init-tracing-opentelemetry from version 0.32.1 to 0.34.0 (a minor version update).

Code Quality ✅

  • Clean change: Only touches Cargo.toml and Cargo.lock, as expected for a dependency update
  • Follows project conventions: Matches the project's existing Renovate workflow for automatic dependency updates

Compatibility Analysis ✅

I examined the usage of this dependency in the codebase (scotty/src/init_telemetry.rs) and found:

Current usage:

  • init_propagator() - line 34
  • otlp::traces::{identity, init_tracerprovider} - lines 15, 24
  • resource::DetectResource - lines 16, 19-22
  • config::TracingConfig - lines 88, 91

Good news: This is a minor version bump (0.32 → 0.34), which by semantic versioning should be backward compatible with no breaking changes to the public API.

Related Dependencies 🔍

Note that the project also uses:

  • tracing-opentelemetry = "0.32" (unchanged)
  • axum-tracing-opentelemetry = "0.32.1" (unchanged)

These are from the same ecosystem and remain compatible with the updated version.

Testing Recommendations ✅

  1. Build verification: Ensure cargo build completes successfully
  2. Telemetry testing: Run the server with telemetry enabled:
    SCOTTY__TELEMETRY=metrics,traces cargo run --bin scotty
  3. Integration test: Verify traces are still exported correctly to the observability stack (Jaeger/Grafana)

Security ✅

  • Dependency is from a trusted source (davidB/tracing-opentelemetry-instrumentation-sdk)
  • Minor version updates typically include bug fixes and security patches
  • Renovate has automated this update, indicating it passed their security checks

Performance Considerations ✅

Minor version updates in tracing libraries typically focus on:

  • Bug fixes
  • Performance improvements
  • Compatibility updates with OpenTelemetry standards

No performance regressions expected.

Recommendation: ✅ APPROVE & MERGE

This is a routine dependency update that should be safe to merge once CI passes. The changes are minimal, the version bump is minor (backward compatible), and the project's usage of the library is straightforward and well-established.

Action items:

  1. ✅ Verify CI/CD pipeline passes all checks
  2. ✅ Consider manual smoke testing of telemetry features if this is a critical system
  3. ✅ Merge when ready

Review generated by Claude Code

@renovate
Copy link
Contributor Author

renovate bot commented Dec 5, 2025

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@claude
Copy link

claude bot commented Dec 5, 2025

Pull Request Review

Overview

This PR contains:

  1. Dependency Update: init-tracing-opentelemetry 0.32.1 to 0.34.0
  2. Dependency Cleanup: Removes unused dependencies
  3. Documentation: Adds bug tracking doc for auth precedence issue

Issues Found

CRITICAL: Incorrect walkdir Removal

walkdir was removed from scotty/Cargo.toml but is STILL USED in scotty-core/src/utils/compose.rs:4

This will cause compilation failure. Fix required: Add walkdir.workspace = true to scotty-core/Cargo.toml

Missing Compilation Verification

PR needs evidence of successful build:

  • cargo check --workspace
  • cargo test --workspace --no-run

OpenTelemetry Migration Risk

Skipped version 0.33.0. Should verify changelog and test with SCOTTY__TELEMETRY=metrics,traces

Auth Bug Not Fixed

The PR documents a bug in .beads/issues/scotty-a84a4.md but doesn't fix it. Should either fix it or remove the doc.

Positive Aspects

  • Good dependency cleanup for unused crates
  • Well-written bug documentation
  • Follows conventional commits
  • Uses Renovate for updates

Security

No security concerns identified.

Verdict

Request Changes - Critical walkdir compilation issue must be fixed before merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file renovate rust

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant