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
| SLO | Target | Current | Error Budget | Status |
|---|---|---|---|---|
| π’ 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
π Security Scan
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
β‘ Latency Heatmap
24-Hour Latency Heatmap
π Active Alerts
π Traffic Flow
π₯ Inbound Traffic
π€ Outbound Traffic
π° Cost Attribution
Resource Breakdown
π Runbooks
Steps to diagnose and mitigate high CPU consumption
Troubleshooting guide for latency spikes
Investigation steps for frequent pod restarts
π On-Call
π Change Timeline
π€ Canary Status
π΄ Error Drill-down
β‘ 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 |
Related Resources
-
π Service Index
View all documented services
-
π System Status
Live health dashboard
-
π·οΈ Testing & Validation
Other services in this category
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