apm-agent-python

The official Python module for Elastic APM

BSD-3-CLAUSE License

Downloads
1.1M
Stars
410
Committers
203

Bot releases are visible (Hide)

apm-agent-python - v4.2.0

Published by beniwohli over 5 years ago

  • Implemented a new transport queue, which should avoid certain deadlock scenarios (#411)
  • Implemented server certificate pinning (#405)
  • Moved context.url to context.http.url for requests/urllib3 spans (#393, #394)
  • Added support for using route as transaction name in Django 2.2+ (#86, #396)
  • Added some randomness to time between requests to APM Server (#426)
  • Fixed an issue with custom user models in Django using non-string usernames (#397, #398)
  • Fixed an issue with sending kubernetes metadata to the API (#401, #402)
  • Fixed an issue with parsing /proc/stat in RHEL/centos 6 (#406, #407)
  • Added copyright header to all files, and a CI check (#429)
apm-agent-python - v4.1.0

Published by beniwohli over 5 years ago

  • Added support for collecting system and process metrics (#361)
  • Added an OpenTracing bridge (#388)
  • Added transaction.sampled to errors (#371)
  • Added transaction.type to errors (#391)
  • Added parsing of /proc/self/cgroup to capture container meta data (#352)
  • Added option to configure logging for Flask using a log level (#344)
  • Added capture_headers config option (#392)
apm-agent-python - v4.0.3

Published by beniwohli over 5 years ago

  • implemented de-dotting of tag names and context keys (#353)
  • wrote a quickfix for the boto3/botocore instrumentation (#367)
  • fixed an issue with psycopg2 and encoded strings (#366)
apm-agent-python - v3.0.5

Published by beniwohli over 5 years ago

apm-agent-python - v4.0.2

Published by beniwohli over 5 years ago

  • fixed another issue in the new v2 transport (#351)
apm-agent-python - v3.0.4

Published by beniwohli almost 6 years ago

  • fixed an issue with instrumenting redis-py 3.0+
apm-agent-python - v4.0.1

Published by beniwohli almost 6 years ago

  • fixed an issue with instrumenting redis-py 3.0+
  • fixed a multithreading issue that occurs when using threaded workers (#335)
apm-agent-python - v4.0.0

Published by beniwohli almost 6 years ago

BREAKING Version 4 of the agent implements a new wire protocol for communicating with
the APM Server. This format is only supported in APM Server 6.5+.

Further breaking changes:

  • the undocumented AsyncioHTTPTransport has been removed.
  • the flush_interval and max_queue_size settings have been removed.
  • new settings introduced: api_request_time and api_request_size.
  • Some settings now require a unit for duration or size. See documentation on
    configuration for more information.
  • The option to provide a custom date for exceptions and messages has been removed.

Other changes:

  • on Python 3.7, use contextvars instead of threadlocals for storing
    current transaction and span. This is a necessary precursor for full asyncio support. (#291)
apm-agent-python - v3.0.3

Published by beniwohli almost 6 years ago

  • fixed an issue when logging messages that are not strings (#295, #312)
  • backported some documentation fixes
apm-agent-python - v3.0.2

Published by beniwohli about 6 years ago

  • fixed an issue with detecting names of wrapped functions that are partials (#294)
  • fixed a bug in Flask instrumentation that could appear together with FlaskAPI (#286)
apm-agent-python - v3.0.1

Published by beniwohli about 6 years ago

  • added sanitization for Set-Cookie response headers (#264)
  • added instrumentation for the non-standard Connection.execute() method for SQLite3 (#271)
  • added "authorization" to list of sensitive keywords, to ensure that "Authorization"
    HTTP headers are properly sanitized (#275)
  • taught the Logbook handler how to handle the stack=False option (#278)
  • fixed a race condition with managing the timer-send thread (#279)
apm-agent-python - v3.0.0

Published by beniwohli over 6 years ago

  • adapted "black" code formatter for this repository (#262)
  • BREAKING: dropped support for Python 3.3 (#242)
  • BREAKING: changed order of precedence when evaluating configuration (#255, #261)
  • BREAKING: changed default value of span_frames_min_duration setting
    from -1 (always collect) to 5 (only collect for spans longer than 5 ms) (#243)
  • added instrumentation for pymssql (#241)
  • added instrumentation for pyodbc (#238)
apm-agent-python - v2.2.1

Published by beniwohli over 6 years ago

  • fixed an issue with Django Channels (#232, #233)
apm-agent-python - v2.2.0

Published by beniwohli over 6 years ago

  • introduced consistent logger name scheme for all elasticapm internal log messages (#212)
  • added instrumentation of cassandra-driver (#205)
  • added instrumentation of elasticsearch-py (#191)
  • added Flask 1.0 to the test matrix (#207)
  • fixed an issue with our minimalistic SQL parser and "fully qualified" table names (#206)
  • fixed issue with spans in Django’s StreamingHTTPResponse not being captured (#201, #202)
  • fixed issue with spans with Flask’s streaming response not being captured (#201, #202)

NOTE: This will be the last release with support for Python 3.3.

apm-agent-python - v2.1.1

Published by beniwohli over 6 years ago

  • fixed bug in Django management command that would be triggered on Django 1.10 or 1.11 while using the MIDDLEWARE_CLASSES setting (#186, #187)
  • fix an encoding issue with log messages that are hit in rare cases (#188, #189)
apm-agent-python - v2.1.0

Published by beniwohli over 6 years ago

  • made skipping of initial elasticapm frames for span stack traces more generic (#167)
  • added context.process.ppid field (supported in apm-server 6.3+) (#168)
  • added option to disable stack frame collection for very short spans (#142)
  • several bug fixes:
    • fix an issue in boto3 instrumentation with nonstandard endpoint URLs (#178)
    • fix bug with OPTIONS requests and body capturing (#174)
    • fix issue when message has % character, but no params (#175)
apm-agent-python - v2.0.1

Published by beniwohli over 6 years ago

  • fixed compatibility issue with aiohttp 3.0 (#157)
  • Added truncation for fields that have a maxLength in the JSON Schema (#159)
apm-agent-python - v2.0.0

Published by beniwohli over 6 years ago

  • moved the library-frame detection from a processor to the stacktrace collection (#113).

  • added settings to enable/disable source code collection and local variables collection for errors and transactions (#117)

  • added service.environment to provide an environment name (e.g. "production", "staging") (#123)

  • added transaction.id to errors to better correlate errors with transactions (#122)

  • added transaction_sample_rate to define a rate with which transactions are sampled (#116)

  • added error.handled to indicate if an exception was handled or not (#124).

  • added transaction_max_spans setting to limit the amount of spans that are recorded per transaction (#127)

  • added configuration options to limit captured local variables to a certain length (#130)

  • added options for configuring the amount of context lines that are captured with each frame (#136)

  • added support for tracing queries formatted as psycopg2.sql.SQL objects (#148)

  • switched to time.perf_counter as timing function on Python 3 (#138)

  • added option to disable capturing of request body (#151)

  • BREAKING: Several settings and APIs have been renamed (#111, #119, #143):

    • The decorator for custom instrumentation, elasticapm.trace, is now elasticapm.capture_span
    • The setting traces_send_frequency has been renamed to flush_interval. The name of the analogous environment variable changed from ELASTIC_APM_TRACES_SEND_FREQ to ELASTIC_APM_FLUSH_INTERVAL
    • The app_name setting has been renamed to service_name. The name of the analogous environment variable changed from ELASTIC_APM_APP_NAME to ELASTIC_APM_SERVICE_NAME.
    • app_name arguments to API calls in the whole code base changed to service_name.
    • The app_version setting has been renamed to service_version. The name of the analogous environment variable changed from ELASTIC_APM_APP_VERSION to ELASTIC_APM_SERVICE_VERSION.
    • context.request.url.raw has been renamed to context.request.url.full (#121)
  • BREAKING: added elasticapm.set_custom_context in favor of the more generic set_custom_data function (#133)

  • BREAKING: include_patterns and exclude_patterns now use shell globs instead of regular expressions, and are matched against the full path file path of the module, not against the module name (#137)

  • BREAKING: renamed several configuration options to align better with other language agents (#145):

    • disable_instrumentation became instrument and inverted its meaning
    • max_event_queue_length became max_queue_size
    • timeout became server_timeout
apm-agent-python - https://github.com/elastic/apm-agent-python/releases/tag/v1.0.0

Published by beniwohli almost 7 years ago

apm-agent-python - v1.0.0.dev3

Published by beniwohli almost 7 years ago

  • added a background thread to process the transactions queue every 60 seconds (configurable) (#68)
  • adapted trace context for SQL traces to new API (#77)
  • ensured that transaction data is also passed through processors (#84)
  • added uninstrument function to reverse instrumentation,
    and exposed both instrument and uninstrument as public API in the elasticapm namespace (#90)
  • added normalization of HTTP status codes into classes for the transaction.result field. A HTTP status of 200
    will be turned into HTTP 2xx. The unchanged status code is still available in context.response.status_code.
    (#85)
Package Rankings
Top 28.88% on Conda-forge.org
Top 1.63% on Pypi.org