Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Health Check is an application that provides an API to check the health health_check of some parts and some utilities like ping requests. This application can works as standalone or included in a Django project.
Health Check
:Version: 3.4.1 :Status: Production/Stable :Author: José Antonio Perdiguero López
Health Check is an application that provides an API to check the health status of some parts and some utilities like ping requests. This application can works as standalone or included in a Django project.
This application defines the following terms:
Provider Function that does a quick check or stats gathering and returns a json serializable value, such as dict, list or simple types.
Resource A service or functionality whose status needs to be known.
Said this, providers are grouped by resources. So you can use resource as a simple group, or as a component of your application. E.g: A resource that represents your database with some checks over it, such as simple ping, check if your application tables are created, if it contains data...
.. code:: bash
pip install health-check
2. (Django) Add PROJECT_PATH to your django settings module. 3. (Django) Add health_check to your INSTALLED_APPS settings like this:
.. code:: python
INSTALLED_APPS = (
...
'health_check',
)
4. (Django) Add Health Check urls to your project urls:
.. code:: python
urlpatterns = [
...
url(r'^health/', include('health_check.urls')),
]
Health Check provides a mechanism to add new custom check functions through check providers. Each check provider will generate a new API method with an URL that uses the name of the provider. These functions must accept *args and **kwargs and will return a JSON-serializable object through json.dumps() method, for example a ping function:
.. code:: python
def ping(*args, **kwargs):
return {'pong': True}
By default Health Check provides the follow checks:
Ping A ping to application.
URL: /api/health/ping
Databases Check if databases are running.
URL: /api/health/databases
Caches Check if caches are running.
URL: /api/health/caches
Celery Check if celery workers defined in settings are running.
URL: `/api/health/celery`
Databases stats Show stats for all databases.
URL: `/api/stats/databases`
Celery stats Show celery worker stats.
URL: `/api/stats/celery`
Code Source code stats such as current active branch, last commit, if debug is active...
URL: `/api/stats/code`
The main goal of this application is to provide an easy way to run checks over defined resources, so there are different ways to do it.
Health Check provides a command to query current health of a resource. This command can be call as:
.. code:: bash
health_check {resource} [options]
Call a specific provider from a resource:
.. code:: bash
health_check {resource} {provider} [options]
To get current status of health checks, and exit with an error if some check is failing:
.. code:: bash
health_check health -e
Each resource has its own set of options that can be displayed through command help:
.. code:: bash
health_check -h
To run all providers of a specific resource:
.. code:: python
from health_check.providers import Resource
resource = Resource('resource_name')
providers_result = resource()
A single provider can be executed:
.. code:: python
from health_check.providers import Provider
provider = Provider('path.to.provider_function')
provider_result = provider()
Health check adds some useful behavior to your Django application.
A website that shows Health Check data is available in this application. It's possible access to follow URLs to get a detailed view of your system health status. Those three pages will show results of providers configured (as explained in settings section)::
http://www.website.com/health/
http://www.website.com/health/health/
http://www.website.com/health/stats/
Health Check API can be used as a standalone application including only their urls:
.. code:: python
urlpatterns = [
...
url(r'^health/', include('health.api.urls')),
]
This API have a single url for each provider, that are grouped by resources. Each provider can be queried alone, returning his current health status::
http://your_domain/health/api/health/ping
Also there is a resource view that will return the health status of all providers::
http://your_domain/health/api/health
For last, there is a root view that will return the health status of all providers from all resources::
http://your_domain/health/api
Previous command can be used as Django management command:
.. code:: bash
python manage.py health_check {resource} {provider} [options]
Health check settings can be added directly to Django settings module or create an specific module for them. If a custom module (or class) is used, you must specify it through HEALTH_CHECK_SETTINGS environment variable.
To use a custom module for settings is necessary to specify the full path: project.package.settings. The same applies to objects: project.package.settings:SettingsObject.
List of additional check providers. Each provider consists in a tuple of name, function complete path, args and kwargs.
Example:
.. code:: python
health_check_providers = {
'resource': (
('test', 'application.module.test_function', [1, 2], {'foo': 'bar'}),
)
}
Default:
.. code:: python
providers = getattr(settings, 'health_check_providers', {
'health': (
('ping', 'health_check.providers.health.ping', None, None),
('databases', 'health_check.providers.django.health.databases', None, None),
('caches', 'health_check.providers.django.health.caches', None, None),
),
'stats': (
('databases', 'health_check.providers.django.stats.databases', None, None),
('code', 'health_check.providers.stats.code', None, None),
)
}
List of hostname from celery workers to be checked. If any worker is defined, two additional providers listed previously will be added to default set.
Default:
.. code:: python
health_check_celery_workers = ()
FAQs
Health Check is an application that provides an API to check the health health_check of some parts and some utilities like ping requests. This application can works as standalone or included in a Django project.
We found that health-check demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.