Skip to main content

Simple django app to expose system infos: libraries version, databae server infos...

Project description

django-sysinfo

https://badge.fury.io/py/django-sysinfo.png https://travis-ci.org/saxix/django-sysinfo.png?branch=master

Simple django app to expose system infos like libraries version, database server…

Rationale

In our environment we manage dozens of Django applications and sometimes we need to answer questions like:

  • which application is using this broken/outdated package ?

  • which application is using that database ?

scan all the installed sites, is tedious, we have a documentation site with all these infos, but we want to keep it always updated. Here where django-sysinfo comes to help.

It provides a simple view that returns a json response containing:

  • database:
    • ip

    • engine

    • version

  • environment:
    • installed modules and version

  • project:
    • MEDIA_ROOT/STATIC_ROOT path and available disk space

    • django installed apps

    • process path

    • temp dir path

  • os:
    • name

  • python:
    • version

    • executable path

  • host:
    • cpu(s) number

    • free/total memory

    • NIC list and relative IP addresses

You can add entries and/or remove what can be dangerous in your enviroment. The url is protected with Basic Authentication without install RemoteUserBackend.

Allowed user can be restricted using settings.SYSINFO_USERS

if not exists any superuser can use the endpoint:

settings.SYSINFO_USERS = ['username',]

Quickstart

Install django-sysinfo:

pip install django-sysinfo

put it in your INSTALLED_APPS:

INSTALLED_APPS=[...
 'django_sysinfo'
]

add relevant entries in your url.conf:

urlpatterns = (
    ....
    url(r'', include(django_sysinfo.urls)),
)

or customize them:

from django_sysinfo.views import http_basic_login, sysinfo

urlpatterns = (
    url('sys/info/$', http_basic_login(sysinfo), name='sys-info'),
    url('sys/version/(?P<name>.*)/$', version, name='sys-version')
)

Known issues and limitations

There are some limitations in the metrics returned by sysinfo, anyway this package is not intended to be used as host/resources monitoring tool.

  • Disk space returns device info, any soft limits are ignored

  • Memory can be wrong in some virtual environments

History

1.0 (15 Mar 2017)

  • fixes error in json serialization

  • BACKWARD INCOMPATIBLE: by default all the sections are disabled

  • allow both string and callable in extra section

  • added new configuration parameters

  • new management command

0.3 (27 Mar 2016)

  • dropped support Django<1.6

  • add settings.SYSINFO_USERS to manage access

  • default Basic Authentication protected urls

  • removed ‘sys’ prefix from default urlpatterns

  • new ‘echo’ endpoint

0.2 (13 Feb 2016)

  • add some infos

  • output sorted to improve readibility

  • add ability to filter sections (?s=os,python)

  • add CACHES infos

  • removed command line utility

0.1.1 (20 Jan 2016)

  • improved coverage

  • fixes typos in copyright

0.1.0 (15 Jan 2015)

  • First release on PyPI.

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-sysinfo-1.0.tar.gz (19.4 kB view hashes)

Uploaded Source

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