| ## Change Logs |
| |
| ### 1.1.0 |
| |
| - Feature: |
| - Users now can specify the `SW_AGENT_ASYNCIO_ENHANCEMENT` environment variable to enable the performance enhancement with asyncio (#316) |
| |
| - Plugins: |
| - Add neo4j plugin.(#312) |
| |
| - Fixes: |
| - Fix unexpected 'No active span' IllegalStateError (#311) |
| |
| ### 1.0.1 |
| |
| - Feature: |
| - Add a new workflow to push docker images for arm64 and amd64 (#297) |
| |
| - Plugins: |
| - Optimize loguru reporter plugin.(#302) |
| |
| - Fixes: |
| - Fix sw8 loss when use aiohttp (#299, issue#10669) |
| - **Critical**: Fix a bug that leads to high cpu usage (#300, issue#10672) |
| |
| - Others: |
| - Use Kraft mode in E2E Kafka reporter tests (#303) |
| |
| ### 1.0.0 |
| |
| - **Important Note and Breaking Changes:** |
| - **BREAKING**: Python 3.6 is no longer supported and may not function properly, Python 3.11 support is added and tested. |
| - **BREAKING**: A number of common configuration options and environment variables are renamed to follow the convention of Java agent, |
| please check with the latest official documentation before upgrading. (#273, #282) |
| https://skywalking.apache.org/docs/skywalking-python/v1.0.0/en/setup/configuration/ |
| - **BREAKING**: All agent core capabilities are now covered by test cases and enabled by default (Trace, Log, PVM runtime metrics, Profiler) |
| - **BREAKING**: DockerHub Python agent images since v1.0.0 will no longer include the `run` part in `ENTRYPOINT ["sw-python", "run"]`, |
| user should prefix their command with `[-d/--debug] run [-p/--prefork] <Command>` for extra flexibility. |
| - Packaged wheel now provides a extra [all] option to support all three report protocols |
| |
| - Feature: |
| - Add support for Python 3.11 (#285) |
| - Add MeterReportService (gRPC, Kafka reporter) (default:enabled) (#231, #236, #241, #243) |
| - Add reporter for PVM runtime metrics (default:enabled) (#238, #247) |
| - Add Greenlet profiler (#246) |
| - Add test and support for Python Slim base images (#249) |
| - Add support for the tags of Virtual Cache for Redis (#263) |
| - Add a new configuration `kafka_namespace` to prefix the kafka topic names (#277) |
| - Add log reporter support for loguru (#276) |
| - Add **experimental** support for explicit os.fork(), restarts agent in forked process (#286) |
| - Add **experimental** sw-python CLI `sw-python run [-p]` flag (-p/--prefork) to enable non-intrusive uWSGI and Gunicorn postfork support (#288) |
| |
| - Plugins: |
| - Add aioredis, aiormq, amqp, asyncpg, aio-pika, kombu RMQ plugins (#230 Missing test coverage) |
| - Add Confluent Kafka plugin (#233 Missing test coverage) |
| - Add HBase plugin Python HappyBase model (#266) |
| - Add FastAPI plugin websocket protocol support (#269) |
| - Add Websockets (client) plugin (#269) |
| - Add HTTPX plugin (#283) |
| |
| - Fixes: |
| - Allow RabbitMQ BlockingChannel.basic_consume() to link with outgoing spans (#224) |
| - Fix RabbitMQ basic_get bug (#225, #226) |
| - Fix case when tornado socket name is None (#227) |
| - Fix misspelled text "PostgreSLQ" -> "PostgreSQL" in Postgres-related plugins (#234) |
| - Make sure `span.component` initialized as Unknown rather than 0 (#242) |
| - Ignore websocket connections inside fastapi temporarily (#244, issue#9724) |
| - Fix Kafka-python plugin SkyWalking self reporter ignore condition (#249) |
| - Add primary endpoint in tracing context and endpoint info to log reporter (#261) |
| - Enforce tag class type conversion (#262) |
| - Fix sw_logging (log reporter) potentially throw exception leading to traceback confusion (#267) |
| - Avoid reporting meaningless tracecontext with logs when there's no active span, UI will now show empty traceID (#272) |
| - Fix exception handler in profile_context (#273) |
| - Add namespace suffix to service name (#275) |
| - Add periodical instance property report to prevent data loss (#279) |
| - Fix sw_logging when `Logger.disabled` is true (#281) |
| |
| - Docs: |
| - New documentation on how to test locally (#222) |
| - New documentation on the newly added meter reporter feature (#240) |
| - New documentation on the newly added greenlet profiler and the original threading profiler (#250) |
| - Overhaul documentation on development setup and testing (#249) |
| - Add tables to state currently supported features of Python agent. (#271) |
| - New configuration documentation generator (#273) |
| |
| - Others: |
| - Pin CI SkyWalking License Eye (#221) |
| - Fix dead link due to the 'next' url change (#235) |
| - Pin CI SkyWalking Infra-E2E (#251) |
| - Sync OAP, SWCTL versions in E2E and fix test cases (#249) |
| - Overhaul development flow with Poetry (#249) |
| - Fix grpcio-tools generated message type (#253) |
| - Switch plugin tests to use slim Python images (#268) |
| - Add unit tests to sw_filters (#269) |
| |
| ### 0.8.0 |
| - Feature: |
| - Update mySQL plugin to support two different parameter keys. (#186) |
| - Add a `SW_AGENT_LOG_REPORTER_SAFE_MODE` option to control the HTTP basic auth credential filter (#200) |
| |
| - Plugins: |
| - Add Psycopg(3.x) support (#168) |
| - Add MySQL support (#178) |
| - Add FastAPI support (#181) |
| - Drop support for flask 1.x due to dependency issue in Jinja2 and EOL (#195) |
| - Add Bottle support (#214) |
| |
| - Fixes: |
| - Spans now correctly reference finished parents (#161) |
| - Remove potential password leak from Aiohttp outgoing url (#175) |
| - Handle error when REMOTE_PORT is missing in Flask (#176) |
| - Fix sw-rabbitmq TypeError when there are no headers (#182) |
| - Fix agent bootstrap traceback not shown in sw-python CLI (#183) |
| - Fix local log stack depth overridden by agent log formatter (#192) |
| - Fix typo that cause user sitecustomize.py not loaded (#193) |
| - Fix instance property wrongly shown as UNKNOWN in OAP (#194) |
| - Fix multiple components inconsistently named on SkyWalking UI (#199) |
| - Fix SW_AGENT_LOGGING_LEVEL not properly set during startup (#196) |
| - Unify the http tag name with other agents (#208) |
| - Remove namespace to instance properties and add pid property (#205) |
| - Fix the properties are not set correctly (#198) |
| - Improved ignore path regex (#210) |
| - Fix sw_psycopg2 register_type() (#211) |
| - Fix psycopg2 register_type() second arg default (#212) |
| - Enhance Traceback depth (#206) |
| - Set spans whose http code > 400 to error (#187) |
| |
| - Docs: |
| - Add a FAQ doc on `how to use with uwsgi` (#188) |
| |
| - Others: |
| - Refactor current Python agent docs to serve on SkyWalking official website (#162) |
| - Refactor SkyWalking Python to use the CLI for CI instead of legacy setup (#165) |
| - Add support for Python 3.10 (#167) |
| - Move flake configs all together (#169) |
| - Introduce another set of flake8 extensions (#174) |
| - Add E2E test coverage for trace and logging (#199) |
| - Now Log reporter `cause_exception_depth` traceback limit defaults to 10 |
| - Enable faster CI by categorical parallelism (#170) |
| |
| ### 0.7.0 |
| |
| - Feature: |
| - Support collecting and reporting logs to backend (#147) |
| - Support profiling Python method level performance (#127 |
| - Add a new `sw-python` CLI that enables agent non-intrusive integration (#156) |
| - Add exponential reconnection backoff strategy when OAP is down (#157) |
| - Support ignoring traces by http method (#143) |
| - `NoopSpan` on queue full, propagation downstream (#141) |
| - Support agent namespace. (#126) |
| - Support secure connection option for GRPC and HTTP (#134) |
| |
| - Plugins: |
| - Add Falcon Plugin (#146) |
| - Update `sw_pymongo.py` to be compatible with cluster mode (#150) |
| - Add Python celery plugin (#125) |
| - Support tornado5+ and tornado6+ (#119) |
| |
| - Fixes: |
| - Remove HTTP basic auth credentials from log, stacktrace, segment (#152) |
| - Fix `@trace` decorator not work (#136) |
| - Fix grpc disconnect, add `SW_AGENT_MAX_BUFFER_SIZE` to control buffer queue size (#138) |
| |
| - Others: |
| - Chore: bump up `requests` version to avoid license issue (#142) |
| - Fix module wrapt as normal install dependency (#123) |
| - Explicit component inheritance (#132) |
| - Provide dockerfile & images for easy integration in containerized scenarios (#159) |
| |
| ### 0.6.0 |
| |
| - Fixes: |
| - Segment data loss when gRPC timing out. (#116) |
| - `sw_tornado` plugin async handler status set correctly. (#115) |
| - `sw_pymysql` error when connection haven't db. (#113) |
| |
| ### 0.5.0 |
| |
| - New plugins |
| - Pyramid Plugin (#102) |
| - AioHttp Plugin (#101) |
| - Sanic Plugin (#91) |
| |
| - API and enhancements |
| - `@trace` decorator supports `async` functions |
| - Supports async task context |
| - Optimized path trace ignore |
| - Moved exception check to `Span.__exit__` |
| - Moved Method & Url tags before requests |
| |
| - Fixes: |
| - `BaseExceptions` not recorded as errors |
| - Allow pending data to send before exit |
| - `sw_flask` general exceptions handled |
| - Make `skywalking` logging Non-global |
| |
| - Chores and tests |
| - Make tests really run on specified Python version |
| - Deprecate 3.5 as it's EOL |
| |
| ### 0.4.0 |
| |
| - Feature: Support Kafka reporter protocol (#74) |
| - BugFix: Move generated packages into `skywalking` namespace to avoid conflicts (#72) |
| - BugFix: Agent cannot reconnect after server is down (#79) |
| - Test: Mitigate unsafe yaml loading (#76) |
| |
| ### 0.3.0 |
| |
| - New plugins |
| - Urllib3 Plugin (#69) |
| - Elasticsearch Plugin (#64) |
| - PyMongo Plugin (#60) |
| - Rabbitmq Plugin (#53) |
| - Make plugin compatible with Django (#52) |
| |
| - API |
| - Add process propagation (#67) |
| - Add tags to decorators (#65) |
| - Add Check version of packages when install plugins (#63) |
| - Add thread propagation (#62) |
| - Add trace ignore (#59) |
| - Support snapshot context (#56) |
| - Support correlation context (#55) |
| |
| - Chores and tests |
| - Test: run multiple versions of supported libraries (#66) |
| - Chore: add pull request template for plugin (#61) |
| - Chore: add dev doc and reorganize the structure (#58) |
| - Test: update test health check (#57) |
| - Chore: add make goal to package release tar ball (#54) |
| |
| |
| |
| ### 0.2.0 |
| |
| - New plugins |
| - Kafka Plugin (#50) |
| - Tornado Plugin (#48) |
| - Redis Plugin (#44) |
| - Django Plugin (#37) |
| - PyMsql Plugin (#35) |
| - Flask plugin (#31) |
| |
| - API |
| - Add ignore_suffix Config (#40) |
| - Add missing `log` method and simplify test codes (#34) |
| - Add content equality of SegmentRef (#30) |
| - Validate carrier before using it (#29) |
| |
| - Chores and tests |
| - Test: print the diff list when validation failed (#46) |
| - Created venv builders for linux/windows and req flashers + use documentation (#38) |
| |
| ### 0.1.0 |
| |
| - API: agent core APIs, check [the APIs and the examples](https://github.com/apache/skywalking-python/blob/3892cab9d5d2c03107cfb2b1c59a6c77c5c3cc35/README.md#api) |
| - Plugin: built-in libraries `http`, `urllib.request` and third-party library `requests` are supported. |
| - Test: agent test framework is setup, and the corresponding tests of aforementioned plugins are also added. |