Conversation
Pull request dashboard statusWaiting on the author · refreshed 2026-10-03 04:09 UTC Investigate required status check failures. Status above doesn't look right?
|
6 of 10 tasks
herin049
force-pushed
the
herin049/logs-sdk-stabilization
branch
from
October 3, 2026 03:50
0f71f87 to
6be91d7
Compare
Contributor
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
Public API stabilization and compatibility changes span the SDK, configuration, exporters, and documentation.
Review effort: Balanced
Findings: None
What changed in this PR
Stabilizes the SDK logs API under opentelemetry.sdk.logs, preserving deprecated import compatibility while removing obsolete experimental APIs.
Changes:
- Adds the public logs package and deprecated
_logsaliases. - Removes deprecated log aliases, SDK
LoggingHandler, and its configuration option. - Updates exporters, tests, documentation, examples, and entry points.
| File | Description |
|---|---|
tests/opentelemetry-test-utils/tests/test_otlp_test_server.py |
Uses public logs imports. |
tests/opentelemetry-docker-tests/tests/otlpexporter/test_otlp_logs_functional.py |
Uses public logs imports. |
opentelemetry-sdk/tests/test_configurator.py |
Updates configuration tests for removed handler setup. |
opentelemetry-sdk/tests/shared_internal/test_batch_processor.py |
Uses public logs imports. |
opentelemetry-sdk/tests/logs/test_sdk_metrics.py |
Uses public logs imports. |
opentelemetry-sdk/tests/logs/test_multi_log_processor.py |
Replaces handler-based test emission. |
opentelemetry-sdk/tests/logs/test_logs.py |
Uses public logs imports. |
opentelemetry-sdk/tests/logs/test_logger_provider_cache.py |
Tests caching through SDK loggers. |
opentelemetry-sdk/tests/logs/test_log_record.py |
Uses public logs imports. |
opentelemetry-sdk/tests/logs/test_log_limits.py |
Uses public logs imports. |
opentelemetry-sdk/tests/logs/test_handler.py |
Removes deprecated handler tests. |
opentelemetry-sdk/tests/logs/test_export.py |
Removes handler-dependent exporter tests. |
opentelemetry-sdk/tests/logs/test_deprecated_logs_module.py |
Tests deprecated module compatibility. |
opentelemetry-sdk/tests/logs/scripts/logger_provider_resource_after_fork.py |
Uses public logs imports. |
opentelemetry-sdk/src/opentelemetry/sdk/logs/export/__init__.py |
Exposes stable exporter API. |
opentelemetry-sdk/src/opentelemetry/sdk/logs/_internal/export/in_memory_log_exporter.py |
Removes deprecated exporter alias. |
opentelemetry-sdk/src/opentelemetry/sdk/logs/_internal/export/__init__.py |
Moves exporter internals and removes aliases. |
opentelemetry-sdk/src/opentelemetry/sdk/logs/_internal/_logger_metrics.py |
Moves logger metrics internals. |
opentelemetry-sdk/src/opentelemetry/sdk/logs/_internal/_exceptions.py |
Moves exception helpers. |
opentelemetry-sdk/src/opentelemetry/sdk/logs/_internal/__init__.py |
Moves SDK implementation and removes handler APIs. |
opentelemetry-sdk/src/opentelemetry/sdk/logs/__init__.py |
Defines the stable public SDK package. |
opentelemetry-sdk/src/opentelemetry/sdk/environment_variables/__init__.py |
Removes deprecated environment variable. |
opentelemetry-sdk/src/opentelemetry/sdk/_logs/__init__.py |
Implements deprecated import aliases. |
opentelemetry-sdk/src/opentelemetry/sdk/_configuration/__init__.py |
Removes automatic logging-handler setup. |
opentelemetry-sdk/pyproject.toml |
Updates logs entry points. |
opentelemetry-sdk/benchmarks/logs/test_benchmark_logs.py |
Uses public logs imports. |
opentelemetry-sdk/benchmarks/logs/test_benchmark_logging_handler.py |
Removes deprecated handler benchmark. |
opentelemetry-configuration/tests/test_logger_provider.py |
Uses public logs imports. |
opentelemetry-configuration/src/opentelemetry/configuration/_logger_provider.py |
Uses public logs imports. |
opentelemetry-api/src/opentelemetry/logs/_internal/__init__.py |
Updates SDK reference documentation. |
exporter/opentelemetry-exporter-otlp-proto-http/tests/test_proto_log_exporter.py |
Uses public logs imports. |
exporter/opentelemetry-exporter-otlp-proto-http/src/opentelemetry/exporter/otlp/proto/http/_log_exporter/__init__.py |
Uses stable SDK interfaces. |
exporter/opentelemetry-exporter-otlp-proto-grpc/tests/logs/test_otlp_logs_exporter.py |
Uses public logs imports. |
exporter/opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc/exporter.py |
Uses stable SDK interfaces. |
exporter/opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc/_log_exporter/__init__.py |
Uses stable SDK interfaces. |
exporter/opentelemetry-exporter-otlp-proto-common/tests/test_log_encoder.py |
Uses public logs imports. |
exporter/opentelemetry-exporter-otlp-proto-common/tests/test_bytes_resource.py |
Replaces deprecated exporter alias. |
exporter/opentelemetry-exporter-otlp-proto-common/src/opentelemetry/exporter/otlp/proto/common/_internal/_log_encoder/__init__.py |
Uses stable SDK records. |
exporter/opentelemetry-exporter-otlp-json-http/tests/test_log_exporter.py |
Uses public logs imports. |
exporter/opentelemetry-exporter-otlp-json-http/src/opentelemetry/exporter/otlp/json/http/_log_exporter.py |
Uses stable SDK interfaces. |
exporter/opentelemetry-exporter-otlp-json-file/tests/test_log_exporter.py |
Uses public logs imports. |
exporter/opentelemetry-exporter-otlp-json-file/src/opentelemetry/exporter/otlp/json/file/_log_exporter.py |
Uses stable SDK interfaces. |
exporter/opentelemetry-exporter-otlp-json-common/tests/test_log_encoder.py |
Uses public logs imports. |
exporter/opentelemetry-exporter-otlp-json-common/tests/__init__.py |
Uses stable SDK records. |
exporter/opentelemetry-exporter-otlp-json-common/src/opentelemetry/exporter/otlp/json/common/_internal/_log_encoder/__init__.py |
Uses stable SDK records. |
docs/sdk/logs.rst |
Documents the public logs package. |
docs/sdk/logs.export.rst |
Documents public exporter APIs. |
docs/sdk/index.rst |
Links the stable logs documentation. |
docs/sdk/configuration.rst |
Removes obsolete environment-variable guidance. |
docs/sdk/_logs.export.rst |
Removes private exporter documentation. |
docs/examples/multi-destination-exporting/README.rst |
Uses the stable exporter name. |
docs/examples/multi-destination-exporting/multi_destination_logs.py |
Uses public logs imports. |
docs/examples/metrics/sdk-metrics/sdk_metrics.py |
Uses public logs imports. |
docs/examples/logs/README.rst |
Removes experimental-status warning. |
docs/examples/logs/example.py |
Uses public logs imports. |
docs/conf.py |
Updates Sphinx class references. |
.changelog/5732.removed.1 |
Records deprecated alias removals. |
.changelog/5732.removed |
Records handler and variable removals. |
.changelog/5732.deprecated |
Records _logs deprecation. |
.changelog/5732.changed |
Records logs SDK stabilization. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This branch has not been deployed
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.
Description
Part 2/3 of the logs stabilization stack (API -> SDK -> exporters). Depends on #5731.
Stabilizes the logs signal in the SDK package by moving it from
opentelemetry.sdk._logsto the publicopentelemetry.sdk.logspackage and removes SDK logs features that were already deprecated.opentelemetry.sdk._logstoopentelemetry.sdk.logs.opentelemetry.sdk._logsstays as a deprecated alias that emits aDeprecationWarningand keeps the old submodule paths (export,_internal, …) working.LogExporter,LogExportResult,ConsoleLogExporter,InMemoryLogExporter,LogLimitsandLogDroppedAttributesWarning.LoggingHandler, theOTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLEDenvironment variable and thesetup_logging_handlerargument of_initialize_components.OTEL_PYTHON_LOGGER_CONFIGURATORdefault, the docs (docs/sdk/logs*.rst) and all in-repo imports.Fixes #3361
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
Does This PR Require a Contrib Repo Change?
Checklist:
Stack created with GitHub Stacks CLI • Give Feedback 💬