Skip to content

☂️ [Query] Service Implementation #6

@frisbeeman

Description

@frisbeeman

Overview

The Query Service provides query capabilities for observability data stored in Iceberg tables, implementing a Loki-compatible query interface with LogQL support and DataFusion-based optimizations.

Context

IceGate uses Apache DataFusion as its query engine, providing high-performance analytical queries over Arrow-backed data. The Query Service:

  • Exposes a Loki-compatible HTTP API for logs queries
  • Compiles LogQL queries to DataFusion logical plans
  • Optimizes query execution for time-series workloads
  • Supports both log record queries and metric aggregations from logs

Sub-Tasks

This parent issue tracks the following implementation tasks:

Core Implementation

LogQL Features (delegated from #8)

Acceptance Criteria

  • Query service accepts LogQL queries via HTTP API
  • LogQL is correctly compiled to DataFusion logical plans
  • Both logs queries and metric queries are supported
  • Query plans are optimized for time-series patterns
  • Datasource node efficiently reads from Iceberg tables
  • Query performance meets SLA requirements
  • Unit and integration tests cover all query types
  • Documentation is updated with API examples

Dependencies

  • Apache DataFusion 50.3.0 (already in Cargo.toml)
  • Iceberg DataFusion 0.7.0 (already in Cargo.toml)
  • HTTP server framework (axum)
  • LogQL parser (ANTLR4)

Implementation Notes

Located in: src/bin/query.rs

Current status: Core implementation complete (~70%), feature gaps tracked in sub-tasks.

Technical References

Sub-issues

Metadata

Metadata

Assignees

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions