Log filtering cleanup and observability improvements #45

Merged
eblume merged 7 commits from feature/log-filtering-cleanup into main 2026-01-22 17:30:08 -08:00
Showing only changes of commit aa2f562120 - Show all commits

Add logfmt parser for k8s log level extraction

The JSON parser only works for JSON-formatted logs. Many Go services
(Loki, Prometheus, etc.) use logfmt format. Add logfmt parser to extract
level, caller, and component labels for better log filtering in Grafana.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Erich Blume 2026-01-22 17:08:26 -08:00

View file

@ -89,7 +89,7 @@ data:
expression = "v1 Endpoints is deprecated"
}
// Try to parse JSON logs
// Try to parse JSON logs (e.g., structured app logs)
stage.json {
expressions = {
level = "level",
@ -98,10 +98,22 @@ data:
}
}
// Extract level from parsed JSON if available
// Try to parse logfmt logs (e.g., Loki, Prometheus, Go services)
stage.logfmt {
mapping = {
level = "level",
ts = "ts",
caller = "caller",
component = "component",
}
}
// Extract labels from parsed data (works for both JSON and logfmt)
stage.labels {
values = {
level = "",
level = "",
caller = "",
component = "",
}
}
}