Skip to content

[Observability] PR4: query gateway core + dashboard shell #5370

@Ma77Ball

Description

@Ma77Ball

PR4: Query gateway core and dashboard shell

Introduces the tenant-scoped read path the dashboard queries, plus the Angular shell that hosts the per-signal panels. This PR warrants the closest review: it enforces tenancy and rate limiting and is the first user-visible surface.

Backend

  • BackendClient: HTTP client to the telemetry backends.
  • ScopeResolver: derives the caller's tenant scope and constrains every query to it.
  • RateLimiter, AuditLogger, GatewayContext: per-request rate limiting, audit logging, and shared request context.
  • dtos.scala: typed request objects with validators (time window, page size, free text, service name).
  • ObservabilityResources with the /observability/health endpoint, registered in TexeraWebApplication.
  • RequestContextMdcFilter and UserContextMdcFilter: inject request and user context into the logging MDC.
  • ObservabilityGatewayConfig and its configuration file.

Frontend

  • Observability dashboard page, route, and navigation entry.
  • observability.service, observability.types, and the traces-pivot.service consumed by the traces panel.
  • Health gating: each tab is guarded by the per-signal reachability check; an unreachable signal renders an explicit state rather than a broken panel. Signal panels follow in PR5 through PR8.

Notes

Demoable on merge (health endpoint and shell), with the feature still default-off.

Part of #4070. Stacked on PR3 (#5369).
Branch: obs/pr4/gateway-core.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions