{{define "app_errors"}}{{template "top" .}} {{if .Flash}}{{end}} {{if .FlashErr}}{{end}} {{template "appnav" .}} {{template "lognav" .}}

Errors

{{if .ErrsErr}}{{end}}

Sources live: {{if .ErrWin.Sources}}{{range $i, $s := .ErrWin.Sources}}{{if $i}}, {{end}}{{$s}}{{end}}{{else}}none yet{{end}}. Counts are to the nearest flush. Messages are redacted for addresses and credentials before they are stored; treat that as a floor, not a guarantee.

{{if .ErrFP}} {{with .ErrWin.Records}}

Occurrences of {{$.ErrFP}}

All groups

{{if $.ErrWin.Truncated}}

Showing the newest {{len $.ErrWin.Records}} occurrences of a larger window — narrow the window, or use carlos errors for all of them.

{{end}} {{range .}}
{{if .Release}}{{end}} {{if .Path}}{{end}} {{if .Stack}}{{end}} {{if .Fields}}{{end}}
Last{{.Last.UTC.Format "2006-01-02 15:04:05"}}
Count{{.Count}}
Source{{.Source}}{{if .Kind}} / {{.Kind}}{{end}}
Host{{.Host}}
Release{{.Release}}
Path{{.Path}}{{if .Status}} → {{.Status}}{{end}}
Message{{.Name}}
Stack
{{.Stack}}
Fields{{range $k, $v := .Fields}}{{$k}}={{$v}} {{end}}
Logsaround this time
{{end}} {{else}}

No occurrences of this group in the window.

{{end}} {{else if .ErrWin.Groups}} {{if .ErrWin.Truncated}}

Showing {{len .ErrWin.Groups}} groups of a larger window — counts are within what was read. Narrow the window, or use carlos errors for all of them.

{{end}}
{{range .ErrWin.Groups}}{{end}}
Last seenFirst seenCountSourceErrorHostsReleases
{{.Last.UTC.Format "2006-01-02 15:04"}} {{.First.UTC.Format "2006-01-02 15:04"}} {{.Count}}{{if eq .FP "_overflow"}} (overflow){{end}} {{.Source}}{{if .Kind}} {{.Kind}}{{end}}{{if .Level}} {{.Level}}{{end}} {{.Name}} {{range $i, $h := .Hosts}}{{if $i}}, {{end}}{{$h}}{{end}} {{range $i, $r := .Releases}}{{if $i}}, {{end}}{{$r}}{{end}}

Times are UTC. The same view from a terminal: carlos errors --app {{.AppName}} --since {{.ErrSince}}.

{{else if not .ErrsErr}}

No errors in this window.

Log lines at {{.ErrWin.LogLevel}} and above and the app's own 500s appear here on their own (a 502, 503 or 504 is on Availability); a JavaScript or server-side error needs the hook (coming in a later step). The level is set on the Settings tab. The same view from a terminal: carlos errors --app {{.AppName}}.

{{end}} {{template "bottom" .}}{{end}}