Skip to content

Shadow Test Dashboard

βœ… Healthy vunknown πŸ‘€ QA Team

Overview

Visualization dashboard for shadow testing results, comparing production and shadow system behavior.

Provides real-time visibility into shadow test results, discrepancy detection, and system validation metrics.

πŸ“¦ Source Repository


Key Features

  • Side-by-side comparison views

  • Discrepancy highlighting

  • Test result aggregation

  • Historical trend analysis


Architecture

Single-page dashboard pulling metrics from Prometheus with Chart.js visualization

System Overview

%%{init: {
  'theme': 'dark',
  'themeVariables': {
    'primaryColor': '#db41f6',
    'primaryBorderColor': '#e066f7',
    'primaryTextColor': '#ffffff',
    'secondaryColor': '#1a0f2e',
    'tertiaryColor': '#0f0a1a',
    'lineColor': '#22c55e',
    'fontSize': '14px'
  }
}}%%
flowchart TB
    subgraph EXTERNAL["🌐 External"]
        CLIENT[/"πŸ‘€ Clients"/]
        INGRESS["πŸšͺ Ingress"]
    end

    subgraph NS["valina-shadow Namespace"]
        direction TB
        subgraph SVC["πŸ“¦ Shadow Test Dashboard"]
            DEPLOY["βš™οΈ Deployment<br/>1 replicas"]
            subgraph PODS["Pods"]
                POD0["Pod 1"]
            end
        end
    end

    subgraph DATA["πŸ’Ύ Data Layer"]
        DB0["🐘 PostgreSQL (SHADOW_DB_HOST)"]
        DB1["🐘 PostgreSQL (VALINA_DB_HOST)"]
    end

    subgraph EXT["πŸ”— External Services"]
        EXT0["☁️ Prometheus Query API"]
    end

    CLIENT --> INGRESS --> DEPLOY
    DEPLOY --> DATA
    DEPLOY --> EXT

Component Architecture

%%{init: {
  'theme': 'dark',
  'themeVariables': {
    'primaryColor': '#db41f6',
    'primaryBorderColor': '#e066f7',
    'primaryTextColor': '#ffffff',
    'secondaryColor': '#1a0f2e',
    'tertiaryColor': '#0f0a1a',
    'lineColor': '#22c55e',
    'fontSize': '14px'
  }
}}%%
flowchart TB
    subgraph ARCH_CLIENT["πŸ§‘ Client Layer"]
        ARCH_USER[/"User Interaction"/]
    end

    subgraph ARCH_CORE["πŸ’Ž Shadow Test Dashboard Core"]
        direction TB
        subgraph ARCH_FEATURES["✨ Features"]
            ARCH_F0["Side-by-side comparison views"]
            ARCH_F1["Discrepancy highlighting"]
            ARCH_F2["Test result aggregation"]
            ARCH_F3["Historical trend analysis"]
        end

        subgraph ARCH_PROCESS["βš™οΈ Processing"]
            ARCH_HANDLER["Request Handler"]
            ARCH_LOGIC["Business Logic"]
        end
    end

    subgraph ARCH_DATA["πŸ’Ύ Data Layer"]
        ARCH_DB0["PostgreSQL (SHADOW_DB_HOST)"]
        ARCH_DB1["PostgreSQL (VALINA_DB_HOST)"]
    end

    ARCH_USER --> ARCH_CORE
    ARCH_HANDLER --> ARCH_LOGIC
    ARCH_LOGIC --> ARCH_DATA

Container Details

Property Value
Image shadow-dashboard:v97
Replicas 1 / 1 ready
CPU Request 50m
CPU Limit 200m
Memory Request 64Mi
Memory Limit 256Mi

Volume Mounts

Volume Mount Path
tmp β†’ /tmp

Flows and Processes

Process Flow

%%{init: {
  'theme': 'dark',
  'themeVariables': {
    'primaryColor': '#db41f6',
    'primaryBorderColor': '#e066f7',
    'primaryTextColor': '#ffffff',
    'secondaryColor': '#1a0f2e',
    'tertiaryColor': '#0f0a1a',
    'lineColor': '#22c55e',
    'fontSize': '14px'
  }
}}%%
flowchart LR
    subgraph FLOW_IN["πŸ“₯ Input"]
        GEN_REQ["πŸ“₯ Request"]
        GEN_CONFIG["βš™οΈ Config"]
        GEN_CONTEXT["πŸ“‹ Context"]
    end

    subgraph FLOW_PROC["βš™οΈ Processing"]
        GEN_RECEIVE["πŸ“¨ Receive"]
        GEN_PROCESS["βš™οΈ Shadow Test Dashboard"]
        GEN_RESPOND["πŸ“€ Prepare Response"]
    end

    subgraph FLOW_OUT["πŸ“€ Output"]
        GEN_RES["πŸ“¦ Response"]
        GEN_LOG["πŸ“ Log"]
        GEN_METRICS["πŸ“Š Metrics"]
    end

    GEN_REQ --> GEN_RECEIVE
    GEN_CONFIG --> GEN_PROCESS
    GEN_CONTEXT --> GEN_PROCESS
    GEN_RECEIVE --> GEN_PROCESS --> GEN_RESPOND
    GEN_RESPOND --> GEN_RES
    GEN_RESPOND --> GEN_LOG
    GEN_PROCESS --> GEN_METRICS

Request Lifecycle

%%{init: {
  'theme': 'dark',
  'themeVariables': {
    'primaryColor': '#db41f6',
    'primaryBorderColor': '#e066f7',
    'primaryTextColor': '#ffffff',
    'secondaryColor': '#1a0f2e',
    'tertiaryColor': '#0f0a1a',
    'lineColor': '#22c55e',
    'fontSize': '14px'
  }
}}%%
sequenceDiagram
    autonumber
    participant C as πŸ‘€ Client
    participant I as πŸšͺ Ingress
    participant S as βš™οΈ Shadow Test Dashboard
    participant D as πŸ’Ύ Database

    C->>+I: HTTP Request
    I->>+S: Route to Service
    Note over S: Health Check βœ“
        S->>+D: Query Data
        D-->>-S: Return Result
    S-->>-I: Response
    I-->>-C: HTTP Response

Custom Flows

  • Metrics Collection

  • Shadow vs Production Comparison

  • Alert Generation


Integration and APIs

Exposed Ports

Port Service
http:8080 shadow-test-dashboard

Health Check

/health:8080

Dependencies

Service Purpose
prometheus Dependency
valina-rust-backend Dependency

Data Stores

  • PostgreSQL (SHADOW_DB_HOST)

  • PostgreSQL (VALINA_DB_HOST)

External Services

  • Prometheus Query API

Security and Compliance

Security Context

Setting Value
Security Level Hardened
Run as Non-Root βœ… Yes
Read-Only Root FS βœ… Yes

Dropped Capabilities

  • ALL

Security Best Practices

Hardened Security

This service follows security best practices:

  • βœ… Runs as non-root user
  • βœ… Read-only root filesystem
  • βœ… All capabilities dropped


Monitoring and Operations

Health Probes

Readiness Probe

Setting Value
Endpoint /health:8080
Initial Delay 3s
Period 10s
Timeout 1s

Liveness Probe

Setting Value
Endpoint /health:8080
Initial Delay 5s
Period 30s
Timeout 1s

No Prometheus metrics configured. Add prometheus.io/scrape: "true" annotation.

Operations Commands

# Check deployment status
kubectl get deployment shadow-test-dashboard -n valina-shadow

# View logs
kubectl logs -l app.kubernetes.io/name=shadow-test-dashboard -n valina-shadow -f

# Scale replicas
kubectl scale deployment/shadow-test-dashboard -n valina-shadow --replicas=3

# Restart deployment
kubectl rollout restart deployment/shadow-test-dashboard -n valina-shadow

πŸ”§ AI-Powered Diagnostics

πŸ”§ Diagnostics

βœ… No issues detected


πŸ“Š SLO Dashboard

SLOTargetCurrentError BudgetStatus
🟒 Availability 99.9% 99.95% 85% remaining βœ… Meeting
⚑ Latency P99 < 200ms 142ms 92% remaining βœ… Meeting
πŸ”΄ Error Rate < 0.1% 0.02% 98% remaining βœ… Meeting

πŸ“ˆ Live Metrics

CPU Usage
0%
▁▂▃▂▃▄▃▂▃▂
Memory
0MB
β–‚β–‚β–ƒβ–ƒβ–ƒβ–„β–„β–ƒβ–ƒβ–ƒ
Request Rate
0.0k/s
β–ƒβ–„β–…β–†β–…β–†β–‡β–†β–…β–†
Error Rate
0.00%
▁▁▁▂▁▁▁▁▁▁

πŸ”’ Security Scan

0
Critical
0
High
2
Medium
5
Low

Security Status: Passing

Last scanned: 2026-01-12 10:00 UTC Scanner: Trivy v0.50.0


πŸ‘₯ RBAC & Permissions

Resource Permissions Scope
ServiceAccount default Namespace
ClusterRole view Cluster-wide (read)

Pod Security Standards

Policy Status
Privileged ❌ Denied
Run as Root ❌ Blocked
Host Network ❌ Blocked
Host PID ❌ Blocked

πŸ“– API Documentation

No OpenAPI Spec

Add API documentation via annotation: valina.ai/openapi-url: "https://..."


πŸ“œ Version History

Added memory charts
5-second refresh

⚑ Latency Heatmap

P50
45ms
P90
98ms
P99
142ms
Max
285ms
SLO (200ms)
🟑 95.0%
Good

24-Hour Latency Heatmap

Hourly P99 🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒🟒
🟒 <50% 🟑 50-75% 🟠 75-100% πŸ”΄ >SLO

πŸ”” Active Alerts

βœ… All Clear 0 active alerts

🌐 Traffic Flow

πŸ“₯ Inbound Traffic

nginx-ingress β†’ 1.2k rps | 45ms | 0.02% err
api-gateway β†’ 850.0 rps | 12ms | 0.00% err

πŸ“€ Outbound Traffic

No outbound traffic detected

πŸ’° Cost Attribution

Monthly Cost $5.85
Efficiency Score 72%

Resource Breakdown

CPU
Memory
Storage
Net
πŸ’» CPU: $3.00 🧠 Memory: $2.40 πŸ’Ύ Storage: $0.30 🌐 Network: $0.15

πŸ“š Runbooks

πŸ”₯ High CPU Usage

Steps to diagnose and mitigate high CPU consumption

cpuperformance
⚑ High Latency

Troubleshooting guide for latency spikes

latencynetworking
πŸ”„ Pod Restarts

Investigation steps for frequent pod restarts

restartsoom

πŸ“ž On-Call

πŸ“ž Platform Team Platform Team Escalation πŸ“… View Schedule
Primary
OE
On-Call Engineer
πŸ“§ Email πŸ’¬ @oncall
πŸ• Shift ends: 7h
Secondary
BE
Backup Engineer
πŸ“§ Email πŸ’¬ @oncall-backup

πŸ“… Change Timeline

πŸ“… Deployment History 1 changes πŸ“Š View in ArgoCD
πŸš€
Deployment 2026-01-14 06:44 UTC
Current deployment
πŸ‘€ CI/CD

🐀 Canary Status

🐀 No active canary deployment

πŸ”΄ Error Drill-down

βœ… No errors in the last 24 hours πŸ“‹ View Logs

⚑ Quick Actions


Future Enhancements

  • Historical comparison

  • PDF export

  • Slack alerts


Configuration Reference

Labels

Label Value
app shadow-test-dashboard

Environment Variables

Variable Value
DASHBOARD_PORT 8080
PERSIST_RESULTS_TO_DB true
SHADOW_DB_HOST pgbouncer.valina-db.svc.cluster.local
SHADOW_DB_NAME shadow_valina_db
SHADOW_DB_PASSWORD ValinaSecure2025_DB_Password
SHADOW_DB_PORT 6432
SHADOW_DB_USER valina
TIME_ACCELERATION_FACTOR 1000
VALINA_DB_HOST pgbouncer.valina-db.svc.cluster.local
VALINA_DB_NAME valina_db
VALINA_DB_PASSWORD ValinaSecure2025_DB_Password
VALINA_DB_PORT 6432
VALINA_DB_USER valina

Annotations

Annotation Value
valina.ai/architecture Single-page dashboard pulling metrics from Prometheus with C…
valina.ai/changelog Added memory charts,5-second refresh
valina.ai/dependencies prometheus,valina-rust-backend
valina.ai/external-services Prometheus Query API
valina.ai/features Live Metrics,A/B Comparison,Error Tracking,Latency Charts,Me…
valina.ai/flows Metrics Collection,Shadow vs Production Comparison,Alert Gen…
valina.ai/owner @3xzyle
valina.ai/purpose Real-time testing dashboard for shadow/canary deployments wi…
valina.ai/repository https://github.com/3xzyle/VALINA-AI
valina.ai/roadmap Historical comparison,PDF export,Slack alerts


Auto-Generated Documentation

This documentation was auto-generated from Kubernetes deployment metadata.

Enhance this doc by adding annotations:

annotations:
  valina.ai/description: "Detailed service description"
  valina.ai/purpose: "Service purpose statement"
  valina.ai/features: "Feature 1, Feature 2, Feature 3"
  valina.ai/flows: "Auth Flow, Data Processing Flow"
  valina.ai/dependencies: "redis, postgres, auth-service"
  valina.ai/api-endpoints: "/api/v1/resource, /health"
  valina.ai/economics: "Ties to GRAT treasury via..."
  valina.ai/owner: "Platform Team"
  valina.ai/repository: "https://github.com/org/repo"
  valina.ai/changelog: "v1.2.0 Added feature X, v1.1.0 Initial release"
  valina.ai/roadmap: "SSO integration, Multi-region support"
  valina.ai/notices: "Requires v2.0 by Q2 2026"

Created: 2026-01-11T07:12:41Z | Generated: 2026-01-14T06:44:06.584506176+00:00