Skip to content

Tags: appsignal/appsignal-python

Tags

v1.6.1

Toggle v1.6.1's commit message

Verified

This tag was signed with the committer’s verified signature.
lipskis Martin Lipskis

## Fixed

- Fix parsing of OpenTelemetry spans emitted by `FastAPI` and popular database libraries.

v1.6.0

Toggle v1.6.0's commit message

## Added

- Support logging through the external collector experimental feature. When the `collector_endpoint` configuration option is provided, the OpenTelemetry stack will be automatically configured to instrument logs.

  The `logging` module will be automatically instrumented, such that log lines emitted through loggers that propagate to the root logger will be automatically sent to AppSignal. To disable this behaviour, add `"logging"` to the `disable_default_instrumentations` configuration option list.
- Support usage with external collector. When the `collector_endpoint` configuration option is provided, instead of booting up the AppSignal agent bundled with the application, the OpenTelemetry stack will be configured to send data to the given collector.

  This is an **experimental** feature. The following functionality is not currently supported when using the collector:

  - NGINX metrics
  - StatsD metrics
  - Host metrics

  Some configuration options are only supported when using the agent or when using the collector. A warning will be emitted if a configuration option that is only supported by one is set while using the other.

v1.5.4

Toggle v1.5.4's commit message

## Added

- Add `nginx_port` configuration option. This configuration option can be used to customize the port on which the AppSignal integration exposes [the NGINX metrics server](https://docs.appsignal.com/metrics/nginx.html).

v1.5.3

Toggle v1.5.3's commit message

## Changed

- Allow overriding namespaces that are automatically set by the AppSignal agent based on the OpenTelemetry instrumentation that emitted the span, such as the `graphql` or `background` namespaces.

v1.5.2

Toggle v1.5.2's commit message

## Changed

- Remove redundant cron check-in pairs. When more than one pair of start and finish cron check-in events is reported for the same identifier in the same period, only one of them will be reported to AppSignal.

v1.5.1

Toggle v1.5.1's commit message

## Changed

- Improve SQL sanitisation for functions and numbered placeholders.

v1.5.0

Toggle v1.5.0's commit message

Unverified

This tag is not signed, but one or more authors requires that any tag attributed to them is signed.

## Changed

- Update span recognition following the OpenTelemetry Semantic Conventions 1.30 database specification. We now also sanitize SQL queries in the `db.query.text` attribute and Redis queries in the `db.operation.name` attribute.
- Update bundled trusted root certificates

## Removed

- Remove the OpenTelemetry beta feature in favor of the new [AppSignal collector](https://docs.appsignal.com/collector). If you are using the AppSignal agent to send OpenTelemetry data in our public beta through the `/enriched` endpoint on the agent's HTTP server, please migrate to the collector to continue using the beta. The collector has a much better implementation of this feature for the beta.

## Fixed

- Fix an issue where calling `appsignal.stop()` after sending check-in events would leave a dangling thread, stopping the application from shutting down correctly.

v1.4.1

Toggle v1.4.1's commit message

## Added

- Set the app revision config option for Scalingo deploys automatically. If the `CONTAINER_VERSION` system environment variable is present, it will use used to set the `revision` config option automatically. Overwrite it's value by configuring the `revision` config option for your application.

## Fixed

- Fix a performance issue when sanitising `INSERT INTO ... VALUES` queries.

v1.4.0

Toggle v1.4.0's commit message

## Added

- Add support for heartbeat check-ins.

  Use the `appsignal.check_in.heartbeat` function to send a single heartbeat check-in event from your application. This can be used, for example, in your application's main loop:

  ```python
  from appsignal.check_in import heartbeat

  while True:
    heartbeat("job_processor")
    process_job()
  ```

  Heartbeats are deduplicated and sent asynchronously, without blocking the current thread. Regardless of how often the `.heartbeat` function is called, at most one heartbeat with the same identifier will be sent every ten seconds.

  Pass `continuous=True` as the second argument to send heartbeats continuously during the entire lifetime of the current process. This can be used, for example, after your application has finished its boot process:

  ```python
  def main():
    start_app()
    heartbeat("my_app", continuous=True)
  ```

## Changed

- Change the primary download mirror for integrations.
- Send check-ins concurrently. When calling `appsignal.check_in.cron`, instead of blocking the current thread while the check-in events are sent, schedule them to be sent in a separate thread.

v1.3.10

Toggle v1.3.10's commit message

Unverified

This tag is not signed, but one or more authors requires that any tag attributed to them is signed.

## Changed

- Simplify the implementation of `set_gauge` in favor of the newer OpenTelemetry's sync implementation.