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>
This commit is contained in:
parent
358bbcdffb
commit
aa2f562120
1 changed files with 15 additions and 3 deletions
|
|
@ -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 = "",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue