Filters
Overview
When querying logs, traces, and events in groundcover, you can filter data to narrow the scope of results returned. Filters use a simple field:value syntax and support wildcards, numeric comparisons, and logical operators.
Basic Filtering
Exact Match
Match a specific value in a field.
level:errorworkload:auth-servicestatus_code:500When the value contains spaces, use quotes:
error:"failed to authenticate user"Numeric Comparisons
Compare numeric fields using >, <, >=, <=, =.
duration_seconds:>1000status_code:>=500Combine operators to create ranges:
Free Text Search
Search across all fields without specifying a field name.
Search for a phrase:
Wildcard Filtering
Wildcard filters allow pattern matching within string fields.
Prefix Match
Match values starting with a string using * at the end.
Matches: auth-service, auth-api, authentication
Suffix Match
Match values ending with a string using * at the start.
Matches: auth-service, payment-service, user-service
Substring Match
Match values containing a string using * on both sides or the ~ operator.
Matches: oauth-service, authentication, authorize-api
Field Existence
Field Has Any Value
Match records where a field exists with any non-empty value.
All records with a trace_id
All records with an error field
Field Is Empty
Match records where a field is empty.
Records with no error
Field Does Not Exist
Use negation with the any value filter to match records where a field doesn't exist.
Records without a trace_id field
Negation
Exclude results by prefixing with -.
Exclude debug logs
Exclude this phrase from results
Boolean Filtered Queries
Combine multiple filters using logical operators.
Implicit AND
Multiple filters on different fields are automatically combined with AND.
Returns logs where level = error and namespace = production.
Implicit OR (Same Field)
Important: Multiple filters on the same field without an explicit operator are automatically combined with OR. This is different from LogsQL's behavior.
Equivalent to: level:error OR level:warn OR level:fatal
Explicit AND
Use AND to explicitly combine conditions.
Explicit OR
Use OR to match records satisfying any condition.
NOT
Use NOT to explicitly negate a condition (equivalent to - prefix).
Same as: -level:debug
API logs excluding debug and trace
Parentheses
Use parentheses to control operator precedence.
Critical issues in production
Complex nested logic:
Differences from LogsQL
groundcover Query Language is influenced by LogsQL but has important differences:
Case Sensitivity
groundcover: Case-insensitive by default
All three match the same records
For case-sensitive matching, use :=:
LogsQL: Case-sensitive by default
Implicit OR on Same Field
groundcover: Multiple filters on the same field are automatically combined with OR
Automatically becomes: level:error OR level:warn
LogsQL: Requires explicit OR operator
Last updated
