Skip to content

DNSPolicy View: Metrics Tab with Perses Panels #683

Description

@R-Lawton

Context

Add a Metrics tab to the DNSPolicy details page showing DNS record health and provider metrics using embedded Perses panels. This answers: "Are my DNS records healthy? Are DNS provider operations succeeding?"

Depends on the shared Perses infrastructure established in #220.

Requirements

New Metrics tab

Add a console.tab/horizontalNav on DNSPolicy (kuadrant.io/v1):

  • Tab name: "Metrics"
  • Tab href: metrics

Panels:

Panel Metric Panel Type
DNS Record Ready State dns_provider_record_ready{dns_record_namespace="<ns>"} StatChart (ready/not ready per record)
Provider Write Operations dns_provider_write_counter{dns_record_namespace="<ns>"} TimeSeriesChart
Provider API Latency histogram_quantile(0.50, rate(http_client_request_latency_seconds_bucket{client="<provider>"}[5m])) (repeat for p95, p99) TimeSeriesChart (3 lines: p50, p95, p99)
Provider API Errors sum(rate(http_client_requests_total{client="<provider>", code=~"[45].."}[5m])) by (code) TimeSeriesChart stacked
Health Probes Active dns_health_probe_counter{dns_health_check_namespace="<ns>"} StatChart
Policy Ready kuadrant_dns_policy_ready{dns_policy_name="<name>", dns_policy_namespace="<ns>", dns_policy_condition="true"} StatChart

Controls:

  • Time range selector: 15m, 1h, 6h, 24h, 7d (default: 1h)

DNS record scoping

DNSPolicy creates DNSRecord resources. The dns_provider_record_ready and dns_provider_write_counter metrics use dns_record_name and dns_record_namespace labels. The mapping from DNSPolicy to its owned DNSRecord resources needs to be resolved to scope the metrics correctly.

Empty states

Notes

  • Requires React 18 upgrade (OCP 4.22+ only)
  • DNS operator metrics come from port 8080 /metrics; ensure Prometheus is scraping the dns-operator

Metadata

Metadata

Assignees

No one assigned

    Labels

    triage/acceptedReviewed, prioritised, and ready for work

    Type

    No type

    Projects

    Status
    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions