Skip to content

amenezes/async_metrics

Repository files navigation

ci codecov PyPI version PyPI - Python Version Code style: black

async_metrics

asyncio metrics for your app.

Available metrics:

  • asyncio: event loop status, policy and exception handler and tasks info;
  • system: uptime, platform, recursion limit, default encoding, phisical and virtual processors, system load and process user;
  • dependencies: application dependencies;
  • python: implementation, version and PATH;
  • process: application process info like: threads, open files, connections, context switch and childrens PID;
  • partitions: partitions usage;
  • about: async_metrics version, project: url, issues and release pages.

dashboard

Installation

Install and update using pip:

pip install -U async_metrics

Usage

AIOHTTP

from aiohttp import web
from async_metrics.ext.aiohttp import setup_async_metrics


app = web.Application()
setup_async_metrics(app)

web.run_app(app, host="0.0.0.0")

Flask

from flask import Flask
from async_metrics.ext.flask import setup_async_metrics

app = Flask(__name__)
setup_async_metrics(app)

@app.route('/')
def hello_world():
    return 'Hello, World!'

Examples

Clone the repository, install the dependencies and follow the following steps:

AIOHTTP

python examples/aiohttp_example.py

For web UI dashboard access:

Flask

FLASK_APP=examples/flask_example.py flask run

For web UI dashboard access:

CLI

Installation

pip install async_metrics[cli]

Usage

python -m async_metrics show -h
Usage: python -m async_metrics show [OPTIONS] [ADDRESS]

Options:
  --asyncio     Show summary information about async environmen.
  --system      Show information about system environment.
  --deps        Show applications dependencies.
  --python      Show information about current python environment.
  --process     Show summary information about application process.
  --partitions  Show summary information about disk partition.
  --about       Show information about async_metrics.
  -h, --help    Show this message and exit.

ADDRESS can be set via environment variable ASYNC_METRICS_HOST

Acessing AIOHTTP example metrics:

# default request URL: http://localhost:8080/async_metrics
python -m async_metrics show --system

Acessing Flask example metrics:

python -m async_metrics show http://localhost:5000/async_metrics --system

Links