release 1.7.3: monitoring pages as first-class suite section
README section lists public HTML report paths; sticky "What this monitors" adds a dedicated block that monpages/public pages are part of taler-monitoring.
This commit is contained in:
parent
4cfb1412aa
commit
c73e7d62b4
5 changed files with 133 additions and 21 deletions
|
|
@ -65,6 +65,25 @@ def ui(lang: str, key: str, **kwargs) -> str:
|
|||
"stack_i4": "HTML host: {host}",
|
||||
"stack_i5": "Timer: host-agent path + 4h · /monitoring on bank, exchange, merchant fronts",
|
||||
"stack_i_phases": "Log header phases= {phases}",
|
||||
"pages_title": "Monitoring pages (suite HTML)",
|
||||
"pages_summary": "Public sticky-bar reports · phase monpages · part of taler-monitoring",
|
||||
"pages_i1": "These HTML reports are generated by taler-monitoring (site-gen/console_to_html.py + host-agent)",
|
||||
"pages_i2": "Stack pages: /monitoring/ on bank, exchange, and merchant public hosts",
|
||||
"pages_i3": "Suite pages on taler.hacktivism.ch: /taler-monitoring-surface/, /taler-monitoring-aptdeploy/, /taler-monitoring-mattermost/, /taler-monitoring-mail/",
|
||||
"pages_i4": "Phase monpages: outside-in check that each public FQDN serves real suite HTML (not merchant JSON code 21)",
|
||||
"pages_i5": "Host-agent publishes staging → DEPLOY_WWW_ROOT; Caddy must handle paths (see site-gen/caddy-monitoring-handles.snippet)",
|
||||
"pages_i6": "This page host: {host} · path label: {label}",
|
||||
"pages_section_lead": "Monitoring pages themselves (suite):",
|
||||
"mm_title": "Mattermost chat health",
|
||||
"mm_summary": "mattermost.taler.net · SPA + /api/v4/system/ping · TLS",
|
||||
"mm_i1": "Outside-in phase mattermost (default https://mattermost.taler.net)",
|
||||
"mm_i2": "Landing SPA, /api/v4/system/ping JSON, /login, TLS certificate expiry",
|
||||
"mm_i3": "HTML on taler.hacktivism.ch /taler-monitoring-mattermost/",
|
||||
"mail_title": "Mail (MX / SMTP / IMAP)",
|
||||
"mail_summary": "firefly + pixel/TSA · catalog mail-catalog.conf",
|
||||
"mail_i1": "Outside-in phase mail: MX, SMTP/IMAP ports and handshakes, SPF/DMARC",
|
||||
"mail_i2": "Domains: taler.net & gnunet.org (firefly), taler-systems.com (pixel / mail.anastasis.lu)",
|
||||
"mail_i3": "HTML on taler.hacktivism.ch /taler-monitoring-mail/",
|
||||
"footer": "Console-style render of taler-monitoring output. Sticky bar: green = clean · yellow = warnings · red = errors. Commit pins the exact tree used for this run.",
|
||||
"redirect_fail": "has failures.",
|
||||
"redirect_see": "See {link} for the full console log, error index, and sticky status bar.",
|
||||
|
|
@ -118,7 +137,26 @@ def ui(lang: str, key: str, **kwargs) -> str:
|
|||
"stack_i4": "Hôte HTML : {host}",
|
||||
"stack_i5": "Minuterie : host-agent path + 4 h · /monitoring sur bank, exchange, fronts marchands",
|
||||
"stack_i_phases": "En-tête de journal phases= {phases}",
|
||||
"footer": "Rendu console de taler-monitoring. Barre collante : vert = OK · jaune = avertissements · rouge = erreurs. Le commit fixe l'arbre exact de cette exécution.",
|
||||
"pages_title": "Pages de monitoring (HTML de la suite)",
|
||||
"pages_summary": "Rapports publics sticky-bar · phase monpages · partie de taler-monitoring",
|
||||
"pages_i1": "Ces rapports HTML sont générés par taler-monitoring (site-gen/console_to_html.py + host-agent)",
|
||||
"pages_i2": "Pages pile : /monitoring/ sur bank, exchange et hôtes marchands publics",
|
||||
"pages_i3": "Pages suite sur taler.hacktivism.ch : /taler-monitoring-surface/, /taler-monitoring-aptdeploy/, /taler-monitoring-mattermost/, /taler-monitoring-mail/",
|
||||
"pages_i4": "Phase monpages : contrôle outside-in que chaque FQDN public sert le HTML de la suite (pas JSON merchant code 21)",
|
||||
"pages_i5": "Host-agent publie staging → DEPLOY_WWW_ROOT ; Caddy doit gérer les chemins (voir site-gen/caddy-monitoring-handles.snippet)",
|
||||
"pages_i6": "Hôte de cette page : {host} · libellé : {label}",
|
||||
"pages_section_lead": "Les pages de monitoring elles-mêmes (suite) :",
|
||||
"mm_title": "Santé du chat Mattermost",
|
||||
"mm_summary": "mattermost.taler.net · SPA + /api/v4/system/ping · TLS",
|
||||
"mm_i1": "Phase outside-in mattermost (défaut https://mattermost.taler.net)",
|
||||
"mm_i2": "SPA d'accueil, /api/v4/system/ping JSON, /login, expiration du certificat TLS",
|
||||
"mm_i3": "HTML sur taler.hacktivism.ch /taler-monitoring-mattermost/",
|
||||
"mail_title": "Mail (MX / SMTP / IMAP)",
|
||||
"mail_summary": "firefly + pixel/TSA · catalogue mail-catalog.conf",
|
||||
"mail_i1": "Phase outside-in mail : MX, ports SMTP/IMAP et handshakes, SPF/DMARC",
|
||||
"mail_i2": "Domaines : taler.net & gnunet.org (firefly), taler-systems.com (pixel / mail.anastasis.lu)",
|
||||
"mail_i3": "HTML sur taler.hacktivism.ch /taler-monitoring-mail/",
|
||||
"footer": "Rendu console de taler-monitoring. Barre collante : vert = OK · jaune = avertissements · rouge = erreurs. Le commit fixe l'arbre exact de cette exécution.",
|
||||
"redirect_fail": "a des échecs.",
|
||||
"redirect_see": "Voir {link} pour le journal console complet, l'index d'erreurs et la barre de statut.",
|
||||
"ago_s": "il y a {n}s",
|
||||
|
|
@ -320,6 +358,19 @@ def extract_phases(log_text: str) -> str:
|
|||
|
||||
|
||||
|
||||
|
||||
def _pages_items(lang: str, host: str, label: str) -> list[str]:
|
||||
"""Dedicated section: monitoring HTML pages are part of taler-monitoring."""
|
||||
return [
|
||||
ui(lang, "pages_section_lead"),
|
||||
ui(lang, "pages_i1"),
|
||||
ui(lang, "pages_i2"),
|
||||
ui(lang, "pages_i3"),
|
||||
ui(lang, "pages_i4"),
|
||||
ui(lang, "pages_i5"),
|
||||
ui(lang, "pages_i6", host=host, label=label),
|
||||
]
|
||||
|
||||
def monitoring_scope(
|
||||
page_label: str,
|
||||
hostname: str,
|
||||
|
|
@ -337,35 +388,65 @@ def monitoring_scope(
|
|||
lang = "fr"
|
||||
|
||||
if "surface" in label:
|
||||
items = [
|
||||
ui(lang, "surface_i1"),
|
||||
ui(lang, "surface_i2"),
|
||||
ui(lang, "surface_i3"),
|
||||
ui(lang, "surface_i4", host=host),
|
||||
ui(lang, "surface_i5"),
|
||||
] + _pages_items(lang, host, label)
|
||||
return {
|
||||
"kind": "surface",
|
||||
"lang": lang,
|
||||
"title": ui(lang, "surface_title"),
|
||||
"summary": ui(lang, "surface_summary"),
|
||||
"items": [
|
||||
ui(lang, "surface_i1"),
|
||||
ui(lang, "surface_i2"),
|
||||
ui(lang, "surface_i3"),
|
||||
ui(lang, "surface_i4", host=host),
|
||||
ui(lang, "surface_i5"),
|
||||
],
|
||||
"items": items,
|
||||
}
|
||||
|
||||
if "aptdeploy" in label or "apt-deploy" in label or "apt_src" in label:
|
||||
items = [
|
||||
ui(lang, "apt_i1"),
|
||||
ui(lang, "apt_i2"),
|
||||
ui(lang, "apt_i3"),
|
||||
ui(lang, "apt_i4"),
|
||||
ui(lang, "apt_i5"),
|
||||
ui(lang, "apt_i6", host=host),
|
||||
ui(lang, "apt_i7"),
|
||||
] + _pages_items(lang, host, label)
|
||||
return {
|
||||
"kind": "aptdeploy",
|
||||
"lang": lang,
|
||||
"title": ui(lang, "apt_title"),
|
||||
"summary": ui(lang, "apt_summary"),
|
||||
"items": [
|
||||
ui(lang, "apt_i1"),
|
||||
ui(lang, "apt_i2"),
|
||||
ui(lang, "apt_i3"),
|
||||
ui(lang, "apt_i4"),
|
||||
ui(lang, "apt_i5"),
|
||||
ui(lang, "apt_i6", host=host),
|
||||
ui(lang, "apt_i7"),
|
||||
],
|
||||
"items": items,
|
||||
}
|
||||
|
||||
if "mattermost" in label:
|
||||
items = [
|
||||
ui(lang, "mm_i1"),
|
||||
ui(lang, "mm_i2"),
|
||||
ui(lang, "mm_i3"),
|
||||
] + _pages_items(lang, host, label)
|
||||
return {
|
||||
"kind": "mattermost",
|
||||
"lang": lang,
|
||||
"title": ui(lang, "mm_title"),
|
||||
"summary": ui(lang, "mm_summary"),
|
||||
"items": items,
|
||||
}
|
||||
|
||||
if label in ("taler-monitoring-mail", "mail") or label.endswith("-mail"):
|
||||
items = [
|
||||
ui(lang, "mail_i1"),
|
||||
ui(lang, "mail_i2"),
|
||||
ui(lang, "mail_i3"),
|
||||
] + _pages_items(lang, host, label)
|
||||
return {
|
||||
"kind": "mail",
|
||||
"lang": lang,
|
||||
"title": ui(lang, "mail_title"),
|
||||
"summary": ui(lang, "mail_summary"),
|
||||
"items": items,
|
||||
}
|
||||
|
||||
phase_txt = phases or "urls · inside · versions"
|
||||
|
|
@ -392,6 +473,7 @@ def monitoring_scope(
|
|||
if phases:
|
||||
items.insert(2, ui(lang, "stack_i_phases", phases=phases))
|
||||
|
||||
items = items + _pages_items(lang, host, label)
|
||||
return {
|
||||
"kind": role,
|
||||
"lang": lang,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue