Beispiel #1
0
async def metrics(request):
    """Prometheus compatible metrics.

    Naming convention:
    https://prometheus.io/docs/practices/naming/
    """
    return web.Response(
        text=format_dataclass_for_prometheus(await get_metrics()))
Beispiel #2
0
def test_format_dataclass_for_prometheus():
    @dataclass
    class Simple:
        a: int
        b: float
        c: str

    assert format_dataclass_for_prometheus(Simple(1, 2.2,
                                                  "3")) == 'a 1\nb 2.2\nc "3"'

    @dataclass
    class Tagged:
        d: Simple
        e: str

    assert format_dataclass_for_prometheus(Tagged(Simple(
        1, 2.2, "3"), "e")) == 'd{a=1,b=2.2,c="3"} 1\ne "e"'
Beispiel #3
0
async def metrics(request):
    """Prometheus compatible metrics.

    Naming convention:
    https://prometheus.io/docs/practices/naming/
    """
    shared_stats = request.config_dict["shared_stats"]
    return web.Response(
        text=format_dataclass_for_prometheus(await get_metrics(shared_stats)))
Beispiel #4
0
def test_metrics():
    metrics = Metrics(
        pyaleph_build_info=BuildInfo(
            python_version='3.8.0',
            version='v999',
        ),
        pyaleph_status_sync_messages_total=123,
        pyaleph_status_sync_pending_messages_total=456,
    )

    assert format_dataclass_for_prometheus(metrics) == (
        'pyaleph_build_info{python_version="3.8.0",version="v999"} 1\n'
        'pyaleph_status_sync_messages_total 123\n'
        'pyaleph_status_sync_pending_messages_total 456')
Beispiel #5
0
def test_metrics():
    metrics = Metrics(
        pyaleph_build_info=BuildInfo(
            python_version='3.8.0',
            version='v999',
        ),
        pyaleph_status_peers_total=0,
        pyaleph_status_sync_messages_total=123,
        pyaleph_status_sync_pending_messages_total=456,
        pyaleph_status_sync_pending_txs_total=0,
        pyaleph_status_chain_eth_last_committed_height=0,
    )

    assert format_dataclass_for_prometheus(metrics) == (
        'pyaleph_build_info{python_version="3.8.0",version="v999"} 1\n'
        'pyaleph_status_peers_total 0\n'
        'pyaleph_status_sync_messages_total 123\n'
        'pyaleph_status_sync_pending_messages_total 456\n'
        'pyaleph_status_sync_pending_txs_total 0\n'
        'pyaleph_status_chain_eth_last_committed_height 0')