Web-Analyse ohne Cookies
Aggregierte Seitenaufrufe pro Anwendung ohne JavaScript, Cookies oder Besucherkennungen aktivieren, lesen und exportieren.
obhut zählt Seitenaufrufe direkt am Edge — ohne JavaScript, ohne Cookies, ohne Besucherkennung und ohne gespeicherte IP-Adressen. Es gibt kein Skript, das Sie einbinden müssen. Gezählt werden ausschließlich aggregierte Zahlenreihen, nie einzelne Anfragen.
Die Zahlen sind Seitenaufrufe, keine eindeutigen Besucher. Ohne Besucherkennung lässt sich eine Person nicht über mehrere Aufrufe hinweg wiedererkennen — das ist der Zweck, nicht eine Einschränkung.
Aktivieren
Die Erfassung ist pro Anwendung ausdrücklich opt-in und standardmäßig aus.
Aktivieren Sie sie im Dashboard an der Anwendung oder per API (Rolle admin):
curl --fail-with-body -X PATCH \
"https://api.obhut.io/tenants/$TENANT/resources/$RESOURCE_ID" \
--header "Authorization: Bearer $OBHUT_PAT" \
--header 'Content-Type: application/json' \
--data '{"webAnalyticsEnabled": true}'Setzen Sie den Wert auf false, stoppt die Erfassung sofort.
Was gezählt wird
Ein Aufruf zählt nur, wenn alle Bedingungen erfüllt sind:
- die Methode ist
GET, - der finale
Content-Typeder Antwort isttext/html, - der Host gehört zu einer Ihrer Anwendungen.
Weiterleitungen und reine Text-Fehler oder -Ablehnungen sind damit keine Seitenaufrufe. Statisch ausgelieferte und getunnelte HTML-Seiten zählen gleich.
Pro Stunde, Anwendung, normalisiertem Pfad und Statusklasse (2xx, 3xx, 4xx,
5xx) wird genau ein Zähler geführt — mehr wird nicht gespeichert.
Pfad-Normalisierung
Query-Strings erreichen den Normalisierer nie. Pfade werden vereinheitlicht:
führender /, zusammengefasste Mehrfach-Slashes, begrenzte Länge, und
UUID-, rein numerische sowie lange zufällige Segmente werden zu :id. Die
Groß-/Kleinschreibung bleibt erhalten, weil URL-Pfade sie unterscheiden können.
Pro Anwendung und Minute werden höchstens 100 verschiedene Pfade geführt; jeder
weitere fällt in den Sammelwert __other__. Steht __other__ in Ihren Daten,
ist die Rangfolge der Top-Pfade daher nicht mathematisch exakt.
Auslesen
Die Leseroute liegt hinter dem security_reader-Gate — ein
API-Token mit Rolle auditor, member oder admin genügt.
curl --fail-with-body \
"https://api.obhut.io/tenants/$TENANT/web-analytics?from=2026-06-01&to=2026-06-30" \
--header "Authorization: Bearer $OBHUT_PAT"Ohne from/to erhalten Sie die letzten 7 Tage; resourceId grenzt auf eine
Anwendung ein. Die Antwort liefert Stunden-Buckets (grain: "hour") mit
total, series, statusClasses und topPaths sowie die geltenden
Aufbewahrungsfristen.
| Feld | Bedeutung |
|---|---|
total | Summe der Seitenaufrufe im Zeitraum |
series | Ein Zähler je Stunden-Bucket |
statusClasses | Aufteilung nach 2xx/3xx/4xx/5xx |
topPaths | Meistgefragte normalisierte Pfade, ggf. inkl. __other__ |
overflowed | true, wenn ein Zähler die exakt darstellbare Größe überschreitet |
Exportieren
curl --fail-with-body \
"https://api.obhut.io/tenants/$TENANT/web-analytics/export?format=csv&from=2026-06-01&to=2026-06-30" \
--header "Authorization: Bearer $OBHUT_PAT" \
--output web-analyse.csvDie CSV-Datei beginnt mit dieser Kopfzeile:
bucket_hour,resource_id,normalized_path,status_class,html_requestsMit format=json erhalten Sie dieselben Zeilen als JSON. Der Export ist auf
50.000 Zeilen begrenzt — darüber antwortet die API mit 413 und
export_too_large, dann grenzen Sie den Zeitraum weiter ein.
Aufbewahrung
Minuten-Buckets werden 7 Tage vorgehalten, Stunden-Buckets 90 Tage. Danach werden sie gelöscht. Da nur Aggregate gespeichert werden, gibt es keine Rohdaten, die sich nachträglich einer Person zuordnen ließen.