{{define "title"}}Traffic analytics · MeshTender{{end}} {{define "header"}}
Administration

Traffic Analytics

{{end}} {{define "content"}} {{if not .HasData}}
No traffic recorded yet. Stats roll up every few minutes, so check back shortly after the first visits.
{{else}}
{{.TotalReq}}
Requests · last {{.Days}}d
{{.TodayReq}}
Requests today
{{.TodayVis}}
Unique visitors today

Requests per day

{{range .Bars}}
{{end}}

Unique visitors per day

{{range .Bars}}
{{end}}

Traffic by surface

{{if .Surfaces}}{{range .Surfaces}}{{template "value-bar" .}}{{end}} {{else}}
No data.
{{end}}

Busiest pages

{{if .Paths}}{{range .Paths}}{{template "value-bar" .}}{{end}} {{else}}
No data.
{{end}}

Traffic by host

“custom” is any request whose host isn't your configured app/auth/root host — e.g. the bare IP, a health probe, or a crawler. These are the actual hosts seen.

{{if .Hosts}}{{range .Hosts}}{{template "value-bar" .}}{{end}} {{else}}
No data.
{{end}}

Top visitors

Anonymous, daily-rotating IDs (a salted hash of IP + browser). The same person gets a fresh ID each day, so a heavy daily visitor shows once per day.

{{if .Visitors}} {{range .Visitors}}
{{.Visitor}} {{.Requests}}
{{.Surface}} {{.LastPath}} · {{ts .LastSeen "datetime"}}
{{end}} {{else}}
No data.
{{end}}

Probes & scanners

Requests for things we don't serve — other stacks' admin panels, credential files, known exploit paths.
{{.ProbeReq}}
Requests · last {{.Days}}d
{{.ProbeSources}}
Distinct sources
{{if .ProbePaths}}{{range .ProbePaths}}{{template "value-bar" .}}{{end}} {{else}}
Nothing probed in this window.
{{end}}

Bots & crawlers

Clients that identify themselves as automated: search engines, uptime monitors, link previewers.
{{.BotReq}}
Requests · last {{.Days}}d
{{.BotSources}}
Distinct sources
{{if .BotPaths}}{{range .BotPaths}}{{template "value-bar" .}}{{end}} {{else}}
No crawler traffic in this window. Bots are only recorded from the point this was deployed.
{{end}}
{{.NotFoundReq}}
404s with no attack signature · last {{.Days}}d — broken links worth fixing, counted nowhere above.
{{end}} {{template "icon-arrow-left" "me-1"}}Back to admin {{end}} {{/* value-bar renders one labeled horizontal bar (label, bar, value). */}} {{define "value-bar"}}
{{.Label}} {{.Value}}
{{end}}