-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Milestone
Description
Overview
Implement the Loki instant query endpoint that queries logs/metrics at a single point in time.
Parent Issue
Part of #6 (Query Service Implementation), delegated from #7 (Loki Query Interface) and #8 (LogQL Query Compiler).
Context
The /loki/api/v1/query endpoint performs instant queries - evaluating a query at a single point in time. Currently, this endpoint returns 501 Not Implemented.
Requirements
Endpoint Specification
Request:
GET /loki/api/v1/query
POST /loki/api/v1/query
Parameters:
- query: LogQL query string (required)
- time: Evaluation timestamp (optional, defaults to now)
- limit: Maximum number of entries (optional)
- direction: forward/backward (optional)
Behavior Differences from query_range
| Aspect | query_range | query (instant) |
|---|---|---|
| Time parameter | start, end, step | single time |
| Result for logs | Streams over range | Streams at instant |
| Result for metrics | Matrix (multiple points) | Vector (single point per series) |
Implementation Approach
-
Add handler in
src/query/loki/handlers.rs:- Parse
timeparameter (default to current time) - For log queries: query small window around
time - For metric queries: evaluate at single timestamp
- Parse
-
Response format:
- Log queries:
resultType: "streams"(same as query_range) - Metric queries:
resultType: "vector"(single value per series)
- Log queries:
Vector Response Format
{
"status": "success",
"data": {
"resultType": "vector",
"result": [
{
"metric": {"job": "app", "level": "error"},
"value": [1609459200, "42"]
}
]
}
}Acceptance Criteria
-
GET /loki/api/v1/queryendpoint is implemented -
POST /loki/api/v1/queryendpoint is implemented -
timeparameter is correctly parsed and applied - Log queries return streams at the specified instant
- Metric queries return vector format (single point per series)
- Default time is current time when not specified
- Grafana instant queries work correctly
- Unit tests for endpoint
- Integration tests verify Grafana compatibility
Technical References
- Loki Query API
- Current stub:
src/query/loki/handlers.rs