Skip to main content

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.

Project description

Anexia Monitoring

PyPI version 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.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

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 REST endpoint

from anexia_monitoring import urls as monitor_urls
...
urlpatterns = [
  ...
  # Anexia monitoring
  re_path(r'^', 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":"1.11.1",
      "framework_newest_version":"2.0a1",
      "framework":"django",
      "platform_version":"3.5.3 (default, Apr 26 2017, 20:12:19) \n[GCC 4.9.2]"
   },
   "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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-anexia-monitoring-1.7.0.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file django-anexia-monitoring-1.7.0.tar.gz.

File metadata

File hashes

Hashes for django-anexia-monitoring-1.7.0.tar.gz
Algorithm Hash digest
SHA256 d6f1d98f174955a5fbe3797e24f146515c245510343a12f557e2c57dfb7e240b
MD5 079b4efab45faa075bab9aaacfab656e
BLAKE2b-256 45f70e7c35820b71f0923e26f0c32f4ac8eac14bd2fa18a6ec6978922427edbd

See more details on using hashes here.

File details

Details for the file django_anexia_monitoring-1.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_anexia_monitoring-1.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e2afc9d9fe4e963f4634849db7d043b36b2aeac03e3ddd181d3fedcb2fcfda2
MD5 e342c3a8cf3ba7b3893e03149e50d106
BLAKE2b-256 d0c18c20e3f3c31a78c980a87b68c26978e6823e7d64651c13320c34d543fc0f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page