Skip to main content

Anexia Monitoring

PyPI version Run linter and tests Codecov

A Django app used to monitor updates for Django and all installed python packages in the running environment. It can be also used to check if the website is alive and working correctly.

Django Compatibility Matrix

If your project uses an older version of Django, you can choose an older version of this project.

This Project Python Version Django Version
1.8.* 3.10 - 3.14 5.2, 6.0
1.7.* 3.8 - 3.12 4.2, 5.0, 5.1
1.6.* 3.8 - 3.12 4.2, 5.0
1.5.* 3.7 - 3.10 3.2, 4.0, 4.1
1.4.* 3.7 - 3.10 3.2, 4.0
1.3.* 3.5 - 3.9 2.2, 3.1, 3.2
1.2.* 3.5 - 3.8 2.2, 3.0, 3.1
1.1.* 2.7, 3.4, 3.5 1.8, 1.11

Note: in 1.8.*, Django 6.0 requires Python 3.12+

Installation and configuration

Install the package by using pip

pip install django-anexia-monitoring

Add the app the settings installed apps

INSTALLED_APPS = [
  ...
  # Anexia monitor
  'anexia_monitoring',
  ...
]

In the projects settings.py add the access token configuration:

ANX_MONITORING_ACCESS_TOKEN = 'custom_access_token'

Add URL configuration for the REST endpoints:

from django.urls import include, path
from anexia_monitoring import urls as monitor_urls

urlpatterns = [
    # ...
    # Anexia monitoring
    path('', include(monitor_urls)),
    # ...
]

Usage

The plugin registers some custom REST endpoints and django management commands which can be used for monitoring. Make sure that the ANX_MONITORING_ACCESS_TOKEN is defined, since this is used for authorization of the endpoints. The endpoints will return a 401 HTTP_STATUS code if the token is not define or invalid, and a 200 status code otherwise.

Version monitoring

Returns all a list with platform and module information. Data can be retrieved via endpoint or django management command.

Command: ./manage.py anxmonitormodules output is same as endpoints response body.

URL: /anxapi/v1/modules/?access_token=custom_access_token

Response headers:

Status Code: 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Allow: GET
Content-Type: application/json

Response body:

{
   "platform":{
      "platform":"python",
      "framework_installed_version":"5.2.0",
      "framework_newest_version":"6.0.0",
      "framework":"django",
      "platform_version":"3.13.0 (main, Oct  7 2024, 23:42:00) \n[GCC 13.2.0]"
   },
   "modules":[
      {
         "newest_version":"1.4.3",
         "newest_version_licences": [
           "MIT"
         ],
         "name":"appdirs",
         "installed_version":"1.4.3",
         "installed_version_licences": [
           "MIT"
         ]
      },
      {
         "newest_version":"0.22.0",
         "newest_version_licences": [
           "MIT"
         ],
         "name":"asn1crypto",
         "installed_version":"0.22.0",
         "installed_version_licences": [
           "MIT"
         ],
      },
      {
         "newest_version":"2.4.0",
         "newest_version_licences": [
           "BSD"
         ],
         "name":"Babel",
         "installed_version":"2.4.0",
         "installed_version_licences": [
           "BSD"
         ],
      }
   ]
}

Live monitoring

This endpoint can be used to verify if the application is alive and working correctly. It checks if the database connection is working and makes a query for users. It allows to register custom checks by using the dispatched monitor_up_check event.

URL: /anxapi/v1/up/?access_token=custom_access_token

Response headers:

Status Code: 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Allow: GET
Content-Type: text/plain

Response body:

OK

Custom live monitoring event

This check can be defined into the app even subscribers

from django.dispatch import receiver
from anexia_monitoring.events import monitor_up_check

@receiver(monitor_up_check)
def list_of_complete_polls_handler(sender, **kwargs):
    """
    My custom is alive check
    """
    pass

Live monitoring settings

The User table is used in most Django applications and by default the up endpoint will make a test query to this table. If you don't need it you can disable it using the ANX_MONITORING_TEST_QUERY_USERS setting.

Similar most Django applications also use a database connection which the module tests for connection by default. If you don't need this you can deactivate it by providing the ANX_MONITORING_TEST_DB_CONNECTIONS setting.

ANX_MONITORING_TEST_QUERY_USERS = False
ANX_MONITORING_TEST_DB_CONNECTIONS = False

List of developers

  • Harald Nezbeda, Lead developer

Project related external resources

Metadata

Release files for django-anexia-monitoring 1.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-anexia-monitoring 1.8.0
File Size Uploaded
django_anexia_monitoring-1.8.0.tar.gz 15.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-anexia-monitoring 1.8.0
File Interpreter ABI Platform
django_anexia_monitoring-1.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 25.0 kB

Release files / django_anexia_monitoring-1.8.0.tar.gz

Download URL django_anexia_monitoring-1.8.0.tar.gz
Size 15.7 kB
Tags Source
SHA-256 checksum
How to use checksums
7499e8a381a064caedacb910546ac8ab992ce422e2d93d36cda97aa0755a0c9d
BLAKE2b-256 checksum
How to use checksums
eb3c33f1780f1a6a14bddba4036258d65edb2fd3124d59b226a8dea13224f789
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release files / django_anexia_monitoring-1.8.0-py3-none-any.whl

Download URL django_anexia_monitoring-1.8.0-py3-none-any.whl
Size 9.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
59a9b93a5d68b085673d1b8e0f06a7068268d64214e257728db6d5b14a98eaa5
BLAKE2b-256 checksum
How to use checksums
7f8efd05e92322db1c67df0f54b185c26882b354f7320a87d0c57ad5dbb51535
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release history Release notifications | RSS feed

This release

1.8.0 This release

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page