apache / apache/texera

[Observability] Tenant-scoped query gateway and dashboard shell

Open
#5,370 2 comments 0 reactions 1 assignee Claimed by @Ma77Ball View on GitHub
Dominant language
Scala
Stars
314
Forks
187
Avg merge
1d 21h
Merged PRs (30d)
214

Description

### Feature Summary
The dashboard needs a read path to query the telemetry backends that enforces tenant isolation and rate limits, plus an Angular shell to host the per-signal panels. Without it there is no safe, user-facing surface for observability data.
### Proposed Solution or Design
- Backend: `BackendClient` (HTTP client to the telemetry backends); `ScopeResolver` (derives the caller's tenant scope and constrains every query to it); `RateLimiter`, `AuditLogger`, and `GatewayContext` (per-request rate limiting, audit logging, and shared request context); typed request DTOs with validators (time window, page size, free text, service name); `ObservabilityResources` with an `/observability/health` endpoint registered in `TexeraWebApplication`; `RequestContextMdcFilter` and `UserContextMdcFilter` to inject request and user context into the logging MDC; `ObservabilityGatewayConfig` and its configuration file.
- Frontend: an observability dashboard page, route, and navigation entry; `observability.service`, `observability.types`, and the `traces-pivot.service`; health gating so each tab is guarded by a per-signal reachability check, and an unreachable signal renders an explicit state rather than a broken panel.
- Tenancy enforcement and rate limiting are the security-critical surface here and warrant close review.
### Affected Area
Workflow UI, Other
### Related
Part of #4070. Depends on #5369. Signal panels tracked in #5371, #5372, #5373, and #5374.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.