Python Agent version 2.x

edit

v2.2.1

edit

Check the diff

  • fixed an issue with Django Channels #232, #233

v2.2.0

edit

Check the diff

  • 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.

v2.1.1

edit

Check the diff

  • 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

v2.1.0

edit

Check the diff

  • 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

v2.0.1

edit

Check the diff

  • fixed compatibility issue with aiohttp 3.0 #157
  • Added truncation for fields that have a maxLength in the JSON Schema #159

v2.0.0

edit

Check the diff

  • 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