briar monitor · {{ system.hostname }}

rendered
{{ system.now }}
uptime
{{ system.uptime }} · {{ system.cpu_count }} CPU
dashboard
pid {{ dashboard_process.pid }} · up {{ dashboard_process.uptime }} · {{ dashboard_process.request_count }} req · render {{ dashboard_process.last_render_ms }} ms
{% if deploy.present %}
sha
{{ deploy.short_sha }} · {{ deploy.branch }}
subject
{{ deploy.subject }}
author
{{ deploy.author }}
committed
{{ deploy.committed }}
remote
{{ deploy.remote }}
{% endif %}

at a glance

disk
{{ system.disk_used_pct }}%
{{ system.disk_used_gb }} / {{ system.disk_total_gb }} GB used
memory
{{ system.mem_used_pct }}%
{{ system.mem_used_mb }} / {{ system.mem_total_mb }} MB used
load avg (1/5/15m)
{{ system.load_1 }}
{{ system.load_5 }} · {{ system.load_15 }} ({{ system.cpu_count }} cpu)
scheduler process
{% if scheduler_process.present %}up{% else %}down{% endif %}
{% if scheduler_process.present %}pid {{ scheduler_process.pid }}{% else %}no `briar runbook serve` running{% endif %} · {{ cycle_outcomes.total_cycles }} cycles to date

connectivity {{ connectivity.rows|length }} target(s)

{% for r in connectivity.rows %} {% endfor %}
targetstatuslatency
{{ r.target }} {% if r.reachable %}reachable {% else %}unreachable
{{ r.error }} {% endif %}
{{ r.latency_ms }} ms

schedulers {{ schedules.count }} (company, task) job(s)

{% if not schedules.rows %}

no schedules declared in {{ schedules.dir if schedules.dir else "examples/" }}

{% else %} {% for r in schedules.rows %} {% endfor %}
companytaskeverynext fire (UTC)extractors
{{ r.company }} {{ r.task }} {{ r.every }} {{ r.next_fire or "(unknown)" }} {% for x in r.extractors %}{{ x }}{% endfor %}
{% endif %}

github api quota last 24h · {{ gh_stats.total }} GETs

remaining (last)
{% if gh_stats.last_remaining >= 0 %}{{ gh_stats.last_remaining }}{% else %}—{% endif %}
authenticated quota
min seen (24h)
{% if gh_stats.min_remaining >= 0 %}{{ gh_stats.min_remaining }}{% else %}—{% endif %}
closest to exhaustion
cache hits (304)
{{ gh_stats.cache_hit_count }}
free per gh docs
hit rate
{{ gh_stats.hit_rate_pct }}%
{{ gh_stats.ok_count }} live · {{ gh_stats.err_count }} err
{% if gh_stats.recent_cache_hits %}
recent ETag cache hits ({{ gh_stats.cache_hit_count }} total) {% for h in gh_stats.recent_cache_hits %} {% endfor %}
atpath
{{ h.at }}{{ h.path }}
{% endif %}

recent cycles last {{ cycle_outcomes.cycles|length }} (of {{ cycle_outcomes.total_cycles }})

{% if not cycle_outcomes.cycles %}

no parsed cycles yet — wait for the next run or check the log

{% else %} {% for c in cycle_outcomes.cycles | reverse %} {% endfor %}
cycleresults
{{ c.finished_at or c.started_at }} {% for row in c.rows %} {{ row.company }}{% if row.status == 'ok' %} · {{ row.bytes }}B{% else %} · failed{% endif %} {% endfor %}
{% endif %}

recent activity {{ scheduler_log.lines|length }} line(s)

{% if not scheduler_log.present %}

no log at {{ scheduler_log.path }}

{% else %} {% if scheduler_log.last_cycle %}

last cycle: {{ scheduler_log.last_cycle }}

{% endif %}
{% for line in scheduler_log.lines %}{{ line }}
{% endfor %}
{% endif %}