Statistikk fra Cerebrum

Informasjon om statistikk fra Cerebrum med statsd/graphite/grafana.

1   Oversikt

Statistikk, trendanalyse og tilsvarende måling gjøres i hovedsak med statsd/graphinte/grafana.

  • Målepunkter sendes til statsd
  • Målepunkter lagres og aggregeres i graphite
  • Målepunkter vises i grafana

1.1   Målepunkter

All data som logges av Cerebrum plasseres i cerebrum.<instans>.<system>.*, f.eks.:

  • cerebrum.uio.bofhd.command.user_info.success - incr hver gang bofhd-kommandoen user_info fullfører
  • cerebrum.uio.bofhd.command.user_info.error - incr hver gang bofhd-kommandoen user_info feiler
  • cerebrum.uio.bofhd.command.user_info.time - måler tidsbruk for hver kjøring av bofhd-kommandoen user_info

1.2   Måling i Cerebrum

For å sende målepunkter til statsd må man bruke Cerebrum.modules.statsd:

import time
from Cerebrum.modules.statsd import make_client
from Cerebrum.modules.statsd.config import load_config

config = load_config()
stats = make_client(config, prefix='my-test')

# Stats will be prefixed '[<config.prefix>.]my-test'
# Use according to docs: https://statsd.readthedocs.io/

# incr <prefix>.my-test.foo
stats.incr('foo')

with stats.pipeline() as p:

    # set <prefix>.my-test.bar = 4
    p.gauge('bar', 4)

    # decr <prefix>.my-test.foo
    p.decr('foo')

with stats.timer('time'):
    # log time usage to <prefix>.my-test.time
    time.sleep(0.5)

Med config:

{
    "host": "w3prod-statsd01.uio.no",
    "port": 8125,
    "mixins": [],
    "ipv6": false,
    "prefix": "cerebrum.uio",
    "enable": true
}

1.3   Måling i testmiljø

I testmiljøer kan logging av målepunkter enkelt skrus av ved å sette enable: false i config, eller sørge for å _ikke_ ha en statsd_metrics-konfigurasjon på plass.

Viktig

Pass på å ikke logge til cerebrum.* fra testmiljøer!

For å teste logging kan en enten sette opp en egen, lokal statsd-tjeneste som man peker på i config, eller logge til et annet prefiks (f.eks. user-<brukernavn>.cerebrum.uio)

2   Grafana-dashboards

Dashboards med relevante grafer bygges og vises frem i Grafana. Dashboards bindes til organisasjon - våre dashboards ligger i hovedsak under usit (profilbilde → current org. → switch).

Av fhl
Publisert 4. mai 2022 16:02