All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
6.0.0 - 2026-03-25
- Replaced legacy
TransactionNameattribute withsw.transaction(#748) - Breaking: upgraded to OTel Python 1.40.0/0.61.b0 and changed Logging SDK configuration (#749)
5.2.1 - 2025-12-16
- Added Copilot instructions (#723)
- Fix type hints, docstrings (#724, #725, #726, #727, #728, #729, #730, #731)
- Upgraded to OTel Python 1.39.1/0.60b1 (#732)
- Fix tests, remove unused param (#733)
5.2.0 - 2025-12-09
- Fixed thread safety of token bucket (#712)
- Updated distro to always opt into
databasenew semconv if supported by instrumentation (#713) - Updated workflows for PyPI trusted publishing (#719)
- Upgraded to OTel Python 1.39.0/0.60b0 (#720)
5.1.0 - 2025-10-21
- Upgraded to OTel Python 1.37.0/0.58b0 (#699)
- Updated style for pylint 4.0 (#703)
- Fixed APM metrics attributes calculation (#704)
- Upgraded to OTel Python 1.38.0/0.59b0 (#705)
5.0.0 - 2025-09-10
- Fixed PyPI publishing naming (#676)
- Upgraded CI/CD actions with condition for older Alpine OS (#679)
- Breaking:
solarwinds_propagatorcannot be used withtracecontext;OTEL_PROPAGATORconfiguration requirements changed (#687) - Breaking: dropped support of
SW_APM_EXPORT_LOGS_ENABLED, please instead useOTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED(#688, #692)
- Breaking: removed warning of already-dropped
integer_responseargument for SDKsolarwinds_ready(#689) - Breaking: removed already-no-op legacy span exporter (#690)
4.3.0 - 2025-08-07
- Updated configurator Resource creation with
service.instance.id(#666) - Updated Lambda layer tags and testing for Python 3.13 (#667)
- Upgraded to OTel Python 1.35.0/0.56b0 (#668)
- Cleaned up constants (#669)
- Upgraded to OTel Python 1.36.0/0.57b0 (#672)
4.2.0 - 2025-07-15
- Updated default histogram aggregation to exponential (#650)
- Upgraded to OTel Python 1.34.1/0.55b1 (#657)
- Removed unnecessary try-except when auto-instrumentation handles all exceptions (#660)
- Updated pylint max-positional-arguments (#661)
4.1.0 - 2025-05-21
- Added local installation option to Verify Install CI/CD (#635)
- Added Windows coverage to Verify Install CI/CD (#636)
- Added macOS coverage to Verify Install CI/CD (#637)
- Added
psutildependency (#629)
- Simplify Lambda builds (#630)
- Simplify Verify Install CI/CD (#633)
- Fixed function signature (#634)
- Fixed sampling/response time metrics descriptions (#639, #640)
- Updated Verify Install CI/CD, requirements for system-metrics (#629, #638, #641)
- Upgraded to OpenTelemetry 1.33.1/0.54b1 (#644)
- Changed
psutildependency (#638)
4.0.0 - 2025-04-29
- Breaking: APM Python is now pure Python (#556)
- Breaking: Removed c-lib extension and legacy components (#549, #612, #614)
- Breaking: Removed discontinued OboeAPI (#565)
- Breaking: Changed SolarWindsSpanExporter to no-op for future removal (#572)
- Breaking: Changed default export protocol to OTLP HTTP for all signals (#580)
- Breaking: Removed legacy configuration logic (#570, #571, #583)
- Breaking: AWS Lambda builds without architecture in layer name (#594)
- Breaking: Removed discontinued grpcio-using dependencies from Lambda builds (#591)
- Breaking: Updated local development setup for pure Python (#603)
- Added ApmConfig mapping for pure Python sampler (#552, #589)
- Added pure Python transaction name pool (#559)
- Added suppression of tracing when HTTP getSettings (#560)
- Added resource detection for AWS, Azure, Kubernetes, UAMS written to resource attributes (#577, #596)
- Added internal deduction of export endpoint from SW_APM_COLLECTOR (#590, #602)
- Updated custom transaction naming as pure Python (#558)
- Simplified spankind check (#561)
- Updated
http.routeassignment based on semconv (#562) - Updated to register NoOp provider if not exporting (#566)
- Fixed counter metrics init (#564)
- Refactored ResponseTime metrics and request counters (#563, #567, #568)
- Fixed transaction name environment config support (#569)
- Redesigned custom Configurator (#578, #581)
- Updated
solarwinds_readyAPI function for pure Python (#582, #584, #599) - Updated Lambda dependencies and builds for resource detection (#593)
- Fixed Configurator exporter loading to prevent ImportError (#592)
- Updated smoke tests / verify_install for pure Python (#595)
- Updated PyPI sdist, wheel publishes in pure Python (#597)
- Update autoinstrumentation-python image builds for pure Python, beta testing (#598)
- Updated default OTel export header assignment for SWO vs other (#601)
- Fixed HttpSampler warning message (#604)
- Fixed
sw.w3c.tracestateattribute assignment (#606) - Updated integration tests (#605)
- Updated units, descriptions of APM counters (#608)
- Updated sampler init (#609)
- Updated
SW_APM_LOG_FILEPATHsupport for Pure Python (#613) - Fixed tracestate KV deletion (#617)
- Removed warning log for Lambda mode (#600)
- Removed unnecessary tests (#611, #610, #615)
- Removed setup.py usage for builds (#616)
3.6.0 - 2025-04-07
- Breaking: SWO metrics is now enabled by default if configured for OTLP;
SW_APM_EXPORT_METRICS_ENABLEDlimits instrumentor metrics only (#551)
- Added baseline components for custom pure Python sampling (#534)
- Fixed OTLP logging component init (#550)
- Upgraded Otel Python 1.31.1/0.52b1 (#553)
- Fixed dependabot CI/CD (#554)
- Updated OTLP exporter compression to be gzip by default (#573)
- Updated all meters preferred aggregation temporality to be Delta (#574)
- Fixed image CI/CD (#575)
3.5.0 - 2025-03-14
- Updated image builds and scans (#529, #531, #535, #537)
- Fixed warning message at boto3 lookup during APM export (#539)
- Fixed custom propagator to support boto3, botocore instrumentation injection ([#540]#540)
3.4.0 - 2025-02-18
- Added autoinstrumentation image publishing (#481, #490, #520, #523)
- Added support for
SW_APM_ENABLED_SQLCOMMENT_ATTRIBUTE(#524)
- Fixed PyPI publishing (#488)
- Fixed version lookup logs (#489)
- Changed exporter header defaults (#494)
- Make service_key updates more general (#496)
- Fixed AttributeError if Propagators None (#501)
- Fixed test mocks (#502)
- Upgraded to OpenTelemetry Python 1.30.0/0.51b0 (#521)
- Removed support of deprecated
OTEL_SQLCOMMENTER_ENABLEDandOTEL_SQLCOMMENTER_OPTIONS(#522)
3.3.2 - 2025-01-06
- Updated error reporting to SWO (#470)
3.3.1 - 2024-11-21
- Upgraded OpenTelemetry API/SDK and instrumentation 1.28.2/0.49b2 (#459)
3.3.0 - 2024-11-14
- Fixed CodeQL warnings (#445, #446)
- Upgraded OpenTelemetry API/SDK and instrumentation 1.28.1/0.49b1, remove
pkg_resourcesusage (#450)
3.2.0 - 2024-10-08
- Added support for
SW_APM_EXPORT_METRICS_ENABLED(#439)
3.1.0 - 2024-10-01
- Added linting for all supported Python versions (#428)
- Added support for
SW_APM_ENABLED_SQLCOMMENT,SW_APM_OPTIONS_SQLCOMMENT(#434, #437)
- Fixed AwsLambdaInstrumentor loading in Lambda environment (#430)
- Fixed code style (#433)
- Deprecated
OTEL_SQLCOMMENTER_ENABLED,OTEL_SQLCOMMENTER_OPTIONS(#434)
3.0.0 - 2024-09-04
- Upgraded OpenTelemetry API/SDK and instrumentation 1.27.0/0.48b0 (#422)
- Skip logs_headers setdefault in lambda (#425)
- Reverted distro doing setdefault to disable AwsLambdaInstrumentor if outside Lambda, because of update in Otel 1.27.0/0.48b0 (#422)
2.2.0 - 2024-08-12
- Upgraded OpenTelemetry API/SDK and instrumentation 1.26.0/0.47b0 (#398, #406)
- Distro does setdefault to disable AwsLambdaInstrumentor if outside Lambda (#405)
- Reverted upgrade OpenTelemetry API/SDK and instrumentation 1.26.0/0.47b0 because of FastAPI instrumentation bug it introduces (#406)
- Reverted add of Python 3.12 support because of revert of API/SDK upgrade (#406)
2.1.0 - 2024-07-17
- Move builds and tests to gh
apm-arm-runner(#385) - Don't inject baggage header if empty (#386)
- Always unset local token bucket capacity/rate (#388)
2.0.0 - 2024-06-18
- Upgraded OpenTelemetry API/SDK and instrumentation 1.25.0/0.46b0 (#364, #375, #376, #377, #380)
- Fixed version lookups at APM startup (#378)
- Upgraded c-lib 15.0.1 (#379)
- Removed docker-compose version keys (#381)
1.7.0 - 2024-05-16
- Fixed log duplication (#357)
- Refactored sampler (#359)
- Removed debug line (#360)
- Sampler inits with APM-proto exporter (#366)
- Fixed APM-proto export for non-scalar attribute types (#367)
1.6.0 - 2024-04-02
- Upgraded layer asgiref 3.8 (#343)
- Fixed init event logging (#345)
- Upgraded layer grpcio 1.62.1 (#351)
- Upgraded c-lib 14.1.0 (#352)
1.5.0 - 2024-03-18
- Added more
swresource attributes to metrics (#327) - Added default disabling of AWS context propagation (#333)
- Fixed grpcio ImportError if outside Python 3.8 (#326)
- Improve
load_instrumentorerror logging (#332) - Fixed APM-proto reporter status logging (#336)
1.4.0 - 2024-03-04
- SolarWinds c-lib 14.0.3 (#316)
- Update layer exec wrapper (#317)
- Non-empty
http.*attributes on metrics (#319) - Add formatter to RotatingFileHander (#320)
- Fixed
sw.is_errorattribute type (#321) - Update CI role (#324)
- Remove ForceFlushSpanProcessor (#312)
1.3.0 - 2024-02-20
- Fixed release_pr script (#302)
- OTLP traces, metrics
sw.transactionattribute with environment customization (#307) - Fixed service key, service name usage (#309)
- Fixed exporter defaults based on protocol (#310)
- Updated workflow dependency (#304)
- Removed
experimentalconfig support (#308)
1.2.0 - 2024-02-05
- Updated OTLP metrics components initialization (#289)
- Fixed no-op function signature (#295)
- Set histogram preferred temporality to delta (#296)
- Set Periodic metric reading interval infinity (#297)
- Fixed response_time metrics for milliseconds (#298)
- Renamed local variables (#300)
- Removed meters for sample_rate, sample_source (#299)
1.1.1 - 2024-01-31
- Updated lambda layer workflow (#278)
- Fixed release PR action (#282)
- SolarWinds c-lib 14.0.2 (#288)
- Added environment logging (#291)
- Linting (#292)
1.1.0 - 2024-01-18
- Added configuration of transaction name in response_time metrics by lambda environment (#257)
- Added Dependabot config (#261, #270)
- Added support for
SW_APM_LOG_FILEPATH(#275)
- Fixed unit tests (#249)
- Refactored span processors (#251, #252, #253, #254, #255)
- Add API unit tests (#256)
- Refactor c-lib init (#258)
- SolarWinds c-lib 14.0.0 (#259)
- Upgraded workflow dependencies (#262,#263, #264, #265, #266, #271)
- Move build configuration to pyproject.toml (#273)
- SolarWinds c-lib 14.0.1 (#280)
- Removed unused mend/whitesource config (#260)
1.0.2 - 2023-12-04
- Update setup.cfg metadata (#232)
- Increased unit test coverage (#225, #231, #233, #234, #235, #236, #237, #238, #239, #240, #241, #242, #243, #244)
- SimpleSpanProcessor when lambda (#245)
1.0.1 - 2023-11-21
- Updated layer extension build target (#215)
- Updated experimental exporter defaults (#217)
- Optimized layer builds (#214)
- Updated setup.py and OboeAPI usage (#224)
- Fixed release workflows (#226)
1.0.0 - 2023-11-14
- Change c-lib usage and
agent_enabledcalculation ifis_lambda(#211) - Updated Makefile for APM Python lambda builds (#212)
- Move organization and repo (#218)
0.18.0 - 2023-10-31
- Add experimental configuration of OpenTelemetry metrics (#200)
- Add generation and OTLP export of
trace.service.response_timemetrics (#201) - Add support for
SW_APM_TRANSACTION_NAME(#206)
- Fixed test dependency for support of Flask < 3 (#202)
- Fixed EC2 runner publish actions (#203)
- Updated install test coverage for Debian 11 (#204)
- Updated Codeowners (#205)
0.17.0 - 2023-09-20
0.16.0 - 2023-08-24
- Updated to liboboe version 13.0.0 (skipped 12.4.1) (#192)
0.15.0 - 2023-08-17
- Remove unused baggage from propagator injection (#184)
- Simplify internal baggage setting for custom naming (#186)
- Fix custom name storage clearing when not sampled (#187)
0.14.0 - 2023-07-20
- Refactored propagator and sampler (#175)
- Renamed CI secrets (#176)
- Updated to liboboe version 12.4.0 (#177)
- OpenTelemetry API/SDK and instrumentation 1.19.0/0.40b0 (#178)
- Removed PackageCloud build workflows (#179)
0.13.0 - 2023-07-11
- Add OTEL_SQLCOMMENTER_ENABLED for some instrumentation libraries (#169)
- aarch64 builds run on EC2 (#170)
- Metric format is
ResponseTimeinstead of both for non-AO backend (#172)
0.12.1 - 2023-06-13
- Add log warning when
set_transaction_namewith empty name (#162)
- Fix accepted config boolean values (#166)
- Removed unused log_trace_id config storage (#163)
- Removed unused enable_sanitize_sql config storage (#164)
- Removed unused is_grpc_clean_hack_enabled config storage (#165)
0.12.0 - 2023-06-01
- Bugfix: APM tracing disabled when platform not supported (#153)
- Updated to liboboe version 12.3.1 (#155)
- Verify Installation tests run on EC2 (#156, #160)
- Installation tests include Ubuntu 22 (#158)
0.11.0 - 2023-05-25
- Added trace context to logging (#146)
- Adjusted config file logging (#147)
- OpenTelemetry API/SDK 1.18.0 (#150)
- Added Amazon 2023 install tests; removed Amazon 2018 and Amazon 2 install tests (#151)
0.10.0 - 2023-05-01
- Add custom transaction filtering support (#136, #137, #138, #139, #141)
- Add span attribute
sw.span_nameat export (#143)
- Removed unused prepend_domain_name config storage (#140)
0.9.0 - 2023-04-20
- OpenTelemetry API/SDK 1.17.0 (#131)
- SolarWinds c-lib 12.2.0, to fix memory leak in extension (#132)
- Adds support for
SW_APM_CONFIG_FILE(#133) - Updates Span Layer to be
<KIND>:<NAME>(#134)
0.8.3 - 2023-03-21
- Bugfix: fixed errors at API
set_transaction_namecalls when APM library tracing disabled (#126) - SolarWinds c-lib 12.1.0, for enhanced metadata retrieval, skipping metrics HTTP status if unavailable, fixed threading locking issue (#127)
0.8.2 - 2023-03-13
- Bugfix: fixed noisy trace state KV deletion attempts when key not present (#121)
- Bugfix: fixed version lookup failures for instrumented aiohttp library (#122)
0.8.1 - 2023-03-08
- Fixed installation from source distribution (#119)
0.8.0 - 2023-02-28
- Add
set_transaction_nameAPI method (#115)
- Deprecated
solarwinds_apm.apm_ready.solarwinds_ready. Instead, usesolarwinds_apm.api.solarwinds_ready. (#115) - OpenTelemetry API/SDK 1.16.0 (#116)
- OpenTelemetry Instrumentation 0.37b0 (#116)
0.7.0 - 2023-02-22
- Add ARM support (#111)
- Updated CodeQL scans (#112)
0.6.0 - 2023-02-08
- SolarWinds c-lib 12.0.0, for gRPC upgrade (#107)
- Bugfix: fix version lookup failures for instrumented ASGI libraries (#108)
0.5.0 - 2023-01-18
- Add support for OTEL_SERVICE_NAME, OTEL_RESOURCE_ATTRIBUTES environment variables (#90)
- Add prioritization of OTEL_SERVICE_NAME, OTEL_RESOURCE_ATTRIBUTES, SW_APM_SERVICE_KEY for setting service.name (#103)
- Update Init message with HostID (#90)
- Update Init message with Python framework versions (#94, #100)
- SolarWinds c-lib 11.1.0, for Init message updates (#90)
- Updated exported spans with Python framework versions (#92)
- Bugfix: existing attributes without parent context now write to spans (#102)
- Bugfix: setting sw.tracestate_parent_id is based on existence of remote parent span (#102)
- Fix install tests on Ubuntu with Python 3.10/3.11 using older setuptools version (#104)
0.4.0 - 2023-01-03
- OpenTelemetry API/SDK 1.15.0 (#91)
- OpenTelemetry Instrumentation 0.36b0 (#91)
- x-trace-options header
custom-*KVs written to entry span attributes (#85) - Fix
x-trace-options-signatureextraction (#85) - Fix validation of
x-trace-optionsheader (#87) - Fix calculation of
x-trace-options-responseheader (#88) - Update GH organization (#96)
0.3.0 - 2022-11-24
- Fix flake8 and installation tests (#83)
0.2.2 - 2022-11-24
- Added integration tests (#67)
- Added sdist and wheel extension file checks as part of library packaging (#75)
- Added linting and code formatting (#80, #82)
- OpenTelemetry API/SDK 1.14.0 (#76)
- OpenTelemetry Instrumentation 0.35b0 (#76)
- Reformatted code based on linting rules (#81)
- Fixed changelog links (#78)
0.2.1 - 2022-11-08
- Version bump for rebuild of 0.2.0 (#73)
0.2.0 - 2022-11-07
- SolarWinds c-lib 11.0.0, for AppOptics certificate compatibility (#70)
- Fixed logging vulnerabilities (#63)
- Update packaging and install tests (#71)
0.1.0 - 2022-10-13
- Initial release for GA (alpha)
- OpenTelemetry API/SDK 1.13.0, for trace generation
- OpenTelemetry Instrumentation 0.34b0, for (auto-)instrumentation of common Python frameworks
- SolarWinds c-lib 10.6.1, for unified inbound metrics generation, trace sample decision, and export to SWO
- W3C trace context propagation
- OTel, APM instrumentation startup, and trigger trace configurable with environment variables