chore(infra): remove dead Cockpit TF, CI-CD dashboards, stale Grafana configs

- Delete infra/modules/cockpit/ and infra/live/production/cockpit/
  (Scaleway Cockpit replaced by self-hosted Grafana+Prometheus+Loki+Tempo)
- Delete CI-CD dashboards (foxhunt-ci-pipelines, gitlab-services) and
  grafana-dashboards-cicd ConfigMap from K8s
- Delete config/grafana/ — unreferenced old dashboards (15 files)
- Delete config/monitoring/grafana/ — unreferenced DQN staging dashboard
- Delete crates/ml/grafana/ — unreferenced ML performance dashboard
- Delete services/broker_gateway_service/grafana/ — unreferenced
- Delete .claude/agents/devops/ci-cd/ — GitHub Actions agent (we use GitLab CI)
- Fix grafana-values.yaml: dashboard folder GitLab → Foxhunt,
  hardcoded adminPassword → K8s secret (grafana-admin),
  gitlab-overview → node-exporter (correct name for gnetId 1860)
- Remove CI-CD group from import.sh ConfigMap groups and API fallback

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jgrusewski
2026-03-02 15:13:40 +01:00
parent 36d291a8e0
commit d501d53c9d
32 changed files with 6 additions and 12320 deletions

View File

@@ -1,164 +0,0 @@
---
name: "cicd-engineer"
type: "devops"
color: "cyan"
version: "1.0.0"
created: "2025-07-25"
author: "Claude Code"
metadata:
description: "Specialized agent for GitHub Actions CI/CD pipeline creation and optimization"
specialization: "GitHub Actions, workflow automation, deployment pipelines"
complexity: "moderate"
autonomous: true
triggers:
keywords:
- "github actions"
- "ci/cd"
- "pipeline"
- "workflow"
- "deployment"
- "continuous integration"
file_patterns:
- ".github/workflows/*.yml"
- ".github/workflows/*.yaml"
- "**/action.yml"
- "**/action.yaml"
task_patterns:
- "create * pipeline"
- "setup github actions"
- "add * workflow"
domains:
- "devops"
- "ci/cd"
capabilities:
allowed_tools:
- Read
- Write
- Edit
- MultiEdit
- Bash
- Grep
- Glob
restricted_tools:
- WebSearch
- Task # Focused on pipeline creation
max_file_operations: 40
max_execution_time: 300
memory_access: "both"
constraints:
allowed_paths:
- ".github/**"
- "scripts/**"
- "*.yml"
- "*.yaml"
- "Dockerfile"
- "docker-compose*.yml"
forbidden_paths:
- ".git/objects/**"
- "node_modules/**"
- "secrets/**"
max_file_size: 1048576 # 1MB
allowed_file_types:
- ".yml"
- ".yaml"
- ".sh"
- ".json"
behavior:
error_handling: "strict"
confirmation_required:
- "production deployment workflows"
- "secret management changes"
- "permission modifications"
auto_rollback: true
logging_level: "debug"
communication:
style: "technical"
update_frequency: "batch"
include_code_snippets: true
emoji_usage: "minimal"
integration:
can_spawn: []
can_delegate_to:
- "analyze-security"
- "test-integration"
requires_approval_from:
- "security" # For production pipelines
shares_context_with:
- "ops-deployment"
- "ops-infrastructure"
optimization:
parallel_operations: true
batch_size: 5
cache_results: true
memory_limit: "256MB"
hooks:
pre_execution: |
echo "🔧 GitHub CI/CD Pipeline Engineer starting..."
echo "📂 Checking existing workflows..."
find .github/workflows -name "*.yml" -o -name "*.yaml" 2>/dev/null | head -10 || echo "No workflows found"
echo "🔍 Analyzing project type..."
test -f package.json && echo "Node.js project detected"
test -f requirements.txt && echo "Python project detected"
test -f go.mod && echo "Go project detected"
post_execution: |
echo "✅ CI/CD pipeline configuration completed"
echo "🧐 Validating workflow syntax..."
# Simple YAML validation
find .github/workflows -name "*.yml" -o -name "*.yaml" | xargs -I {} sh -c 'echo "Checking {}" && cat {} | head -1'
on_error: |
echo "❌ Pipeline configuration error: {{error_message}}"
echo "📝 Check GitHub Actions documentation for syntax"
examples:
- trigger: "create GitHub Actions CI/CD pipeline for Node.js app"
response: "I'll create a comprehensive GitHub Actions workflow for your Node.js application including build, test, and deployment stages..."
- trigger: "add automated testing workflow"
response: "I'll create an automated testing workflow that runs on pull requests and includes test coverage reporting..."
---
# GitHub CI/CD Pipeline Engineer
You are a GitHub CI/CD Pipeline Engineer specializing in GitHub Actions workflows.
## Key responsibilities:
1. Create efficient GitHub Actions workflows
2. Implement build, test, and deployment pipelines
3. Configure job matrices for multi-environment testing
4. Set up caching and artifact management
5. Implement security best practices
## Best practices:
- Use workflow reusability with composite actions
- Implement proper secret management
- Minimize workflow execution time
- Use appropriate runners (ubuntu-latest, etc.)
- Implement branch protection rules
- Cache dependencies effectively
## Workflow patterns:
```yaml
name: CI/CD Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- run: npm ci
- run: npm test
```
## Security considerations:
- Never hardcode secrets
- Use GITHUB_TOKEN with minimal permissions
- Implement CODEOWNERS for workflow changes
- Use environment protection rules

View File

@@ -1,740 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 1,
"id": null,
"links": [],
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 0.001
}
]
},
"unit": "s"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"legend": {
"calcs": ["mean", "lastNotNull", "max"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "histogram_quantile(0.50, rate(api_gateway_auth_duration_seconds_bucket[5m]))",
"legendFormat": "P50 Auth Latency",
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "histogram_quantile(0.95, rate(api_gateway_auth_duration_seconds_bucket[5m]))",
"legendFormat": "P95 Auth Latency",
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "histogram_quantile(0.99, rate(api_gateway_auth_duration_seconds_bucket[5m]))",
"legendFormat": "P99 Auth Latency",
"refId": "C"
}
],
"title": "Authentication Latency (P50/P95/P99)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "reqps"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 0
},
"id": 2,
"options": {
"legend": {
"calcs": ["mean", "lastNotNull", "max"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "sum(rate(api_gateway_requests_total[1m]))",
"legendFormat": "Total Requests/sec",
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "sum(rate(api_gateway_requests_total{status=\"200\"}[1m]))",
"legendFormat": "Success (200)",
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "sum(rate(api_gateway_requests_total{status=\"401\"}[1m]))",
"legendFormat": "Unauthorized (401)",
"refId": "C"
}
],
"title": "API Gateway Throughput",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"max": 100,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "yellow",
"value": 50
},
{
"color": "green",
"value": 80
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 6,
"x": 0,
"y": 8
},
"id": 3,
"options": {
"orientation": "auto",
"reduceOptions": {
"values": false,
"calcs": ["lastNotNull"],
"fields": ""
},
"showThresholdLabels": false,
"showThresholdMarkers": true
},
"pluginVersion": "10.2.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "api_gateway_revocation_cache_hit_rate * 100",
"refId": "A"
}
],
"title": "JWT Revocation Cache Hit Rate",
"type": "gauge"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 6,
"x": 6,
"y": 8
},
"id": 4,
"options": {
"legend": {
"calcs": ["sum"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "rate(api_gateway_rate_limit_exceeded_total[1m])",
"legendFormat": "Rate Limit Exceeded/sec",
"refId": "A"
}
],
"title": "Rate Limiting Events",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "normal"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "errps"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 8
},
"id": 5,
"options": {
"legend": {
"calcs": ["sum"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "sum(rate(api_gateway_errors_total[1m])) by (error_type)",
"legendFormat": "{{error_type}}",
"refId": "A"
}
],
"title": "API Gateway Error Rate by Type",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 1000
},
{
"color": "red",
"value": 5000
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 8,
"x": 0,
"y": 16
},
"id": 6,
"options": {
"orientation": "auto",
"reduceOptions": {
"values": false,
"calcs": ["lastNotNull"],
"fields": ""
},
"showThresholdLabels": false,
"showThresholdMarkers": true
},
"pluginVersion": "10.2.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "api_gateway_active_connections",
"refId": "A"
}
],
"title": "Active Connections",
"type": "gauge"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 8,
"x": 8,
"y": 16
},
"id": 7,
"options": {
"legend": {
"calcs": ["lastNotNull"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "sum(rate(api_gateway_mfa_verifications_total[1m]))",
"legendFormat": "Total MFA Verifications/sec",
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "sum(rate(api_gateway_mfa_verifications_total{status=\"success\"}[1m]))",
"legendFormat": "Successful",
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "sum(rate(api_gateway_mfa_verifications_total{status=\"failed\"}[1m]))",
"legendFormat": "Failed",
"refId": "C"
}
],
"title": "MFA Verification Rate",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 8,
"x": 16,
"y": 16
},
"id": 8,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": ["sum"],
"show": false
},
"showHeader": true
},
"pluginVersion": "10.2.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "topk(10, sum(rate(api_gateway_requests_total[5m])) by (endpoint))",
"format": "table",
"instant": true,
"refId": "A"
}
],
"title": "Top 10 Endpoints by Request Rate",
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {
"Time": true
},
"indexByName": {},
"renameByName": {
"Value": "Requests/sec",
"endpoint": "Endpoint"
}
}
}
],
"type": "table"
}
],
"refresh": "5s",
"schemaVersion": 38,
"tags": ["foxhunt", "api-gateway", "security"],
"templating": {
"list": []
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Foxhunt API Gateway Overview",
"uid": "foxhunt-api-gateway",
"version": 1,
"weekStart": ""
}

View File

@@ -1,559 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": null,
"links": [],
"panels": [
{
"datasource": "Prometheus",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"legend": {
"calcs": ["last"],
"displayMode": "table",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"pluginVersion": "8.0.0",
"targets": [
{
"expr": "up{job=~\"api_gateway|trading_service|backtesting_service|ml_training_service\"}",
"legendFormat": "{{job}}",
"refId": "A"
}
],
"title": "Service Health Status",
"type": "timeseries"
},
{
"datasource": "Prometheus",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [
{
"options": {
"0": {
"color": "red",
"index": 1,
"text": "DOWN"
},
"1": {
"color": "green",
"index": 0,
"text": "UP"
}
},
"type": "value"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "green",
"value": 1
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 0
},
"id": 2,
"options": {
"orientation": "auto",
"reduceOptions": {
"values": false,
"calcs": ["lastNotNull"],
"fields": ""
},
"showThresholdLabels": false,
"showThresholdMarkers": true,
"text": {}
},
"pluginVersion": "8.0.0",
"targets": [
{
"expr": "up{job=\"api_gateway\"}",
"legendFormat": "API Gateway",
"refId": "A"
},
{
"expr": "up{job=\"trading_service\"}",
"legendFormat": "Trading Service",
"refId": "B"
},
{
"expr": "up{job=\"backtesting_service\"}",
"legendFormat": "Backtesting Service",
"refId": "C"
},
{
"expr": "up{job=\"ml_training_service\"}",
"legendFormat": "ML Training Service",
"refId": "D"
}
],
"title": "Service Status",
"type": "gauge"
},
{
"datasource": "Prometheus",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "reqps"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 8
},
"id": 3,
"options": {
"legend": {
"calcs": ["mean", "max"],
"displayMode": "table",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"pluginVersion": "8.0.0",
"targets": [
{
"expr": "rate(http_requests_total{job=~\"api_gateway|trading_service|backtesting_service|ml_training_service\"}[5m])",
"legendFormat": "{{job}}",
"refId": "A"
}
],
"title": "Request Rate (req/sec)",
"type": "timeseries"
},
{
"datasource": "Prometheus",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 50
},
{
"color": "red",
"value": 100
}
]
},
"unit": "ms"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 8
},
"id": 4,
"options": {
"legend": {
"calcs": ["mean", "max"],
"displayMode": "table",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"pluginVersion": "8.0.0",
"targets": [
{
"expr": "histogram_quantile(0.95, rate(http_request_duration_seconds_bucket{job=~\"api_gateway|trading_service|backtesting_service|ml_training_service\"}[5m])) * 1000",
"legendFormat": "{{job}} p95",
"refId": "A"
},
{
"expr": "histogram_quantile(0.99, rate(http_request_duration_seconds_bucket{job=~\"api_gateway|trading_service|backtesting_service|ml_training_service\"}[5m])) * 1000",
"legendFormat": "{{job}} p99",
"refId": "B"
}
],
"title": "Response Time (ms)",
"type": "timeseries"
},
{
"datasource": "Prometheus",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "reqps"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 16
},
"id": 5,
"options": {
"legend": {
"calcs": ["mean"],
"displayMode": "table",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"pluginVersion": "8.0.0",
"targets": [
{
"expr": "rate(http_requests_total{job=~\"api_gateway|trading_service|backtesting_service|ml_training_service\",status=~\"5..\"}[5m])",
"legendFormat": "{{job}} - {{status}}",
"refId": "A"
}
],
"title": "Error Rate (5xx errors)",
"type": "timeseries"
},
{
"datasource": "Prometheus",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 16
},
"id": 6,
"options": {
"legend": {
"calcs": ["last"],
"displayMode": "table",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"pluginVersion": "8.0.0",
"targets": [
{
"expr": "grpc_server_handled_total{job=~\"api_gateway|trading_service|backtesting_service|ml_training_service\"}",
"legendFormat": "{{job}} - {{grpc_method}}",
"refId": "A"
}
],
"title": "gRPC Requests",
"type": "timeseries"
},
{
"datasource": "Prometheus",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 24
},
"id": 7,
"options": {
"legend": {
"calcs": ["last"],
"displayMode": "table",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"pluginVersion": "8.0.0",
"targets": [
{
"expr": "pg_stat_database_numbackends{datname=\"foxhunt\"}",
"legendFormat": "PostgreSQL Connections",
"refId": "A"
}
],
"title": "Database Connections",
"type": "timeseries"
}
],
"schemaVersion": 27,
"style": "dark",
"tags": ["foxhunt", "services", "health"],
"templating": {
"list": []
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Foxhunt Service Health",
"uid": "foxhunt-service-health",
"version": 1
}

View File

@@ -1,455 +0,0 @@
{
"dashboard": {
"id": null,
"title": "HFT Business Executive Dashboard - P&L and Performance KPIs",
"description": "Executive-level view of trading performance, risk metrics, and business KPIs for HFT operations",
"tags": ["hft", "business", "executive", "pnl", "risk"],
"timezone": "UTC",
"refresh": "30s",
"time": {
"from": "now-24h",
"to": "now"
},
"fiscalYearStartMonth": 0,
"panels": [
{
"id": 1,
"title": "Real-Time P&L",
"type": "stat",
"gridPos": {"h": 8, "w": 8, "x": 0, "y": 0},
"targets": [
{
"expr": "foxhunt_realized_pnl + foxhunt_unrealized_pnl",
"legendFormat": "Total P&L",
"refId": "A"
},
{
"expr": "foxhunt_realized_pnl",
"legendFormat": "Realized P&L",
"refId": "B"
},
{
"expr": "foxhunt_unrealized_pnl",
"legendFormat": "Unrealized P&L",
"refId": "C"
}
],
"fieldConfig": {
"defaults": {
"unit": "currencyUSD",
"decimals": 2,
"custom": {
"displayMode": "basic"
},
"thresholds": {
"steps": [
{"color": "red", "value": null},
{"color": "yellow", "value": 0},
{"color": "green", "value": 1000}
]
}
}
},
"options": {
"colorMode": "background",
"orientation": "vertical",
"textMode": "value_and_name",
"wideLayout": false
}
},
{
"id": 2,
"title": "Daily Trading Volume",
"type": "stat",
"gridPos": {"h": 8, "w": 8, "x": 8, "y": 0},
"targets": [
{
"expr": "sum(increase(foxhunt_trade_volume_usd[24h]))",
"legendFormat": "Daily Volume (USD)",
"refId": "A"
},
{
"expr": "sum(increase(foxhunt_trade_count[24h]))",
"legendFormat": "Trade Count",
"refId": "B"
}
],
"fieldConfig": {
"defaults": {
"unit": "currencyUSD",
"custom": {
"displayMode": "basic"
},
"thresholds": {
"steps": [
{"color": "red", "value": null},
{"color": "yellow", "value": 1000000},
{"color": "green", "value": 10000000}
]
}
},
"overrides": [
{
"matcher": {"id": "byName", "options": "Trade Count"},
"properties": [
{"id": "unit", "value": "short"}
]
}
]
}
},
{
"id": 3,
"title": "Risk Metrics",
"type": "stat",
"gridPos": {"h": 8, "w": 8, "x": 16, "y": 0},
"targets": [
{
"expr": "foxhunt_portfolio_var_95",
"legendFormat": "VaR 95%",
"refId": "A"
},
{
"expr": "foxhunt_risk_utilization_percent",
"legendFormat": "Risk Utilization %",
"refId": "B"
},
{
"expr": "foxhunt_max_drawdown",
"legendFormat": "Max Drawdown",
"refId": "C"
}
],
"fieldConfig": {
"defaults": {
"unit": "currencyUSD",
"custom": {
"displayMode": "basic"
},
"thresholds": {
"steps": [
{"color": "green", "value": null},
{"color": "yellow", "value": 50000},
{"color": "red", "value": 100000}
]
}
},
"overrides": [
{
"matcher": {"id": "byName", "options": "Risk Utilization %"},
"properties": [
{"id": "unit", "value": "percent"},
{"id": "thresholds", "value": {
"steps": [
{"color": "green", "value": null},
{"color": "yellow", "value": 70},
{"color": "red", "value": 90}
]
}}
]
}
]
}
},
{
"id": 4,
"title": "Hourly P&L Trend",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 8},
"targets": [
{
"expr": "sum(rate(foxhunt_realized_pnl[1h]))",
"legendFormat": "Hourly P&L Rate",
"refId": "A"
},
{
"expr": "sum(foxhunt_cumulative_pnl)",
"legendFormat": "Cumulative P&L",
"refId": "B"
}
],
"fieldConfig": {
"defaults": {
"unit": "currencyUSD",
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"spanNulls": false,
"fillOpacity": 10,
"gradientMode": "hue"
},
"thresholds": {
"steps": [
{"color": "transparent", "value": null},
{"color": "red", "value": -10000},
{"color": "green", "value": 0}
]
}
}
},
"options": {
"legend": {
"displayMode": "list",
"placement": "bottom"
}
}
},
{
"id": 5,
"title": "Order Performance Metrics",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 8},
"targets": [
{
"expr": "rate(foxhunt_orders_filled_total[5m]) / rate(foxhunt_orders_sent_total[5m]) * 100",
"legendFormat": "Fill Rate %",
"refId": "A"
},
{
"expr": "histogram_quantile(0.99, rate(foxhunt_order_latency_microseconds_bucket[5m]))",
"legendFormat": "P99 Latency (μs)",
"refId": "B"
},
{
"expr": "rate(foxhunt_orders_rejected_total[5m]) / rate(foxhunt_orders_total[5m]) * 100",
"legendFormat": "Rejection Rate %",
"refId": "C"
}
],
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth"
}
},
"overrides": [
{
"matcher": {"id": "byName", "options": "Fill Rate %"},
"properties": [
{"id": "unit", "value": "percent"},
{"id": "thresholds", "value": {
"steps": [
{"color": "red", "value": null},
{"color": "yellow", "value": 70},
{"color": "green", "value": 85}
]
}}
]
},
{
"matcher": {"id": "byName", "options": "P99 Latency (μs)"},
"properties": [
{"id": "unit", "value": "μs"},
{"id": "thresholds", "value": {
"steps": [
{"color": "green", "value": null},
{"color": "yellow", "value": 50},
{"color": "red", "value": 100}
]
}}
]
}
]
}
},
{
"id": 6,
"title": "Market Making Performance",
"type": "timeseries",
"gridPos": {"h": 6, "w": 8, "x": 0, "y": 16},
"targets": [
{
"expr": "avg_over_time(foxhunt_bid_ask_spread_bps[5m])",
"legendFormat": "Avg Spread (bps)",
"refId": "A"
},
{
"expr": "abs(foxhunt_inventory_imbalance_ratio) * 100",
"legendFormat": "Inventory Imbalance %",
"refId": "B"
},
{
"expr": "rate(foxhunt_quotes_sent_total[1m])",
"legendFormat": "Quote Rate (/min)",
"refId": "C"
}
],
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line"
}
},
"overrides": [
{
"matcher": {"id": "byName", "options": "Avg Spread (bps)"},
"properties": [
{"id": "unit", "value": "short"},
{"id": "custom.axisLabel", "value": "Basis Points"}
]
},
{
"matcher": {"id": "byName", "options": "Quote Rate (/min)"},
"properties": [
{"id": "unit", "value": "reqps"},
{"id": "custom.axisLabel", "value": "Quotes per Minute"}
]
}
]
}
},
{
"id": 7,
"title": "System Health Overview",
"type": "table",
"gridPos": {"h": 6, "w": 8, "x": 8, "y": 16},
"targets": [
{
"expr": "foxhunt_service_health_status",
"legendFormat": "",
"refId": "A",
"format": "table"
}
],
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {"Time": true, "__name__": true},
"renameByName": {
"service": "Service",
"Value": "Status"
}
}
}
],
"fieldConfig": {
"overrides": [
{
"matcher": {"id": "byName", "options": "Status"},
"properties": [
{
"id": "mappings",
"value": [
{"options": {"0": {"text": "DOWN", "color": "red"}}, "type": "value"},
{"options": {"1": {"text": "HEALTHY", "color": "green"}}, "type": "value"}
]
},
{"id": "custom.displayMode", "value": "color-background"}
]
}
]
}
},
{
"id": 8,
"title": "Daily Performance Summary",
"type": "table",
"gridPos": {"h": 6, "w": 8, "x": 16, "y": 16},
"targets": [
{
"expr": "sum by (symbol) (increase(foxhunt_trade_volume_usd[24h]))",
"legendFormat": "",
"refId": "A",
"format": "table"
}
],
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {"Time": true, "__name__": true},
"renameByName": {
"symbol": "Symbol",
"Value": "Volume (USD)"
}
}
}
],
"fieldConfig": {
"overrides": [
{
"matcher": {"id": "byName", "options": "Volume (USD)"},
"properties": [
{"id": "unit", "value": "currencyUSD"},
{"id": "custom.displayMode", "value": "gradient-gauge"}
]
}
]
}
},
{
"id": 9,
"title": "Risk Alerts and Compliance",
"type": "logs",
"gridPos": {"h": 8, "w": 24, "x": 0, "y": 22},
"targets": [
{
"expr": "increase(foxhunt_risk_violations_total[1h])",
"legendFormat": "Risk Violations",
"refId": "A"
}
],
"options": {
"showTime": true,
"showLabels": true,
"sortOrder": "Descending",
"wrapLogMessage": false
},
"fieldConfig": {
"defaults": {
"custom": {
"displayMode": "basic"
}
}
}
}
],
"templating": {
"list": [
{
"name": "time_range",
"type": "interval",
"query": "1m,5m,15m,1h,6h,12h,1d",
"current": {
"text": "5m",
"value": "5m"
}
},
{
"name": "symbol",
"type": "query",
"query": "label_values(foxhunt_trade_volume_usd, symbol)",
"current": {
"text": "All",
"value": "$__all"
},
"includeAll": true
}
]
},
"annotations": {
"list": [
{
"name": "Trading Session Start/End",
"datasource": "prometheus",
"expr": "changes(foxhunt_trading_session_active[1m])",
"iconColor": "blue"
},
{
"name": "Risk Limit Breaches",
"datasource": "prometheus",
"expr": "foxhunt_risk_violations_total",
"iconColor": "red"
},
{
"name": "System Alerts",
"datasource": "prometheus",
"expr": "ALERTS{alertname!=\"\"}",
"iconColor": "orange"
}
]
}
}
}

View File

@@ -1,465 +0,0 @@
{
"dashboard": {
"id": null,
"title": "HFT Compliance & Regulatory Audit Dashboard",
"description": "Comprehensive compliance monitoring, audit trails, and regulatory reporting for HFT operations",
"tags": ["hft", "compliance", "audit", "regulatory", "risk"],
"timezone": "UTC",
"refresh": "1m",
"time": {
"from": "now-7d",
"to": "now"
},
"panels": [
{
"id": 1,
"title": "SLA Compliance Overview",
"type": "stat",
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 0},
"targets": [
{
"expr": "foxhunt:sla_compliance:monthly_percentage",
"legendFormat": "Overall SLA Compliance %",
"refId": "A"
},
{
"expr": "foxhunt:sla_breaches:count_24h",
"legendFormat": "SLA Breaches (24h)",
"refId": "B"
},
{
"expr": "foxhunt:error_budget:order_latency_remaining_percent",
"legendFormat": "Error Budget Remaining %",
"refId": "C"
}
],
"fieldConfig": {
"defaults": {
"unit": "percent",
"custom": {
"displayMode": "basic"
},
"thresholds": {
"steps": [
{"color": "red", "value": null},
{"color": "yellow", "value": 95},
{"color": "green", "value": 99}
]
}
},
"overrides": [
{
"matcher": {"id": "byName", "options": "SLA Breaches (24h)"},
"properties": [
{"id": "unit", "value": "short"},
{"id": "thresholds", "value": {
"steps": [
{"color": "green", "value": null},
{"color": "yellow", "value": 1},
{"color": "red", "value": 5}
]
}}
]
}
]
},
"options": {
"colorMode": "background",
"orientation": "vertical"
}
},
{
"id": 2,
"title": "Risk Limit Compliance",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 0},
"targets": [
{
"expr": "foxhunt_position_risk_utilization * 100",
"legendFormat": "Risk Utilization %",
"refId": "A"
},
{
"expr": "90",
"legendFormat": "Risk Limit Threshold",
"refId": "B"
},
{
"expr": "foxhunt_daily_pnl",
"legendFormat": "Daily P&L",
"refId": "C"
},
{
"expr": "foxhunt_daily_loss_limit",
"legendFormat": "Daily Loss Limit",
"refId": "D"
}
],
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"fillOpacity": 10
}
},
"overrides": [
{
"matcher": {"id": "byName", "options": "Risk Utilization %"},
"properties": [
{"id": "unit", "value": "percent"},
{"id": "custom.axisPlacement", "value": "left"}
]
},
{
"matcher": {"id": "byName", "options": "Daily P&L"},
"properties": [
{"id": "unit", "value": "currencyUSD"},
{"id": "custom.axisPlacement", "value": "right"}
]
}
]
}
},
{
"id": 3,
"title": "Trading Activity Audit Trail",
"type": "table",
"gridPos": {"h": 10, "w": 24, "x": 0, "y": 8},
"targets": [
{
"expr": "increase(foxhunt_orders_total[1h])",
"legendFormat": "",
"refId": "A",
"format": "table"
}
],
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {"Time": false, "__name__": true},
"renameByName": {
"service": "Service",
"symbol": "Symbol",
"order_type": "Order Type",
"Value": "Order Count (1h)"
}
}
}
],
"fieldConfig": {
"overrides": [
{
"matcher": {"id": "byName", "options": "Order Count (1h)"},
"properties": [
{"id": "custom.displayMode", "value": "gradient-gauge"},
{"id": "unit", "value": "short"}
]
},
{
"matcher": {"id": "byName", "options": "Time"},
"properties": [
{"id": "custom.width", "value": 150}
]
}
]
},
"options": {
"showHeader": true,
"sortBy": [
{
"desc": true,
"displayName": "Order Count (1h)"
}
]
}
},
{
"id": 4,
"title": "Latency SLA Compliance",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 18},
"targets": [
{
"expr": "foxhunt:order_latency_sla:success_rate_5m",
"legendFormat": "Order Latency SLA Success Rate %",
"refId": "A"
},
{
"expr": "99.9",
"legendFormat": "SLA Target (99.9%)",
"refId": "B"
},
{
"expr": "foxhunt:market_data_latency_sla:success_rate_5m",
"legendFormat": "Market Data Latency SLA Success Rate %",
"refId": "C"
},
{
"expr": "99.5",
"legendFormat": "Market Data SLA Target (99.5%)",
"refId": "D"
}
],
"fieldConfig": {
"defaults": {
"unit": "percent",
"min": 99,
"max": 100,
"custom": {
"drawStyle": "line",
"thresholdsStyle": {"mode": "line"}
},
"thresholds": {
"steps": [
{"color": "transparent", "value": null},
{"color": "red", "value": 99.5},
{"color": "green", "value": 99.9}
]
}
}
}
},
{
"id": 5,
"title": "Risk Violations and Alerts",
"type": "table",
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 18},
"targets": [
{
"expr": "increase(foxhunt_risk_violations_total[24h])",
"legendFormat": "",
"refId": "A",
"format": "table"
}
],
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {"Time": false, "__name__": true},
"renameByName": {
"violation_type": "Violation Type",
"severity": "Severity",
"symbol": "Symbol",
"Value": "Count (24h)"
}
}
}
],
"fieldConfig": {
"overrides": [
{
"matcher": {"id": "byName", "options": "Severity"},
"properties": [
{
"id": "mappings",
"value": [
{"options": {"critical": {"text": "CRITICAL", "color": "red"}}, "type": "value"},
{"options": {"high": {"text": "HIGH", "color": "orange"}}, "type": "value"},
{"options": {"medium": {"text": "MEDIUM", "color": "yellow"}}, "type": "value"}
]
},
{"id": "custom.displayMode", "value": "color-background"}
]
}
]
}
},
{
"id": 6,
"title": "Circuit Breaker Activity",
"type": "timeseries",
"gridPos": {"h": 6, "w": 8, "x": 0, "y": 26},
"targets": [
{
"expr": "foxhunt_circuit_breaker_status",
"legendFormat": "{{circuit_breaker}} Status",
"refId": "A"
},
{
"expr": "increase(foxhunt_circuit_breaker_triggers_total[1h])",
"legendFormat": "{{circuit_breaker}} Triggers (1h)",
"refId": "B"
}
],
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "bars"
},
"mappings": [
{"options": {"0": {"text": "CLOSED", "color": "green"}}, "type": "value"},
{"options": {"1": {"text": "OPEN", "color": "red"}}, "type": "value"}
]
}
}
},
{
"id": 7,
"title": "Emergency Stop Events",
"type": "stat",
"gridPos": {"h": 6, "w": 8, "x": 8, "y": 26},
"targets": [
{
"expr": "foxhunt_emergency_stop_status",
"legendFormat": "Emergency Stop Status",
"refId": "A"
},
{
"expr": "increase(foxhunt_emergency_stop_activations_total[24h])",
"legendFormat": "Activations (24h)",
"refId": "B"
}
],
"fieldConfig": {
"defaults": {
"mappings": [
{"options": {"0": {"text": "NORMAL", "color": "green"}}, "type": "value"},
{"options": {"1": {"text": "EMERGENCY STOP", "color": "red"}}, "type": "value"}
],
"custom": {
"displayMode": "basic"
}
}
},
"options": {
"colorMode": "background"
}
},
{
"id": 8,
"title": "Data Quality Metrics",
"type": "stat",
"gridPos": {"h": 6, "w": 8, "x": 16, "y": 26},
"targets": [
{
"expr": "foxhunt:market_data_completeness_sla:rate_5m",
"legendFormat": "Data Completeness %",
"refId": "A"
},
{
"expr": "increase(foxhunt_market_data_gaps_total[1h])",
"legendFormat": "Data Gaps (1h)",
"refId": "B"
},
{
"expr": "increase(foxhunt_order_book_inconsistencies_total[1h])",
"legendFormat": "Book Inconsistencies (1h)",
"refId": "C"
}
],
"fieldConfig": {
"defaults": {
"thresholds": {
"steps": [
{"color": "red", "value": null},
{"color": "yellow", "value": 99.9},
{"color": "green", "value": 99.99}
]
}
},
"overrides": [
{
"matcher": {"id": "byName", "options": "Data Completeness %"},
"properties": [
{"id": "unit", "value": "percent"}
]
}
]
}
},
{
"id": 9,
"title": "Monthly SLA Performance Report",
"type": "table",
"gridPos": {"h": 8, "w": 24, "x": 0, "y": 32},
"targets": [
{
"expr": "foxhunt:order_latency_sla:success_rate_5m",
"legendFormat": "",
"refId": "A",
"format": "table"
}
],
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {"Time": false, "__name__": true},
"renameByName": {
"sla_name": "SLA Name",
"sla_target": "Target",
"Value": "Current Performance"
}
}
}
],
"fieldConfig": {
"overrides": [
{
"matcher": {"id": "byName", "options": "Current Performance"},
"properties": [
{"id": "unit", "value": "percent"},
{"id": "custom.displayMode", "value": "color-background"},
{"id": "thresholds", "value": {
"steps": [
{"color": "red", "value": null},
{"color": "yellow", "value": 95},
{"color": "green", "value": 99}
]
}}
]
}
]
}
}
],
"templating": {
"list": [
{
"name": "service",
"type": "query",
"query": "label_values(up, job)",
"current": {
"text": "All",
"value": "$__all"
},
"includeAll": true
},
{
"name": "time_period",
"type": "interval",
"query": "1h,6h,24h,7d,30d",
"current": {
"text": "24h",
"value": "24h"
}
}
]
},
"annotations": {
"list": [
{
"name": "SLA Breaches",
"datasource": "prometheus",
"expr": "foxhunt_sla_breaches:count_24h > 0",
"iconColor": "red"
},
{
"name": "Risk Violations",
"datasource": "prometheus",
"expr": "increase(foxhunt_risk_violations_total[1h]) > 0",
"iconColor": "orange"
},
{
"name": "Emergency Events",
"datasource": "prometheus",
"expr": "foxhunt_emergency_stop_status == 1",
"iconColor": "purple"
}
]
}
}
}

View File

@@ -1,164 +0,0 @@
{
"dashboard": {
"id": null,
"title": "HFT Latency Monitor - Real-Time Trading Performance",
"tags": ["hft", "latency", "trading", "performance"],
"timezone": "UTC",
"refresh": "1s",
"time": {
"from": "now-5m",
"to": "now"
},
"panels": [
{
"id": 1,
"title": "Tick-to-Trade Latency (Nanosecond Precision)",
"type": "stat",
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 0},
"targets": [
{
"expr": "histogram_quantile(0.99, foxhunt_hft_tick_to_trade_latency_nanos_bucket) / 1000",
"legendFormat": "P99 (μs)",
"refId": "A"
},
{
"expr": "histogram_quantile(0.95, foxhunt_hft_tick_to_trade_latency_nanos_bucket) / 1000",
"legendFormat": "P95 (μs)",
"refId": "B"
},
{
"expr": "histogram_quantile(0.50, foxhunt_hft_tick_to_trade_latency_nanos_bucket) / 1000",
"legendFormat": "P50 (μs)",
"refId": "C"
}
],
"fieldConfig": {
"defaults": {
"unit": "µs",
"thresholds": {
"steps": [
{"color": "green", "value": null},
{"color": "yellow", "value": 50},
{"color": "red", "value": 100}
]
}
}
}
},
{
"id": 2,
"title": "Order Placement Latency by Exchange",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 0},
"targets": [
{
"expr": "histogram_quantile(0.99, rate(foxhunt_hft_order_placement_latency_nanos_bucket[1m])) / 1000",
"legendFormat": "{{exchange}} P99",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "µs",
"custom": {
"drawStyle": "line",
"lineInterpolation": "linear"
}
}
}
},
{
"id": 3,
"title": "Latency Violations - Critical Threshold (>100μs)",
"type": "stat",
"gridPos": {"h": 4, "w": 6, "x": 0, "y": 8},
"targets": [
{
"expr": "sum(rate(foxhunt_hft_alerts_total{alert_type=\"LatencyViolation\",severity=\"Critical\"}[1m]))",
"legendFormat": "Critical Violations/sec",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "ops",
"color": {"mode": "thresholds"},
"thresholds": {
"steps": [
{"color": "green", "value": null},
{"color": "yellow", "value": 1},
{"color": "red", "value": 10}
]
}
}
}
},
{
"id": 4,
"title": "Network Latency Heatmap",
"type": "heatmap",
"gridPos": {"h": 8, "w": 18, "x": 6, "y": 8},
"targets": [
{
"expr": "increase(foxhunt_network_latency_nanos_bucket[1m])",
"legendFormat": "{{le}}",
"refId": "A"
}
],
"heatmap": {
"xAxis": {"show": true},
"yAxis": {
"show": true,
"unit": "µs"
}
}
},
{
"id": 5,
"title": "Market Data Feed Quality",
"type": "timeseries",
"gridPos": {"h": 6, "w": 12, "x": 0, "y": 16},
"targets": [
{
"expr": "rate(foxhunt_market_data_messages_total[1m])",
"legendFormat": "{{exchange}} Messages/sec",
"refId": "A"
},
{
"expr": "rate(foxhunt_market_data_gaps_total[1m])",
"legendFormat": "{{exchange}} Gaps/sec",
"refId": "B"
}
]
},
{
"id": 6,
"title": "Execution Quality Metrics",
"type": "timeseries",
"gridPos": {"h": 6, "w": 12, "x": 12, "y": 16},
"targets": [
{
"expr": "histogram_quantile(0.99, foxhunt_hft_slippage_basis_points_bucket)",
"legendFormat": "Slippage P99 (bps)",
"refId": "A"
},
{
"expr": "foxhunt_hft_fill_rate * 100",
"legendFormat": "Fill Rate %",
"refId": "B"
}
]
}
],
"annotations": {
"list": [
{
"name": "Trading Halts",
"datasource": "prometheus",
"expr": "foxhunt_hft_alerts_total{alert_type=\"TradingHalt\"}",
"iconColor": "red"
}
]
}
}
}

View File

@@ -1,225 +0,0 @@
{
"dashboard": {
"id": null,
"title": "HFT Risk Management - Circuit Breakers & Limits",
"tags": ["hft", "risk", "circuit-breaker", "limits"],
"timezone": "UTC",
"refresh": "1s",
"time": {
"from": "now-30m",
"to": "now"
},
"panels": [
{
"id": 1,
"title": "Circuit Breaker Status Matrix",
"type": "status-history",
"gridPos": {"h": 8, "w": 24, "x": 0, "y": 0},
"targets": [
{
"expr": "foxhunt_circuit_breaker_state",
"legendFormat": "{{breaker_type}} - {{exchange}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"custom": {
"fillOpacity": 100
},
"mappings": [
{"options": {"0": {"text": "CLOSED", "color": "green"}}, "type": "value"},
{"options": {"1": {"text": "OPEN", "color": "red"}}, "type": "value"},
{"options": {"2": {"text": "HALF_OPEN", "color": "yellow"}}, "type": "value"}
]
}
}
},
{
"id": 2,
"title": "Daily Loss Tracking",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 8},
"targets": [
{
"expr": "foxhunt_daily_pnl_usd",
"legendFormat": "Daily P&L",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "currencyUSD",
"custom": {
"thresholdsStyle": {"mode": "area"}
},
"thresholds": {
"steps": [
{"color": "transparent", "value": null},
{"color": "red", "value": -50000},
{"color": "yellow", "value": -10000},
{"color": "green", "value": 0}
]
}
}
},
"options": {
"tooltip": {"mode": "single"}
}
},
{
"id": 3,
"title": "Position Limits Monitor",
"type": "bargauge",
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 8},
"targets": [
{
"expr": "abs(foxhunt_position_size) / 1000000 * 100",
"legendFormat": "{{symbol}} Position %",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "percent",
"min": 0,
"max": 100,
"thresholds": {
"steps": [
{"color": "green", "value": null},
{"color": "yellow", "value": 70},
{"color": "orange", "value": 90},
{"color": "red", "value": 95}
]
}
}
},
"options": {
"orientation": "horizontal",
"displayMode": "gradient"
}
},
{
"id": 4,
"title": "Risk Violations Timeline",
"type": "timeseries",
"gridPos": {"h": 6, "w": 24, "x": 0, "y": 16},
"targets": [
{
"expr": "rate(foxhunt_risk_violations_total[1m])",
"legendFormat": "{{violation_type}} Violations/min",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "bars",
"barAlignment": 0
}
}
},
"options": {
"tooltip": {"mode": "multi"}
}
},
{
"id": 5,
"title": "VaR & Risk Metrics",
"type": "stat",
"gridPos": {"h": 6, "w": 8, "x": 0, "y": 22},
"targets": [
{
"expr": "foxhunt_value_at_risk",
"legendFormat": "VaR (95%)",
"refId": "A"
},
{
"expr": "foxhunt_expected_shortfall",
"legendFormat": "Expected Shortfall",
"refId": "B"
},
{
"expr": "foxhunt_correlation_risk",
"legendFormat": "Correlation Risk",
"refId": "C"
}
],
"fieldConfig": {
"defaults": {
"unit": "currencyUSD",
"color": {"mode": "thresholds"},
"thresholds": {
"steps": [
{"color": "green", "value": null},
{"color": "yellow", "value": 10000},
{"color": "red", "value": 50000}
]
}
}
}
},
{
"id": 6,
"title": "Market Volatility Spike Detection",
"type": "timeseries",
"gridPos": {"h": 6, "w": 8, "x": 8, "y": 22},
"targets": [
{
"expr": "foxhunt_market_volatility_percent",
"legendFormat": "{{symbol}} Volatility %",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "percent",
"custom": {
"thresholdsStyle": {"mode": "line"}
},
"thresholds": {
"steps": [
{"color": "transparent", "value": null},
{"color": "yellow", "value": 2},
{"color": "red", "value": 5}
]
}
}
}
},
{
"id": 7,
"title": "Circuit Breaker Trigger History",
"type": "logs",
"gridPos": {"h": 6, "w": 8, "x": 16, "y": 22},
"targets": [
{
"expr": "{job=\"trading-engine\"} |= \"circuit_breaker\" |= \"triggered\"",
"refId": "A"
}
],
"options": {
"showTime": true,
"showLabels": true,
"sortOrder": "Descending"
}
}
],
"annotations": {
"list": [
{
"name": "Circuit Breaker Triggers",
"datasource": "prometheus",
"expr": "foxhunt_hft_alerts_total{alert_type=\"CircuitBreakerTriggered\"}",
"iconColor": "red"
},
{
"name": "Risk Limit Breaches",
"datasource": "prometheus",
"expr": "foxhunt_hft_alerts_total{alert_type=\"RiskLimitViolation\"}",
"iconColor": "orange"
}
]
}
}
}

View File

@@ -1,271 +0,0 @@
{
"dashboard": {
"id": null,
"title": "HFT System Health - Infrastructure & Performance",
"tags": ["hft", "system", "health", "infrastructure"],
"timezone": "UTC",
"refresh": "5s",
"time": {
"from": "now-10m",
"to": "now"
},
"panels": [
{
"id": 1,
"title": "Exchange Connection Status",
"type": "stat",
"gridPos": {"h": 6, "w": 24, "x": 0, "y": 0},
"targets": [
{
"expr": "foxhunt_exchange_connected",
"legendFormat": "{{exchange}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"mappings": [
{"options": {"0": {"text": "DISCONNECTED", "color": "red"}}, "type": "value"},
{"options": {"1": {"text": "CONNECTED", "color": "green"}}, "type": "value"}
],
"noValue": "UNKNOWN"
}
},
"options": {
"colorMode": "background",
"orientation": "horizontal"
}
},
{
"id": 2,
"title": "CPU Usage by Service",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 6},
"targets": [
{
"expr": "foxhunt_cpu_usage_percent",
"legendFormat": "{{service}} CPU %",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "percent",
"min": 0,
"max": 100,
"custom": {
"thresholdsStyle": {"mode": "line"}
},
"thresholds": {
"steps": [
{"color": "transparent", "value": null},
{"color": "yellow", "value": 70},
{"color": "red", "value": 90}
]
}
}
}
},
{
"id": 3,
"title": "Memory Usage",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 6},
"targets": [
{
"expr": "foxhunt_memory_usage_bytes / 1024 / 1024 / 1024",
"legendFormat": "{{service}} Memory (GB)",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "decbytes",
"custom": {
"thresholdsStyle": {"mode": "area"}
},
"thresholds": {
"steps": [
{"color": "transparent", "value": null},
{"color": "yellow", "value": 4},
{"color": "red", "value": 6}
]
}
}
}
},
{
"id": 4,
"title": "GC Pause Times",
"type": "histogram",
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 14},
"targets": [
{
"expr": "histogram_quantile(0.99, foxhunt_gc_pause_duration_nanos_bucket) / 1000000",
"legendFormat": "GC Pause P99 (ms)",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "ms"
}
}
},
{
"id": 5,
"title": "Thread Pool Utilization",
"type": "bargauge",
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 14},
"targets": [
{
"expr": "foxhunt_thread_pool_active / foxhunt_thread_pool_size * 100",
"legendFormat": "{{pool}} Utilization %",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "percent",
"min": 0,
"max": 100,
"thresholds": {
"steps": [
{"color": "green", "value": null},
{"color": "yellow", "value": 70},
{"color": "red", "value": 90}
]
}
}
}
},
{
"id": 6,
"title": "Network I/O",
"type": "timeseries",
"gridPos": {"h": 6, "w": 12, "x": 0, "y": 22},
"targets": [
{
"expr": "rate(foxhunt_network_bytes_total[1m])",
"legendFormat": "{{direction}} (bytes/sec)",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "binBps"
}
}
},
{
"id": 7,
"title": "Database Connection Pool",
"type": "stat",
"gridPos": {"h": 6, "w": 6, "x": 12, "y": 22},
"targets": [
{
"expr": "foxhunt_db_connections_active",
"legendFormat": "Active Connections",
"refId": "A"
},
{
"expr": "foxhunt_db_connections_idle",
"legendFormat": "Idle Connections",
"refId": "B"
}
],
"fieldConfig": {
"defaults": {
"color": {"mode": "thresholds"},
"thresholds": {
"steps": [
{"color": "green", "value": null},
{"color": "yellow", "value": 80},
{"color": "red", "value": 95}
]
}
}
}
},
{
"id": 8,
"title": "Service Health Check Status",
"type": "table",
"gridPos": {"h": 6, "w": 6, "x": 18, "y": 22},
"targets": [
{
"expr": "foxhunt_service_health_status",
"legendFormat": "",
"refId": "A",
"format": "table"
}
],
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {"Time": true, "__name__": true},
"renameByName": {
"service": "Service",
"Value": "Status"
}
}
}
],
"fieldConfig": {
"overrides": [
{
"matcher": {"id": "byName", "options": "Status"},
"properties": [
{
"id": "mappings",
"value": [
{"options": {"0": {"text": "DOWN", "color": "red"}}, "type": "value"},
{"options": {"1": {"text": "UP", "color": "green"}}, "type": "value"}
]
}
]
}
]
}
},
{
"id": 9,
"title": "Error Rate by Service",
"type": "timeseries",
"gridPos": {"h": 6, "w": 24, "x": 0, "y": 28},
"targets": [
{
"expr": "rate(foxhunt_errors_total[1m])",
"legendFormat": "{{service}} Errors/min",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "bars"
},
"color": {"mode": "palette-classic"}
}
}
}
],
"annotations": {
"list": [
{
"name": "Service Restarts",
"datasource": "prometheus",
"expr": "increase(foxhunt_service_restarts_total[1m])",
"iconColor": "blue"
},
{
"name": "System Health Degraded",
"datasource": "prometheus",
"expr": "foxhunt_hft_alerts_total{alert_type=\"SystemHealthDegraded\"}",
"iconColor": "orange"
}
]
}
}
}

View File

@@ -1,409 +0,0 @@
{
"dashboard": {
"id": null,
"title": "Foxhunt HFT Trading Performance",
"description": "Ultra-low latency trading system monitoring with sub-second refresh rates",
"tags": ["foxhunt", "trading", "hft", "performance"],
"timezone": "browser",
"editable": true,
"gnetId": null,
"graphTooltip": 1,
"hideControls": false,
"links": [],
"panels": [
{
"id": 1,
"title": "Order Submission Latency (P99) - CRITICAL",
"type": "stat",
"targets": [
{
"expr": "histogram_quantile(0.99, rate(trading_order_processing_seconds_bucket[30s])) * 1000000",
"legendFormat": "P99 Latency (μs)",
"refId": "A",
"interval": "1s"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 25
},
{
"color": "red",
"value": 50
}
]
},
"unit": "µs",
"min": 0,
"max": 100,
"displayName": "Order Latency P99"
}
},
"options": {
"reduceOptions": {
"values": false,
"calcs": ["lastNotNull"],
"fields": ""
},
"orientation": "auto",
"textMode": "auto",
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto"
},
"gridPos": {
"h": 8,
"w": 6,
"x": 0,
"y": 0
},
"alert": {
"conditions": [
{
"evaluator": {
"params": [50],
"type": "gt"
},
"operator": {
"type": "and"
},
"query": {
"params": ["A", "5s", "now"]
},
"reducer": {
"params": [],
"type": "last"
},
"type": "query"
}
],
"executionErrorState": "alerting",
"for": "5s",
"frequency": "1s",
"handler": 1,
"name": "Critical Order Latency",
"noDataState": "no_data",
"notifications": []
}
},
{
"id": 2,
"title": "Order Flow Rate (Orders/Second)",
"type": "graph",
"targets": [
{
"expr": "rate(trading_orders_submitted_total[1m])",
"legendFormat": "Submitted",
"refId": "A"
},
{
"expr": "rate(trading_orders_filled_total[1m])",
"legendFormat": "Filled",
"refId": "B"
},
{
"expr": "rate(trading_orders_cancelled_total[1m])",
"legendFormat": "Cancelled",
"refId": "C"
},
{
"expr": "rate(trading_orders_rejected_total[1m])",
"legendFormat": "Rejected",
"refId": "D"
}
],
"yAxes": [
{
"label": "Orders/sec",
"min": 0
}
],
"xAxis": {
"show": true
},
"gridPos": {
"h": 8,
"w": 12,
"x": 6,
"y": 0
},
"legend": {
"show": true,
"values": true,
"current": true,
"max": true,
"avg": true
},
"tooltip": {
"shared": true,
"sort": 2,
"value_type": "individual"
}
},
{
"id": 3,
"title": "Fill Rate %",
"type": "stat",
"targets": [
{
"expr": "(rate(trading_orders_filled_total[1m]) / rate(trading_orders_submitted_total[1m])) * 100",
"legendFormat": "Fill Rate",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"steps": [
{
"color": "red",
"value": null
},
{
"color": "yellow",
"value": 90
},
{
"color": "green",
"value": 95
}
]
},
"unit": "percent",
"min": 0,
"max": 100
}
},
"gridPos": {
"h": 8,
"w": 6,
"x": 18,
"y": 0
}
},
{
"id": 4,
"title": "Latency Breakdown (P95)",
"type": "graph",
"targets": [
{
"expr": "histogram_quantile(0.95, rate(trading_order_processing_seconds_bucket[1m])) * 1000000",
"legendFormat": "Order Processing",
"refId": "A"
},
{
"expr": "histogram_quantile(0.95, rate(trading_risk_check_seconds_bucket[1m])) * 1000000",
"legendFormat": "Risk Check",
"refId": "B"
},
{
"expr": "histogram_quantile(0.95, rate(trading_market_data_seconds_bucket[1m])) * 1000000",
"legendFormat": "Market Data",
"refId": "C"
},
{
"expr": "histogram_quantile(0.95, rate(trading_total_latency_seconds_bucket[1m])) * 1000000",
"legendFormat": "Total Latency",
"refId": "D"
}
],
"yAxes": [
{
"label": "Latency (μs)",
"min": 0
}
],
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 8
},
"legend": {
"show": true,
"values": true,
"current": true
}
},
{
"id": 5,
"title": "System Resource Usage",
"type": "graph",
"targets": [
{
"expr": "100 - (avg by (instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[2m])) * 100)",
"legendFormat": "CPU Usage %",
"refId": "A"
},
{
"expr": "(node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100",
"legendFormat": "Memory Usage %",
"refId": "B"
},
{
"expr": "trading_buffer_utilization_percent",
"legendFormat": "Metrics Buffer %",
"refId": "C"
}
],
"yAxes": [
{
"label": "Percentage",
"min": 0,
"max": 100
}
],
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 8
}
},
{
"id": 6,
"title": "Trading P&L (Real-time)",
"type": "graph",
"targets": [
{
"expr": "trading_realized_pnl_usd_total",
"legendFormat": "Realized P&L",
"refId": "A"
},
{
"expr": "trading_unrealized_pnl_usd",
"legendFormat": "Unrealized P&L",
"refId": "B"
},
{
"expr": "trading_daily_pnl_usd",
"legendFormat": "Daily P&L",
"refId": "C"
}
],
"yAxes": [
{
"label": "USD",
"logBase": 1
}
],
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 16
},
"legend": {
"show": true,
"values": true,
"current": true
}
},
{
"id": 7,
"title": "Network & Connectivity",
"type": "graph",
"targets": [
{
"expr": "histogram_quantile(0.95, rate(broker_connection_latency_seconds_bucket[1m])) * 1000",
"legendFormat": "Broker Latency P95 (ms)",
"refId": "A"
},
{
"expr": "rate(market_data_messages_total[1m])",
"legendFormat": "Market Data Rate (msg/s)",
"refId": "B"
},
{
"expr": "broker_connection_status",
"legendFormat": "Connection Status",
"refId": "C"
}
],
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 16
}
},
{
"id": 8,
"title": "Alert Summary",
"type": "table",
"targets": [
{
"expr": "ALERTS{alertstate=\"firing\"}",
"format": "table",
"refId": "A"
}
],
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 24
},
"transform": {
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {},
"renameByName": {
"alertname": "Alert",
"severity": "Severity",
"description": "Description",
"Value": "Status"
}
}
}
}
],
"time": {
"from": "now-15m",
"to": "now"
},
"timepicker": {
"refresh_intervals": ["1s", "5s", "10s", "30s", "1m", "5m"],
"time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
},
"templating": {
"list": [
{
"name": "instance",
"query": "up{job=\"foxhunt-trading\"}",
"refresh": 1,
"type": "query"
}
]
},
"annotations": {
"list": [
{
"name": "Trading Events",
"datasource": "prometheus",
"enable": true,
"expr": "trading_significant_events",
"iconColor": "red"
}
]
},
"refresh": "1s",
"schemaVersion": 16,
"version": 1
}
}

View File

@@ -1,963 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 1,
"id": null,
"links": [],
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 150
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"legend": {
"calcs": ["mean", "lastNotNull", "max"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "postgres_stat_database_numbackends{datname=\"foxhunt\"}",
"legendFormat": "Active Connections",
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "postgres_settings_max_connections",
"legendFormat": "Max Connections",
"refId": "B"
}
],
"title": "PostgreSQL Connection Pool",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "line"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 0.1
}
]
},
"unit": "s"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 0
},
"id": 2,
"options": {
"legend": {
"calcs": ["mean", "lastNotNull", "max"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "rate(postgres_stat_statements_total_time_ms_sum[5m]) / rate(postgres_stat_statements_total_time_ms_count[5m]) / 1000",
"legendFormat": "Avg Query Duration",
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "histogram_quantile(0.95, rate(postgres_stat_statements_total_time_ms_bucket[5m])) / 1000",
"legendFormat": "P95 Query Duration",
"refId": "B"
}
],
"title": "PostgreSQL Query Duration",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "ops"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 8
},
"id": 3,
"options": {
"legend": {
"calcs": ["mean", "lastNotNull"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "rate(redis_commands_processed_total[1m])",
"legendFormat": "Commands/sec",
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "irate(redis_keyspace_hits_total[1m])",
"legendFormat": "Cache Hits/sec",
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "irate(redis_keyspace_misses_total[1m])",
"legendFormat": "Cache Misses/sec",
"refId": "C"
}
],
"title": "Redis Operations",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"max": 100,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 70
},
{
"color": "red",
"value": 85
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 6,
"x": 12,
"y": 8
},
"id": 4,
"options": {
"orientation": "auto",
"reduceOptions": {
"values": false,
"calcs": ["lastNotNull"],
"fields": ""
},
"showThresholdLabels": false,
"showThresholdMarkers": true
},
"pluginVersion": "10.2.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "(redis_memory_used_bytes / redis_memory_max_bytes) * 100",
"refId": "A"
}
],
"title": "Redis Memory Usage",
"type": "gauge"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [
{
"options": {
"0": {
"color": "red",
"index": 1,
"text": "Down"
},
"1": {
"color": "green",
"index": 0,
"text": "Up"
}
},
"type": "value"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "green",
"value": 1
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 6,
"x": 18,
"y": 8
},
"id": 5,
"options": {
"orientation": "auto",
"reduceOptions": {
"values": false,
"calcs": ["lastNotNull"],
"fields": ""
},
"showThresholdLabels": false,
"showThresholdMarkers": true
},
"pluginVersion": "10.2.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "up{job=\"postgres\"}",
"refId": "A"
}
],
"title": "PostgreSQL Health",
"type": "gauge"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "color-text"
},
"inspect": false
},
"mappings": [
{
"options": {
"0": {
"color": "red",
"index": 1,
"text": "Open"
},
"1": {
"color": "green",
"index": 0,
"text": "Closed"
}
},
"type": "value"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "green",
"value": 1
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 16
},
"id": 6,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": ["sum"],
"show": false
},
"showHeader": true
},
"pluginVersion": "10.2.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "circuit_breaker_state{service=~\".*\"}",
"format": "table",
"instant": true,
"refId": "A"
}
],
"title": "Circuit Breaker Status",
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {
"Time": true,
"__name__": true,
"instance": true,
"job": true
},
"indexByName": {},
"renameByName": {
"Value": "State",
"service": "Service"
}
}
}
],
"type": "table"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "stepAfter",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [
{
"options": {
"0": {
"color": "red",
"index": 1,
"text": "Down"
},
"1": {
"color": "green",
"index": 0,
"text": "Up"
}
},
"type": "value"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 16
},
"id": 7,
"options": {
"legend": {
"calcs": ["lastNotNull"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "up{job=~\"foxhunt-.*\"}",
"legendFormat": "{{job}}",
"refId": "A"
}
],
"title": "Service Health Timeline",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "line"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 8,
"x": 0,
"y": 24
},
"id": 8,
"options": {
"legend": {
"calcs": ["mean", "lastNotNull", "max"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "100 - (avg by(instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[2m])) * 100)",
"legendFormat": "CPU Usage",
"refId": "A"
}
],
"title": "System CPU Usage",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "line"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 85
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 8,
"x": 8,
"y": 24
},
"id": 9,
"options": {
"legend": {
"calcs": ["mean", "lastNotNull", "max"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100",
"legendFormat": "Memory Usage",
"refId": "A"
}
],
"title": "System Memory Usage",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "line"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 90
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 8,
"x": 16,
"y": 24
},
"id": 10,
"options": {
"legend": {
"calcs": ["mean", "lastNotNull", "max"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "(1 - (node_filesystem_avail_bytes{mountpoint=\"/\"} / node_filesystem_size_bytes{mountpoint=\"/\"})) * 100",
"legendFormat": "Disk Usage",
"refId": "A"
}
],
"title": "System Disk Usage",
"type": "timeseries"
}
],
"refresh": "5s",
"schemaVersion": 38,
"tags": ["foxhunt", "infrastructure", "monitoring"],
"templating": {
"list": []
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Foxhunt Infrastructure",
"uid": "foxhunt-infrastructure",
"version": 1,
"weekStart": ""
}

View File

@@ -1,518 +0,0 @@
{
"dashboard": {
"id": null,
"uid": "ml-training-comprehensive",
"title": "ML Training - Comprehensive Monitoring",
"description": "Real-time monitoring of ML training with loss curves, GPU metrics, NaN detection, and checkpoint tracking",
"tags": ["foxhunt", "ml", "training", "gpu", "monitoring"],
"timezone": "UTC",
"refresh": "10s",
"time": {
"from": "now-1h",
"to": "now"
},
"templating": {
"list": [
{
"name": "model_type",
"type": "query",
"query": "label_values(ml_training_loss, model_type)",
"multi": true,
"includeAll": true,
"allValue": ".*"
},
{
"name": "job_id",
"type": "query",
"query": "label_values(ml_training_loss{model_type=~\"$model_type\"}, job_id)",
"multi": false,
"includeAll": false
}
]
},
"panels": [
{
"id": 1,
"title": "Training Jobs by Status",
"type": "stat",
"gridPos": {"h": 4, "w": 8, "x": 0, "y": 0},
"targets": [
{
"expr": "ml_training_jobs_by_status{status=\"running\"}",
"legendFormat": "Running",
"refId": "A"
},
{
"expr": "ml_training_jobs_by_status{status=\"pending\"}",
"legendFormat": "Pending",
"refId": "B"
},
{
"expr": "ml_training_jobs_by_status{status=\"failed\"}",
"legendFormat": "Failed",
"refId": "C"
}
],
"fieldConfig": {
"defaults": {
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "green"}
]
}
},
"overrides": [
{
"matcher": {"id": "byName", "options": "Failed"},
"properties": [
{"id": "color", "value": {"mode": "fixed", "fixedColor": "red"}}
]
}
]
}
},
{
"id": 2,
"title": "Training Speed (Epochs/sec)",
"type": "gauge",
"gridPos": {"h": 4, "w": 8, "x": 8, "y": 0},
"targets": [
{
"expr": "ml_training_epochs_per_second{model_type=~\"$model_type\",job_id=~\"$job_id\"}",
"legendFormat": "{{model_type}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "ops",
"min": 0,
"max": 2,
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "red"},
{"value": 0.1, "color": "yellow"},
{"value": 0.5, "color": "green"}
]
}
}
}
},
{
"id": 3,
"title": "NaN Detection Count (CRITICAL)",
"type": "stat",
"gridPos": {"h": 4, "w": 8, "x": 16, "y": 0},
"targets": [
{
"expr": "sum(ml_training_nan_count)",
"legendFormat": "Total NaN Events",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "green"},
{"value": 1, "color": "red"}
]
}
}
},
"options": {
"colorMode": "background"
}
},
{
"id": 4,
"title": "Training Loss Curves (All Models)",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 4},
"targets": [
{
"expr": "ml_training_loss{model_type=~\"$model_type\"}",
"legendFormat": "{{model_type}} (Job: {{job_id}})",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineWidth": 2,
"fillOpacity": 10
}
}
},
"options": {
"legend": {
"displayMode": "table",
"placement": "bottom",
"calcs": ["lastNotNull", "min"]
}
}
},
{
"id": 5,
"title": "Validation Loss Curves",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 4},
"targets": [
{
"expr": "ml_training_validation_loss{model_type=~\"$model_type\"}",
"legendFormat": "{{model_type}} (Job: {{job_id}})",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineWidth": 2,
"fillOpacity": 10
}
}
},
"options": {
"legend": {
"displayMode": "table",
"placement": "bottom",
"calcs": ["lastNotNull", "min"]
}
}
},
{
"id": 6,
"title": "GPU Utilization Timeline",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 12},
"targets": [
{
"expr": "ml_gpu_utilization_percent",
"legendFormat": "GPU {{gpu_id}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "percent",
"min": 0,
"max": 100,
"custom": {
"fillOpacity": 20
},
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "red"},
{"value": 30, "color": "yellow"},
{"value": 60, "color": "green"},
{"value": 95, "color": "red"}
]
}
}
}
},
{
"id": 7,
"title": "GPU Memory Usage",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 12},
"targets": [
{
"expr": "100 * ml_gpu_memory_used_bytes / ml_gpu_memory_total_bytes",
"legendFormat": "GPU {{gpu_id}} Memory %",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "percent",
"min": 0,
"max": 100,
"custom": {
"fillOpacity": 30
},
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "green"},
{"value": 80, "color": "yellow"},
{"value": 90, "color": "orange"},
{"value": 95, "color": "red"}
]
}
}
}
},
{
"id": 8,
"title": "Training Progress",
"type": "gauge",
"gridPos": {"h": 6, "w": 8, "x": 0, "y": 20},
"targets": [
{
"expr": "ml_training_progress_percent{job_id=~\"$job_id\"}",
"legendFormat": "{{model_type}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "percent",
"min": 0,
"max": 100,
"thresholds": {
"mode": "percentage",
"steps": [
{"value": 0, "color": "blue"},
{"value": 50, "color": "yellow"},
{"value": 90, "color": "green"}
]
}
}
}
},
{
"id": 9,
"title": "Current Epoch",
"type": "stat",
"gridPos": {"h": 6, "w": 8, "x": 8, "y": 20},
"targets": [
{
"expr": "ml_training_current_epoch{job_id=~\"$job_id\"}",
"legendFormat": "{{model_type}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "short"
}
}
},
{
"id": 10,
"title": "Model Accuracy",
"type": "gauge",
"gridPos": {"h": 6, "w": 8, "x": 16, "y": 20},
"targets": [
{
"expr": "ml_model_accuracy{job_id=~\"$job_id\"}",
"legendFormat": "{{model_type}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "percentunit",
"min": 0,
"max": 1,
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "red"},
{"value": 0.85, "color": "yellow"},
{"value": 0.90, "color": "green"}
]
}
}
}
},
{
"id": 11,
"title": "GPU Temperature",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 26},
"targets": [
{
"expr": "ml_gpu_temperature_celsius",
"legendFormat": "GPU {{gpu_id}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "celsius",
"custom": {
"fillOpacity": 20
},
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "green"},
{"value": 75, "color": "yellow"},
{"value": 85, "color": "red"}
]
}
}
}
},
{
"id": 12,
"title": "Training Iteration Duration (P95)",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 26},
"targets": [
{
"expr": "histogram_quantile(0.95, rate(ml_training_iteration_seconds_bucket{model_type=~\"$model_type\"}[5m]))",
"legendFormat": "{{model_type}} P95",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "s"
}
}
},
{
"id": 13,
"title": "Checkpoint Creation Events",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 34},
"targets": [
{
"expr": "rate(ml_checkpoint_saves_total{model_type=~\"$model_type\"}[5m])",
"legendFormat": "{{model_type}} Saves/sec",
"refId": "A"
},
{
"expr": "rate(ml_checkpoint_save_failures_total{model_type=~\"$model_type\"}[5m])",
"legendFormat": "{{model_type}} Failures/sec",
"refId": "B"
}
],
"fieldConfig": {
"defaults": {
"unit": "ops"
},
"overrides": [
{
"matcher": {"id": "byFrameRefID", "options": "B"},
"properties": [
{"id": "color", "value": {"mode": "fixed", "fixedColor": "red"}}
]
}
]
}
},
{
"id": 14,
"title": "Checkpoint Save Duration",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 34},
"targets": [
{
"expr": "histogram_quantile(0.95, rate(ml_checkpoint_save_duration_seconds_bucket{model_type=~\"$model_type\"}[5m]))",
"legendFormat": "{{model_type}} P95",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "s"
}
}
},
{
"id": 15,
"title": "Model Convergence Rate",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 42},
"targets": [
{
"expr": "ml_training_convergence_rate{model_type=~\"$model_type\"}",
"legendFormat": "{{model_type}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line"
}
}
}
},
{
"id": 16,
"title": "Data Loading Performance",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 42},
"targets": [
{
"expr": "histogram_quantile(0.95, rate(ml_training_data_loading_seconds_bucket{model_type=~\"$model_type\"}[5m]))",
"legendFormat": "{{model_type}} Data Load P95",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "s"
}
}
},
{
"id": 17,
"title": "Training Failures by Type",
"type": "stat",
"gridPos": {"h": 6, "w": 12, "x": 0, "y": 50},
"targets": [
{
"expr": "sum by (error_type) (ml_training_failures_total)",
"legendFormat": "{{error_type}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "green"},
{"value": 1, "color": "red"}
]
}
}
},
"options": {
"colorMode": "background"
}
},
{
"id": 18,
"title": "GPU Errors",
"type": "stat",
"gridPos": {"h": 6, "w": 12, "x": 12, "y": 50},
"targets": [
{
"expr": "sum(rate(ml_gpu_errors_total[5m]))",
"legendFormat": "GPU Errors/sec",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "ops",
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "green"},
{"value": 0.01, "color": "red"}
]
}
}
},
"options": {
"colorMode": "background"
}
}
]
}
}

View File

@@ -1,390 +0,0 @@
{
"dashboard": {
"id": null,
"title": "ML Training & Inference Monitoring",
"description": "Monitor ML model training, GPU utilization, and inference performance",
"tags": ["foxhunt", "ml", "gpu", "training", "inference"],
"timezone": "UTC",
"refresh": "10s",
"time": {
"from": "now-1h",
"to": "now"
},
"panels": [
{
"id": 1,
"title": "ML Service Health",
"type": "stat",
"gridPos": {"h": 4, "w": 6, "x": 0, "y": 0},
"targets": [
{
"expr": "up{job=\"ml_training_service\"}",
"legendFormat": "Service Status",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"mappings": [
{"options": {"0": {"text": "DOWN", "color": "red"}}, "type": "value"},
{"options": {"1": {"text": "HEALTHY", "color": "green"}}, "type": "value"}
],
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "red"},
{"value": 1, "color": "green"}
]
}
}
},
"options": {
"colorMode": "background"
}
},
{
"id": 2,
"title": "ML Inference Latency (P99)",
"type": "stat",
"gridPos": {"h": 4, "w": 6, "x": 6, "y": 0},
"targets": [
{
"expr": "histogram_quantile(0.99, rate(ml_inference_duration_milliseconds_bucket[1m]))",
"legendFormat": "P99 Latency (ms)",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "ms",
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "green"},
{"value": 50, "color": "yellow"},
{"value": 100, "color": "red"}
]
}
}
},
"options": {
"colorMode": "value"
}
},
{
"id": 3,
"title": "Model Accuracy",
"type": "gauge",
"gridPos": {"h": 4, "w": 6, "x": 12, "y": 0},
"targets": [
{
"expr": "ml_model_accuracy",
"legendFormat": "{{model}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"min": 0,
"max": 1,
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "red"},
{"value": 0.85, "color": "yellow"},
{"value": 0.90, "color": "green"}
]
}
}
}
},
{
"id": 4,
"title": "GPU Utilization",
"type": "gauge",
"gridPos": {"h": 4, "w": 6, "x": 18, "y": 0},
"targets": [
{
"expr": "ml_gpu_utilization_percent",
"legendFormat": "GPU {{gpu_id}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "percent",
"min": 0,
"max": 100,
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "red"},
{"value": 30, "color": "yellow"},
{"value": 60, "color": "green"},
{"value": 95, "color": "red"}
]
}
}
}
},
{
"id": 5,
"title": "Inference Latency Percentiles",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 4},
"targets": [
{
"expr": "histogram_quantile(0.50, rate(ml_inference_duration_milliseconds_bucket[1m]))",
"legendFormat": "P50",
"refId": "A"
},
{
"expr": "histogram_quantile(0.95, rate(ml_inference_duration_milliseconds_bucket[1m]))",
"legendFormat": "P95",
"refId": "B"
},
{
"expr": "histogram_quantile(0.99, rate(ml_inference_duration_milliseconds_bucket[1m]))",
"legendFormat": "P99",
"refId": "C"
}
],
"fieldConfig": {
"defaults": {
"unit": "ms"
}
}
},
{
"id": 6,
"title": "Predictions per Second",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 4},
"targets": [
{
"expr": "rate(ml_predictions_total[1m])",
"legendFormat": "{{model}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "ops"
}
}
},
{
"id": 7,
"title": "GPU Memory Usage",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 12},
"targets": [
{
"expr": "ml_gpu_memory_used_bytes / 1024 / 1024 / 1024",
"legendFormat": "GPU {{gpu_id}} Used (GB)",
"refId": "A"
},
{
"expr": "ml_gpu_memory_total_bytes / 1024 / 1024 / 1024",
"legendFormat": "GPU {{gpu_id}} Total (GB)",
"refId": "B"
}
],
"fieldConfig": {
"defaults": {
"unit": "decgbytes"
}
}
},
{
"id": 8,
"title": "GPU Temperature",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 12},
"targets": [
{
"expr": "ml_gpu_temperature_celsius",
"legendFormat": "GPU {{gpu_id}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "celsius",
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "green"},
{"value": 75, "color": "yellow"},
{"value": 85, "color": "red"}
]
}
}
}
},
{
"id": 9,
"title": "Training Loss",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 20},
"targets": [
{
"expr": "ml_training_loss",
"legendFormat": "{{model}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line"
}
}
}
},
{
"id": 10,
"title": "Model Cache Hit Rate",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 20},
"targets": [
{
"expr": "100 * rate(ml_model_cache_hits[5m]) / (rate(ml_model_cache_hits[5m]) + rate(ml_model_cache_misses[5m]))",
"legendFormat": "Cache Hit Rate %",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "percent",
"min": 0,
"max": 100
}
}
},
{
"id": 11,
"title": "Model Loading Failures",
"type": "stat",
"gridPos": {"h": 4, "w": 6, "x": 0, "y": 28},
"targets": [
{
"expr": "rate(ml_model_load_failures_total[5m])",
"legendFormat": "Failures/sec",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "ops",
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "green"},
{"value": 0.1, "color": "yellow"},
{"value": 1, "color": "red"}
]
}
}
},
"options": {
"colorMode": "background"
}
},
{
"id": 12,
"title": "Prediction Errors",
"type": "stat",
"gridPos": {"h": 4, "w": 6, "x": 6, "y": 28},
"targets": [
{
"expr": "100 * rate(ml_prediction_errors_total[5m]) / rate(ml_predictions_total[5m])",
"legendFormat": "Error Rate %",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "percent",
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "green"},
{"value": 1, "color": "yellow"},
{"value": 5, "color": "red"}
]
}
}
},
"options": {
"colorMode": "background"
}
},
{
"id": 13,
"title": "Model Drift Score",
"type": "stat",
"gridPos": {"h": 4, "w": 6, "x": 12, "y": 28},
"targets": [
{
"expr": "ml_model_drift_score",
"legendFormat": "{{model}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "green"},
{"value": 0.10, "color": "yellow"},
{"value": 0.15, "color": "red"}
]
}
}
},
"options": {
"colorMode": "value"
}
},
{
"id": 14,
"title": "Training Data Age",
"type": "stat",
"gridPos": {"h": 4, "w": 6, "x": 18, "y": 28},
"targets": [
{
"expr": "(time() - ml_training_data_last_updated_timestamp) / 3600",
"legendFormat": "Hours Since Update",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "h",
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "green"},
{"value": 12, "color": "yellow"},
{"value": 24, "color": "red"}
]
}
}
},
"options": {
"colorMode": "background"
}
}
],
"templating": {
"list": []
},
"annotations": {
"list": []
},
"schemaVersion": 39,
"version": 1
}
}

View File

@@ -1,505 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": null,
"links": [],
"liveNow": false,
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 70
},
{
"color": "red",
"value": 90
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 6,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "9.0.0",
"targets": [
{
"expr": "100 - (avg by(instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[2m])) * 100)",
"interval": "",
"legendFormat": "CPU Usage",
"refId": "A"
}
],
"title": "CPU Usage",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 70
},
{
"color": "red",
"value": 85
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 6,
"x": 6,
"y": 0
},
"id": 2,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "9.0.0",
"targets": [
{
"expr": "(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100",
"interval": "",
"legendFormat": "Memory Usage",
"refId": "A"
}
],
"title": "Memory Usage",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "yellow",
"value": 20
},
{
"color": "green",
"value": 50
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 6,
"x": 12,
"y": 0
},
"id": 3,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "9.0.0",
"targets": [
{
"expr": "(node_filesystem_avail_bytes / node_filesystem_size_bytes) * 100",
"interval": "",
"legendFormat": "Disk Space Available",
"refId": "A"
}
],
"title": "Disk Space Available",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"mappings": [
{
"options": {
"0": {
"color": "red",
"text": "Down"
},
"1": {
"color": "green",
"text": "Up"
}
},
"type": "value"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 6,
"x": 18,
"y": 0
},
"id": 4,
"options": {
"colorMode": "background",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "name"
},
"pluginVersion": "9.0.0",
"targets": [
{
"expr": "up{job=~\"foxhunt-.*\"}",
"interval": "",
"legendFormat": "{{ job }}",
"refId": "A"
}
],
"title": "Service Status",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 8
},
"id": 5,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"expr": "100 - (avg by(instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100)",
"interval": "",
"legendFormat": "CPU Usage",
"refId": "A"
},
{
"expr": "(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100",
"interval": "",
"legendFormat": "Memory Usage",
"refId": "B"
}
],
"title": "System Resources Over Time",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "ops"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 8
},
"id": 6,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"expr": "rate(node_disk_reads_completed_total[5m])",
"interval": "",
"legendFormat": "Disk Reads",
"refId": "A"
},
{
"expr": "rate(node_disk_writes_completed_total[5m])",
"interval": "",
"legendFormat": "Disk Writes",
"refId": "B"
},
{
"expr": "rate(node_network_receive_packets_total[5m])",
"interval": "",
"legendFormat": "Network RX",
"refId": "C"
},
{
"expr": "rate(node_network_transmit_packets_total[5m])",
"interval": "",
"legendFormat": "Network TX",
"refId": "D"
}
],
"title": "I/O Operations",
"type": "timeseries"
}
],
"schemaVersion": 37,
"style": "dark",
"tags": [
"foxhunt",
"system"
],
"templating": {
"list": []
},
"time": {
"from": "now-15m",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Foxhunt System Overview",
"uid": "foxhunt-system-overview",
"version": 1,
"weekStart": ""
}

View File

@@ -1,886 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 1,
"id": null,
"links": [],
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "line"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 100
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"legend": {
"calcs": ["mean", "lastNotNull", "sum"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "rate(foxhunt_orders_submitted_total[1m])",
"legendFormat": "Orders Submitted/sec",
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "rate(foxhunt_trades_total[1m])",
"legendFormat": "Trades Executed/sec",
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "rate(foxhunt_orders_rejected_total[1m])",
"legendFormat": "Orders Rejected/sec",
"refId": "C"
}
],
"title": "Order Flow",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "line"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 0.0005
},
{
"color": "red",
"value": 0.001
}
]
},
"unit": "s"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 0
},
"id": 2,
"options": {
"legend": {
"calcs": ["mean", "lastNotNull", "max"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "histogram_quantile(0.50, rate(foxhunt_order_processing_duration_seconds_bucket[5m]))",
"legendFormat": "P50 Execution Latency",
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "histogram_quantile(0.95, rate(foxhunt_order_processing_duration_seconds_bucket[5m]))",
"legendFormat": "P95 Execution Latency",
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "histogram_quantile(0.99, rate(foxhunt_order_processing_duration_seconds_bucket[5m]))",
"legendFormat": "P99 Execution Latency",
"refId": "C"
}
],
"title": "Order Execution Latency (P50/P95/P99)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 8
},
"id": 3,
"options": {
"legend": {
"calcs": ["lastNotNull"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "foxhunt_positions_open",
"legendFormat": "Open Positions",
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "rate(foxhunt_positions_updated_total[1m])",
"legendFormat": "Position Updates/sec",
"refId": "B"
}
],
"title": "Position Management",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "normal"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 8
},
"id": 4,
"options": {
"legend": {
"calcs": ["sum"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "rate(foxhunt_risk_checks_total[1m])",
"legendFormat": "Total Risk Checks/sec",
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "rate(foxhunt_risk_violations_total[1m])",
"legendFormat": "Risk Violations/sec",
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "rate(foxhunt_risk_check_failures_total[1m])",
"legendFormat": "Risk Check Failures/sec",
"refId": "C"
}
],
"title": "Risk Management",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"max": 100,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 60
},
{
"color": "red",
"value": 80
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 6,
"x": 0,
"y": 16
},
"id": 5,
"options": {
"orientation": "auto",
"reduceOptions": {
"values": false,
"calcs": ["lastNotNull"],
"fields": ""
},
"showThresholdLabels": false,
"showThresholdMarkers": true
},
"pluginVersion": "10.2.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "(foxhunt_position_size_total / foxhunt_position_limit_total) * 100",
"refId": "A"
}
],
"title": "Position Limit Utilization",
"type": "gauge"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"max": 10,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 3
},
{
"color": "red",
"value": 5
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 6,
"x": 6,
"y": 16
},
"id": 6,
"options": {
"orientation": "auto",
"reduceOptions": {
"values": false,
"calcs": ["lastNotNull"],
"fields": ""
},
"showThresholdLabels": false,
"showThresholdMarkers": true
},
"pluginVersion": "10.2.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "foxhunt_portfolio_drawdown_percent",
"refId": "A"
}
],
"title": "Portfolio Drawdown",
"type": "gauge"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "line"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 0.0005
}
]
},
"unit": "s"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 16
},
"id": 7,
"options": {
"legend": {
"calcs": ["mean", "lastNotNull", "max"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "histogram_quantile(0.50, rate(foxhunt_market_data_latency_seconds_bucket[5m]))",
"legendFormat": "P50 Market Data Latency",
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "histogram_quantile(0.95, rate(foxhunt_market_data_latency_seconds_bucket[5m]))",
"legendFormat": "P95 Market Data Latency",
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "histogram_quantile(0.99, rate(foxhunt_market_data_latency_seconds_bucket[5m]))",
"legendFormat": "P99 Market Data Latency",
"refId": "C"
}
],
"title": "Market Data Latency (P50/P95/P99)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "currencyUSD"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 24
},
"id": 8,
"options": {
"legend": {
"calcs": ["lastNotNull"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "foxhunt_portfolio_value_total",
"legendFormat": "Total Portfolio Value",
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "foxhunt_realized_pnl_total",
"legendFormat": "Realized PnL",
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "foxhunt_unrealized_pnl_total",
"legendFormat": "Unrealized PnL",
"refId": "C"
}
],
"title": "Portfolio Performance",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 24
},
"id": 9,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": ["sum"],
"show": false
},
"showHeader": true
},
"pluginVersion": "10.2.2",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "b4c55c0d-6a2f-4a70-a080-6f31d0dd02a2"
},
"expr": "topk(10, sum(rate(foxhunt_trades_total[5m])) by (symbol))",
"format": "table",
"instant": true,
"refId": "A"
}
],
"title": "Top 10 Most Active Symbols",
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {
"Time": true
},
"indexByName": {},
"renameByName": {
"Value": "Trades/sec",
"symbol": "Symbol"
}
}
}
],
"type": "table"
}
],
"refresh": "5s",
"schemaVersion": 38,
"tags": ["foxhunt", "trading", "performance"],
"templating": {
"list": []
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Foxhunt Trading Service",
"uid": "foxhunt-trading-service",
"version": 1,
"weekStart": ""
}

View File

@@ -1,383 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": null,
"links": [],
"liveNow": false,
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "ops"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"expr": "rate(foxhunt_trades_total[1m])",
"interval": "",
"legendFormat": "Trades/sec",
"refId": "A"
},
{
"expr": "rate(foxhunt_orders_total[1m])",
"interval": "",
"legendFormat": "Orders/sec",
"refId": "B"
}
],
"title": "Trading Activity",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 0.0005
},
{
"color": "red",
"value": 0.001
}
]
},
"unit": "s"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 0
},
"id": 2,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "9.0.0",
"targets": [
{
"expr": "foxhunt_order_processing_duration_seconds{quantile=\"0.95\"}",
"interval": "",
"legendFormat": "95th Percentile",
"refId": "A"
}
],
"title": "Order Processing Latency (95th percentile)",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "currencyUSD"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 8
},
"id": 3,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"expr": "foxhunt_portfolio_value_total",
"interval": "",
"legendFormat": "Portfolio Value",
"refId": "A"
},
{
"expr": "foxhunt_unrealized_pnl_total",
"interval": "",
"legendFormat": "Unrealized PnL",
"refId": "B"
},
{
"expr": "foxhunt_realized_pnl_total",
"interval": "",
"legendFormat": "Realized PnL",
"refId": "C"
}
],
"title": "Portfolio Performance",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"vis": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 8
},
"id": 4,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"expr": "foxhunt_position_size_total by (symbol)",
"interval": "",
"legendFormat": "{{ symbol }}",
"refId": "A"
}
],
"title": "Position Sizes by Symbol",
"type": "timeseries"
}
],
"schemaVersion": 37,
"style": "dark",
"tags": [
"foxhunt",
"trading"
],
"templating": {
"list": []
},
"time": {
"from": "now-5m",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Foxhunt Trading Overview",
"uid": "foxhunt-trading-overview",
"version": 1,
"weekStart": ""
}

View File

@@ -1,810 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 1,
"id": null,
"links": [],
"liveNow": true,
"panels": [
{
"id": 1,
"title": "Regime Transitions Timeline",
"description": "Displays regime changes over time with CUSUM alert triggers. Alert if >50 transitions/hour (flip-flopping).",
"type": "timeseries",
"gridPos": {"h": 8, "w": 24, "x": 0, "y": 0},
"datasource": {
"type": "postgres",
"uid": "postgres"
},
"targets": [
{
"format": "time_series",
"rawSql": "SELECT\n event_timestamp AS time,\n symbol,\n from_regime || ' → ' || to_regime AS metric,\n 1 AS value,\n CASE\n WHEN cusum_alert_triggered THEN 'CUSUM Alert'\n ELSE 'Normal'\n END AS alert_type\nFROM regime_transitions\nWHERE\n event_timestamp >= NOW() - INTERVAL '24 hours'\nORDER BY event_timestamp ASC",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "points",
"lineInterpolation": "stepAfter",
"barAlignment": 0,
"lineWidth": 2,
"fillOpacity": 0,
"gradientMode": "none",
"spanNulls": false,
"showPoints": "always",
"pointSize": 8,
"stacking": {
"mode": "none",
"group": "A"
},
"axisPlacement": "auto",
"axisLabel": "Regime Transitions",
"scaleDistribution": {
"type": "linear"
},
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"thresholdsStyle": {
"mode": "off"
}
},
"color": {
"mode": "palette-classic"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{"value": null, "color": "green"}
]
},
"unit": "short"
},
"overrides": [
{
"matcher": {"id": "byName", "options": "CUSUM Alert"},
"properties": [
{
"id": "color",
"value": {
"mode": "fixed",
"fixedColor": "red"
}
},
{
"id": "custom.pointSize",
"value": 12
}
]
}
]
},
"options": {
"tooltip": {
"mode": "multi",
"sort": "none"
},
"legend": {
"showLegend": true,
"displayMode": "table",
"placement": "right",
"calcs": ["count"]
}
},
"pluginVersion": "9.5.0"
},
{
"id": 2,
"title": "Feature Extraction Latency (P50/P99)",
"description": "Wave D feature extraction performance. Target: <1ms (1000μs). Alert if P99 >2ms.",
"type": "timeseries",
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 8},
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"targets": [
{
"expr": "histogram_quantile(0.50, rate(wave_d_feature_extraction_duration_seconds_bucket[5m])) * 1000",
"legendFormat": "P50 Latency (ms)",
"refId": "A"
},
{
"expr": "histogram_quantile(0.99, rate(wave_d_feature_extraction_duration_seconds_bucket[5m])) * 1000",
"legendFormat": "P99 Latency (ms)",
"refId": "B"
},
{
"expr": "avg(rate(wave_d_feature_extraction_duration_seconds_sum[5m]) / rate(wave_d_feature_extraction_duration_seconds_count[5m])) * 1000",
"legendFormat": "Average Latency (ms)",
"refId": "C"
}
],
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"barAlignment": 0,
"lineWidth": 2,
"fillOpacity": 10,
"gradientMode": "opacity",
"spanNulls": false,
"showPoints": "never",
"pointSize": 5,
"stacking": {
"mode": "none",
"group": "A"
},
"axisPlacement": "auto",
"axisLabel": "Latency (ms)",
"scaleDistribution": {
"type": "linear"
},
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"thresholdsStyle": {
"mode": "line"
}
},
"color": {
"mode": "palette-classic"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{"value": null, "color": "green"},
{"value": 1, "color": "yellow"},
{"value": 2, "color": "red"}
]
},
"unit": "ms"
},
"overrides": [
{
"matcher": {"id": "byName", "options": "P99 Latency (ms)"},
"properties": [
{
"id": "color",
"value": {
"mode": "fixed",
"fixedColor": "orange"
}
},
{
"id": "custom.lineWidth",
"value": 3
}
]
}
]
},
"options": {
"tooltip": {
"mode": "multi",
"sort": "desc"
},
"legend": {
"showLegend": true,
"displayMode": "table",
"placement": "bottom",
"calcs": ["mean", "max", "lastNotNull"]
}
},
"pluginVersion": "9.5.0"
},
{
"id": 3,
"title": "Regime Distribution (24h)",
"description": "Percentage distribution of detected regimes over the last 24 hours",
"type": "piechart",
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 8},
"datasource": {
"type": "postgres",
"uid": "postgres"
},
"targets": [
{
"format": "table",
"rawSql": "SELECT\n regime AS metric,\n COUNT(*) AS value\nFROM regime_states\nWHERE\n event_timestamp >= NOW() - INTERVAL '24 hours'\nGROUP BY regime\nORDER BY value DESC",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
}
},
"mappings": [],
"unit": "short"
},
"overrides": [
{
"matcher": {"id": "byName", "options": "Trending"},
"properties": [
{
"id": "color",
"value": {
"mode": "fixed",
"fixedColor": "green"
}
}
]
},
{
"matcher": {"id": "byName", "options": "Ranging"},
"properties": [
{
"id": "color",
"value": {
"mode": "fixed",
"fixedColor": "blue"
}
}
]
},
{
"matcher": {"id": "byName", "options": "Volatile"},
"properties": [
{
"id": "color",
"value": {
"mode": "fixed",
"fixedColor": "orange"
}
}
]
},
{
"matcher": {"id": "byName", "options": "Crisis"},
"properties": [
{
"id": "color",
"value": {
"mode": "fixed",
"fixedColor": "red"
}
}
]
},
{
"matcher": {"id": "byName", "options": "Normal"},
"properties": [
{
"id": "color",
"value": {
"mode": "fixed",
"fixedColor": "light-green"
}
}
]
},
{
"matcher": {"id": "byName", "options": "Illiquid"},
"properties": [
{
"id": "color",
"value": {
"mode": "fixed",
"fixedColor": "yellow"
}
}
]
},
{
"matcher": {"id": "byName", "options": "Momentum"},
"properties": [
{
"id": "color",
"value": {
"mode": "fixed",
"fixedColor": "purple"
}
}
]
}
]
},
"options": {
"pieType": "pie",
"tooltip": {
"mode": "single"
},
"legend": {
"displayMode": "table",
"placement": "right",
"showLegend": true,
"values": ["value", "percent"]
},
"reduceOptions": {
"values": false,
"fields": "",
"calcs": ["lastNotNull"]
},
"displayLabels": ["percent"]
},
"pluginVersion": "9.5.0"
},
{
"id": 4,
"title": "Adaptive Strategy Metrics (Real-time)",
"description": "Position sizing and stop-loss adjustments by regime. Position: 0.2x-1.5x, Stop-loss: 1.5x-4.0x ATR",
"type": "timeseries",
"gridPos": {"h": 8, "w": 24, "x": 0, "y": 16},
"datasource": {
"type": "postgres",
"uid": "postgres"
},
"targets": [
{
"format": "time_series",
"rawSql": "SELECT\n event_timestamp AS time,\n symbol || ' - ' || regime AS metric,\n position_multiplier AS value\nFROM adaptive_strategy_metrics\nWHERE\n event_timestamp >= NOW() - INTERVAL '24 hours'\nORDER BY event_timestamp ASC",
"refId": "A",
"alias": "Position Multiplier"
},
{
"format": "time_series",
"rawSql": "SELECT\n event_timestamp AS time,\n symbol || ' - ' || regime AS metric,\n stop_loss_multiplier AS value\nFROM adaptive_strategy_metrics\nWHERE\n event_timestamp >= NOW() - INTERVAL '24 hours'\nORDER BY event_timestamp ASC",
"refId": "B",
"alias": "Stop-Loss Multiplier"
},
{
"format": "time_series",
"rawSql": "SELECT\n event_timestamp AS time,\n symbol || ' - ' || regime AS metric,\n regime_sharpe AS value\nFROM adaptive_strategy_metrics\nWHERE\n event_timestamp >= NOW() - INTERVAL '24 hours'\n AND regime_sharpe IS NOT NULL\nORDER BY event_timestamp ASC",
"refId": "C",
"alias": "Regime Sharpe Ratio"
},
{
"format": "time_series",
"rawSql": "SELECT\n event_timestamp AS time,\n symbol || ' - ' || regime AS metric,\n risk_budget_utilization * 100 AS value\nFROM adaptive_strategy_metrics\nWHERE\n event_timestamp >= NOW() - INTERVAL '24 hours'\n AND risk_budget_utilization IS NOT NULL\nORDER BY event_timestamp ASC",
"refId": "D",
"alias": "Risk Budget Utilization (%)"
}
],
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"barAlignment": 0,
"lineWidth": 2,
"fillOpacity": 15,
"gradientMode": "opacity",
"spanNulls": false,
"showPoints": "auto",
"pointSize": 5,
"stacking": {
"mode": "none",
"group": "A"
},
"axisPlacement": "auto",
"axisLabel": "",
"scaleDistribution": {
"type": "linear"
},
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"thresholdsStyle": {
"mode": "off"
}
},
"color": {
"mode": "palette-classic"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{"value": null, "color": "green"}
]
},
"unit": "short"
},
"overrides": [
{
"matcher": {"id": "byFrameRefID", "options": "A"},
"properties": [
{
"id": "displayName",
"value": "Position Multiplier (0.2x-1.5x)"
},
{
"id": "color",
"value": {
"mode": "fixed",
"fixedColor": "blue"
}
},
{
"id": "custom.axisPlacement",
"value": "left"
},
{
"id": "min",
"value": 0
},
{
"id": "max",
"value": 2
}
]
},
{
"matcher": {"id": "byFrameRefID", "options": "B"},
"properties": [
{
"id": "displayName",
"value": "Stop-Loss Multiplier (1.5x-4.0x)"
},
{
"id": "color",
"value": {
"mode": "fixed",
"fixedColor": "orange"
}
},
{
"id": "custom.axisPlacement",
"value": "left"
},
{
"id": "min",
"value": 1
},
{
"id": "max",
"value": 5
}
]
},
{
"matcher": {"id": "byFrameRefID", "options": "C"},
"properties": [
{
"id": "displayName",
"value": "Regime Sharpe Ratio (>1.5 target)"
},
{
"id": "color",
"value": {
"mode": "fixed",
"fixedColor": "green"
}
},
{
"id": "custom.axisPlacement",
"value": "right"
},
{
"id": "min",
"value": 0
}
]
},
{
"matcher": {"id": "byFrameRefID", "options": "D"},
"properties": [
{
"id": "displayName",
"value": "Risk Budget Utilization (<80% target)"
},
{
"id": "color",
"value": {
"mode": "fixed",
"fixedColor": "purple"
}
},
{
"id": "custom.axisPlacement",
"value": "right"
},
{
"id": "unit",
"value": "percent"
},
{
"id": "min",
"value": 0
},
{
"id": "max",
"value": 100
}
]
}
]
},
"options": {
"tooltip": {
"mode": "multi",
"sort": "desc"
},
"legend": {
"showLegend": true,
"displayMode": "table",
"placement": "bottom",
"calcs": ["mean", "max", "lastNotNull"]
}
},
"pluginVersion": "9.5.0"
},
{
"id": 5,
"title": "Rollback Alert: Flip-Flopping Detection",
"description": "CRITICAL: >50 transitions/hour triggers Level 1 rollback",
"type": "stat",
"gridPos": {"h": 4, "w": 6, "x": 0, "y": 24},
"datasource": {
"type": "postgres",
"uid": "postgres"
},
"targets": [
{
"format": "table",
"rawSql": "SELECT\n COUNT(*) AS value\nFROM regime_transitions\nWHERE\n event_timestamp >= NOW() - INTERVAL '1 hour'",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{"value": null, "color": "green"},
{"value": 30, "color": "yellow"},
{"value": 50, "color": "red"}
]
},
"color": {
"mode": "thresholds"
},
"unit": "short"
},
"overrides": []
},
"options": {
"colorMode": "background",
"graphMode": "none",
"justifyMode": "center",
"orientation": "auto",
"reduceOptions": {
"values": false,
"fields": "",
"calcs": ["lastNotNull"]
},
"textMode": "value_and_name",
"text": {
"titleSize": 14,
"valueSize": 40
}
},
"pluginVersion": "9.5.0"
},
{
"id": 6,
"title": "Rollback Alert: False Positives",
"description": "WARNING: >80% error rate triggers Level 1 rollback",
"type": "stat",
"gridPos": {"h": 4, "w": 6, "x": 6, "y": 24},
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"targets": [
{
"expr": "(sum(regime_detection_errors_total) / sum(regime_detections_total)) * 100",
"legendFormat": "Error Rate (%)",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{"value": null, "color": "green"},
{"value": 50, "color": "yellow"},
{"value": 80, "color": "red"}
]
},
"color": {
"mode": "thresholds"
},
"unit": "percent"
},
"overrides": []
},
"options": {
"colorMode": "background",
"graphMode": "none",
"justifyMode": "center",
"orientation": "auto",
"reduceOptions": {
"values": false,
"fields": "",
"calcs": ["lastNotNull"]
},
"textMode": "value_and_name",
"text": {
"titleSize": 14,
"valueSize": 40
}
},
"pluginVersion": "9.5.0"
},
{
"id": 7,
"title": "Rollback Alert: Data Corruption",
"description": "CRITICAL: NaN/Inf triggers immediate Level 3 rollback",
"type": "stat",
"gridPos": {"h": 4, "w": 6, "x": 12, "y": 24},
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"targets": [
{
"expr": "wave_d_features_nan_count + wave_d_features_inf_count",
"legendFormat": "NaN/Inf Count",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{"value": null, "color": "green"},
{"value": 1, "color": "red"}
]
},
"color": {
"mode": "thresholds"
},
"unit": "short"
},
"overrides": []
},
"options": {
"colorMode": "background",
"graphMode": "none",
"justifyMode": "center",
"orientation": "auto",
"reduceOptions": {
"values": false,
"fields": "",
"calcs": ["lastNotNull"]
},
"textMode": "value_and_name",
"text": {
"titleSize": 14,
"valueSize": 40
}
},
"pluginVersion": "9.5.0"
},
{
"id": 8,
"title": "System Health",
"description": "Service uptime monitoring. Down >5 minutes triggers Level 3 rollback.",
"type": "stat",
"gridPos": {"h": 4, "w": 6, "x": 18, "y": 24},
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"targets": [
{
"expr": "up{job=\"ml_training_service\"}",
"legendFormat": "ML Training",
"refId": "A"
},
{
"expr": "up{job=\"trading_service\"}",
"legendFormat": "Trading",
"refId": "B"
},
{
"expr": "up{job=\"api_gateway\"}",
"legendFormat": "API Gateway",
"refId": "C"
}
],
"fieldConfig": {
"defaults": {
"mappings": [
{"options": {"0": {"text": "DOWN", "color": "red"}}, "type": "value"},
{"options": {"1": {"text": "UP", "color": "green"}}, "type": "value"}
],
"thresholds": {
"mode": "absolute",
"steps": [
{"value": 0, "color": "red"},
{"value": 1, "color": "green"}
]
},
"color": {
"mode": "thresholds"
},
"unit": "short"
},
"overrides": []
},
"options": {
"colorMode": "background",
"graphMode": "none",
"justifyMode": "center",
"orientation": "horizontal",
"reduceOptions": {
"values": false,
"fields": "",
"calcs": ["lastNotNull"]
},
"textMode": "value_and_name",
"text": {
"titleSize": 14,
"valueSize": 24
}
},
"pluginVersion": "9.5.0"
}
],
"refresh": "10s",
"schemaVersion": 38,
"style": "dark",
"tags": ["foxhunt", "wave-d", "regime-detection", "adaptive-strategy"],
"templating": {
"list": []
},
"time": {
"from": "now-24h",
"to": "now"
},
"timepicker": {
"refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"]
},
"timezone": "UTC",
"title": "Wave D - Regime Detection & Adaptive Strategies",
"uid": "wave_d_regime_detection",
"version": 1,
"weekStart": ""
}

View File

@@ -1,46 +0,0 @@
apiVersion: 1
providers:
# Trading System Dashboards
- name: 'foxhunt-trading'
orgId: 1
folder: 'Foxhunt Trading'
type: file
disableDeletion: false
updateIntervalSeconds: 30
allowUiUpdates: true
options:
path: /var/lib/grafana/dashboards/trading
# System Monitoring Dashboards
- name: 'foxhunt-system'
orgId: 1
folder: 'System Monitoring'
type: file
disableDeletion: false
updateIntervalSeconds: 30
allowUiUpdates: true
options:
path: /var/lib/grafana/dashboards/system
# Risk Management Dashboards
- name: 'foxhunt-risk'
orgId: 1
folder: 'Risk Management'
type: file
disableDeletion: false
updateIntervalSeconds: 30
allowUiUpdates: true
options:
path: /var/lib/grafana/dashboards/risk
# Market Data Dashboards
- name: 'foxhunt-market-data'
orgId: 1
folder: 'Market Data'
type: file
disableDeletion: false
updateIntervalSeconds: 30
allowUiUpdates: true
options:
path: /var/lib/grafana/dashboards/market-data

View File

@@ -1,72 +0,0 @@
apiVersion: 1
datasources:
# Prometheus - Main metrics source
- name: Prometheus
type: prometheus
access: proxy
orgId: 1
url: http://foxhunt-prometheus:9090
basicAuth: false
isDefault: true
version: 1
editable: true
jsonData:
httpMethod: POST
queryTimeout: 60s
timeInterval: 5s
# InfluxDB - Time-series data
- name: InfluxDB
type: influxdb
access: proxy
orgId: 1
url: http://influxdb:8086
basicAuth: false
version: 1
editable: true
database: market_data
user: admin
secureJsonData:
password: ${INFLUXDB_PASSWORD}
jsonData:
httpMode: GET
keepCookies: []
# PostgreSQL - Application data
- name: PostgreSQL
type: postgres
access: proxy
orgId: 1
url: foxhunt-postgres:5432
basicAuth: false
version: 1
editable: true
database: foxhunt
user: foxhunt
secureJsonData:
password: ${POSTGRES_PASSWORD}
jsonData:
sslmode: disable
maxOpenConns: 100
maxIdleConns: 100
connMaxLifetime: 14400
# ClickHouse - Analytics data
- name: ClickHouse
type: grafana-clickhouse-datasource
access: proxy
orgId: 1
url: http://clickhouse:8123
basicAuth: false
version: 1
editable: true
database: foxhunt
user: default
secureJsonData:
password: ${CLICKHOUSE_PASSWORD}
jsonData:
defaultDatabase: foxhunt
port: 8123
server: clickhouse
username: default

View File

@@ -1,314 +0,0 @@
{
"dashboard": {
"id": null,
"uid": "dqn-staging-v1",
"title": "DQN Model Staging - Paper Trading",
"tags": ["ml", "dqn", "staging", "paper-trading"],
"timezone": "browser",
"schemaVersion": 38,
"version": 1,
"refresh": "30s",
"panels": [
{
"id": 1,
"title": "DQN Inference Latency (μs)",
"type": "timeseries",
"gridPos": { "x": 0, "y": 0, "w": 12, "h": 8 },
"targets": [
{
"expr": "histogram_quantile(0.50, rate(ml_model_inference_latency_us_bucket{model_id=\"DQN\"}[5m]))",
"legendFormat": "P50",
"refId": "A"
},
{
"expr": "histogram_quantile(0.95, rate(ml_model_inference_latency_us_bucket{model_id=\"DQN\"}[5m]))",
"legendFormat": "P95",
"refId": "B"
},
{
"expr": "histogram_quantile(0.99, rate(ml_model_inference_latency_us_bucket{model_id=\"DQN\"}[5m]))",
"legendFormat": "P99",
"refId": "C"
}
],
"fieldConfig": {
"defaults": {
"unit": "µs",
"thresholds": {
"mode": "absolute",
"steps": [
{ "value": null, "color": "green" },
{ "value": 50, "color": "yellow" },
{ "value": 100, "color": "red" }
]
}
}
}
},
{
"id": 2,
"title": "DQN Prediction Confidence",
"type": "timeseries",
"gridPos": { "x": 12, "y": 0, "w": 12, "h": 8 },
"targets": [
{
"expr": "avg(ml_model_prediction_confidence{model_id=\"DQN\"})",
"legendFormat": "Avg Confidence",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "percentunit",
"min": 0,
"max": 1,
"thresholds": {
"mode": "absolute",
"steps": [
{ "value": null, "color": "red" },
{ "value": 0.6, "color": "yellow" },
{ "value": 0.8, "color": "green" }
]
}
}
}
},
{
"id": 3,
"title": "Paper Trading PnL (USD)",
"type": "timeseries",
"gridPos": { "x": 0, "y": 8, "w": 12, "h": 8 },
"targets": [
{
"expr": "sum(ensemble_paper_trading_pnl_cents{config=\"dqn_staging\"}) / 100",
"legendFormat": "Total PnL",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "currencyUSD",
"thresholds": {
"mode": "absolute",
"steps": [
{ "value": null, "color": "red" },
{ "value": 0, "color": "green" }
]
}
}
}
},
{
"id": 4,
"title": "Trade Win Rate (%)",
"type": "gauge",
"gridPos": { "x": 12, "y": 8, "w": 6, "h": 8 },
"targets": [
{
"expr": "(sum(rate(ensemble_paper_trading_winning_trades{config=\"dqn_staging\"}[1h])) / sum(rate(ensemble_paper_trading_total_trades{config=\"dqn_staging\"}[1h]))) * 100",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "percent",
"min": 0,
"max": 100,
"thresholds": {
"mode": "absolute",
"steps": [
{ "value": null, "color": "red" },
{ "value": 50, "color": "yellow" },
{ "value": 55, "color": "green" }
]
}
}
}
},
{
"id": 5,
"title": "Sharpe Ratio",
"type": "gauge",
"gridPos": { "x": 18, "y": 8, "w": 6, "h": 8 },
"targets": [
{
"expr": "ensemble_paper_trading_sharpe_ratio{config=\"dqn_staging\"}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "none",
"min": -2,
"max": 3,
"thresholds": {
"mode": "absolute",
"steps": [
{ "value": null, "color": "red" },
{ "value": 1.0, "color": "yellow" },
{ "value": 1.5, "color": "green" }
]
}
}
}
},
{
"id": 6,
"title": "DQN Predictions per Second",
"type": "timeseries",
"gridPos": { "x": 0, "y": 16, "w": 12, "h": 8 },
"targets": [
{
"expr": "rate(ml_model_predictions_total{model_id=\"DQN\"}[5m])",
"legendFormat": "Predictions/sec",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "ops"
}
}
},
{
"id": 7,
"title": "GPU Memory Usage (MB)",
"type": "timeseries",
"gridPos": { "x": 12, "y": 16, "w": 12, "h": 8 },
"targets": [
{
"expr": "ml_model_gpu_memory_mb{model_id=\"DQN\"}",
"legendFormat": "GPU Memory",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "mbytes",
"max": 4096,
"thresholds": {
"mode": "absolute",
"steps": [
{ "value": null, "color": "green" },
{ "value": 3000, "color": "yellow" },
{ "value": 3500, "color": "red" }
]
}
}
}
},
{
"id": 8,
"title": "Active Paper Trading Positions",
"type": "stat",
"gridPos": { "x": 0, "y": 24, "w": 6, "h": 4 },
"targets": [
{
"expr": "ensemble_paper_trading_active_positions{config=\"dqn_staging\"}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "none",
"thresholds": {
"mode": "absolute",
"steps": [
{ "value": null, "color": "green" },
{ "value": 4, "color": "yellow" },
{ "value": 5, "color": "red" }
]
}
}
}
},
{
"id": 9,
"title": "Total Trades Today",
"type": "stat",
"gridPos": { "x": 6, "y": 24, "w": 6, "h": 4 },
"targets": [
{
"expr": "increase(ensemble_paper_trading_total_trades{config=\"dqn_staging\"}[24h])",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "none"
}
}
},
{
"id": 10,
"title": "Max Drawdown (%)",
"type": "stat",
"gridPos": { "x": 12, "y": 24, "w": 6, "h": 4 },
"targets": [
{
"expr": "ensemble_paper_trading_max_drawdown_pct{config=\"dqn_staging\"}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "percent",
"thresholds": {
"mode": "absolute",
"steps": [
{ "value": null, "color": "green" },
{ "value": 3, "color": "yellow" },
{ "value": 5, "color": "red" }
]
}
}
}
},
{
"id": 11,
"title": "Model Inference Errors",
"type": "stat",
"gridPos": { "x": 18, "y": 24, "w": 6, "h": 4 },
"targets": [
{
"expr": "increase(ml_model_inference_errors_total{model_id=\"DQN\"}[1h])",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "none",
"thresholds": {
"mode": "absolute",
"steps": [
{ "value": null, "color": "green" },
{ "value": 5, "color": "yellow" },
{ "value": 10, "color": "red" }
]
}
}
}
}
],
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {
"refresh_intervals": ["10s", "30s", "1m", "5m", "15m", "30m", "1h"]
},
"annotations": {
"list": [
{
"name": "Model Deployments",
"datasource": "Prometheus",
"expr": "changes(ml_model_deployment_timestamp{model_id=\"DQN\"}[5m])",
"tagKeys": "model_id,version",
"textFormat": "DQN v{{version}} deployed",
"iconColor": "blue"
}
]
}
},
"overwrite": true
}

View File

@@ -1,727 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": null,
"links": [],
"liveNow": false,
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "line"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 10
}
]
},
"unit": "ms"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"legend": {
"calcs": ["mean", "last"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "ml_dbn_load_time_ms",
"legendFormat": "DBN Load Time (target: <10ms)",
"range": true,
"refId": "A"
}
],
"title": "DBN Data Loading Time",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "line"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 50
}
]
},
"unit": "µs"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 0
},
"id": 2,
"options": {
"legend": {
"calcs": ["mean", "last"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "ml_inference_latency_us{model=\"DQN\"}",
"legendFormat": "DQN",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "ml_inference_latency_us{model=\"PPO\"}",
"legendFormat": "PPO",
"range": true,
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "ml_inference_latency_us{model=\"MAMBA-2\"}",
"legendFormat": "MAMBA-2",
"range": true,
"refId": "C"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "ml_inference_latency_us{model=\"TFT\"}",
"legendFormat": "TFT",
"range": true,
"refId": "D"
}
],
"title": "Inference Latency by Model (target: <50µs)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "ms"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 8
},
"id": 3,
"options": {
"legend": {
"calcs": ["mean", "last"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "ml_training_step_time_ms{model=\"DQN\"}",
"legendFormat": "DQN",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "ml_training_step_time_ms{model=\"PPO\"}",
"legendFormat": "PPO",
"range": true,
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "ml_training_step_time_ms{model=\"MAMBA-2\"}",
"legendFormat": "MAMBA-2",
"range": true,
"refId": "C"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "ml_training_step_time_ms{model=\"TFT\"}",
"legendFormat": "TFT",
"range": true,
"refId": "D"
}
],
"title": "Training Step Time by Model",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "decmbytes"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 8
},
"id": 4,
"options": {
"legend": {
"calcs": ["mean", "last", "max"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "ml_memory_usage_mb{model=\"DQN\"}",
"legendFormat": "DQN (50-150MB)",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "ml_memory_usage_mb{model=\"PPO\"}",
"legendFormat": "PPO (50-200MB)",
"range": true,
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "ml_memory_usage_mb{model=\"MAMBA-2\"}",
"legendFormat": "MAMBA-2 (150-500MB)",
"range": true,
"refId": "C"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "ml_memory_usage_mb{model=\"TFT\"}",
"legendFormat": "TFT (1.5-2.5GB)",
"range": true,
"refId": "D"
}
],
"title": "Memory Usage by Model",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "green",
"value": 0
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 6,
"x": 0,
"y": 16
},
"id": 5,
"options": {
"colorMode": "value",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": ["lastNotNull"],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "9.5.3",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "ml_regression_detected",
"legendFormat": "Regressions",
"range": true,
"refId": "A"
}
],
"title": "Performance Regressions Detected",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 5
},
{
"color": "red",
"value": 10
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 6,
"x": 6,
"y": 16
},
"id": 6,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": ["lastNotNull"],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "9.5.3",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "ml_performance_change_percent",
"legendFormat": "{{metric}}",
"range": true,
"refId": "A"
}
],
"title": "Performance Change vs Baseline",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "ms"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 16
},
"id": 7,
"options": {
"legend": {
"calcs": ["mean", "last"],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "ml_feature_extraction_time_ms",
"legendFormat": "Feature Extraction Time",
"range": true,
"refId": "A"
}
],
"title": "Feature Extraction Time (16 features + 10 indicators)",
"type": "timeseries"
}
],
"refresh": "10s",
"schemaVersion": 38,
"style": "dark",
"tags": ["ml", "performance", "training"],
"templating": {
"list": []
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "ML Training Performance Tracking",
"uid": "ml-performance-tracking",
"version": 1,
"weekStart": ""
}

View File

@@ -23,8 +23,10 @@ resources:
persistence:
enabled: false
adminUser: admin
adminPassword: uzICCLSPjdP6i2HiYjPID68ijFpn9C
admin:
existingSecret: grafana-admin
userKey: admin-user
passwordKey: admin-password
envFromSecrets:
- name: db-credentials
@@ -96,7 +98,7 @@ dashboardProviders:
providers:
- name: default
orgId: 1
folder: GitLab
folder: Foxhunt
type: file
disableDeletion: false
editable: true
@@ -105,7 +107,7 @@ dashboardProviders:
dashboards:
default:
gitlab-overview:
node-exporter:
gnetId: 1860
revision: 37
datasource: Prometheus

File diff suppressed because it is too large Load Diff

View File

@@ -1,587 +0,0 @@
{
"__inputs": [
{ "name": "DS_PROMETHEUS", "label": "Prometheus", "description": "", "type": "datasource", "pluginId": "prometheus" }
],
"id": null,
"uid": "foxhunt-gitlab-services",
"title": "GitLab + Foxhunt Services",
"description": "GitLab internals (Puma, Sidekiq, Gitaly) and Foxhunt microservice health",
"tags": ["gitlab", "foxhunt", "services", "kubernetes"],
"timezone": "browser",
"schemaVersion": 39,
"version": 1,
"refresh": "30s",
"time": {
"from": "now-1h",
"to": "now"
},
"fiscalYearStartMonth": 0,
"liveNow": false,
"weekStart": "",
"templating": {
"list": [
{
"name": "namespace",
"type": "query",
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"query": "label_values(kube_pod_info, namespace)",
"refresh": 2,
"includeAll": true,
"multi": true,
"allValue": ".*",
"current": {
"selected": true,
"text": "All",
"value": "$__all"
},
"sort": 1
}
]
},
"panels": [
{
"id": 1,
"type": "row",
"title": "GitLab - Puma",
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 },
"collapsed": false,
"panels": []
},
{
"id": 2,
"type": "timeseries",
"title": "Puma HTTP Request Rate",
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 1 },
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"fillOpacity": 15,
"gradientMode": "scheme",
"spanNulls": false,
"showPoints": "never",
"stacking": { "mode": "none", "group": "A" },
"axisPlacement": "auto",
"lineWidth": 1
},
"unit": "reqps",
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] },
"color": { "mode": "palette-classic" },
"mappings": []
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "table", "placement": "bottom", "calcs": ["mean", "max"] }
},
"targets": [
{
"refId": "A",
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"expr": "sum(rate(http_requests_total{job=~\".*puma.*\"}[5m])) by (method)",
"legendFormat": "{{ method }}"
}
]
},
{
"id": 3,
"type": "timeseries",
"title": "Puma Request Duration (p95)",
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 1 },
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"fillOpacity": 10,
"gradientMode": "none",
"spanNulls": false,
"showPoints": "never",
"stacking": { "mode": "none", "group": "A" },
"axisPlacement": "auto",
"lineWidth": 1
},
"unit": "s",
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] },
"color": { "mode": "palette-classic" },
"mappings": []
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "table", "placement": "bottom", "calcs": ["mean", "max"] }
},
"targets": [
{
"refId": "A",
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"expr": "histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket{job=~\".*puma.*\"}[5m])) by (le))",
"legendFormat": "p95"
},
{
"refId": "B",
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"expr": "histogram_quantile(0.50, sum(rate(http_request_duration_seconds_bucket{job=~\".*puma.*\"}[5m])) by (le))",
"legendFormat": "p50"
}
]
},
{
"id": 10,
"type": "row",
"title": "GitLab - Sidekiq",
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 9 },
"collapsed": false,
"panels": []
},
{
"id": 11,
"type": "timeseries",
"title": "Sidekiq Job Processing Rate",
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 10 },
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"fillOpacity": 15,
"gradientMode": "scheme",
"spanNulls": false,
"showPoints": "never",
"stacking": { "mode": "none", "group": "A" },
"axisPlacement": "auto",
"lineWidth": 1
},
"unit": "ops",
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] },
"color": { "mode": "palette-classic" },
"mappings": []
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "table", "placement": "bottom", "calcs": ["mean", "max"] }
},
"targets": [
{
"refId": "A",
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"expr": "sum(rate(sidekiq_jobs_processed_total[5m]))",
"legendFormat": "Processed"
},
{
"refId": "B",
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"expr": "sum(rate(sidekiq_jobs_failed_total[5m]))",
"legendFormat": "Failed"
}
]
},
{
"id": 12,
"type": "stat",
"title": "Sidekiq Queue Size",
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 10 },
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"fieldConfig": {
"defaults": {
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null },
{ "color": "yellow", "value": 100 },
{ "color": "red", "value": 500 }
]
},
"mappings": [],
"color": { "mode": "thresholds" }
},
"overrides": []
},
"options": {
"reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false },
"orientation": "auto",
"textMode": "auto",
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto"
},
"targets": [
{
"refId": "A",
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"expr": "sum(sidekiq_queue_size)",
"legendFormat": "Queue Size",
"instant": true
}
]
},
{
"id": 20,
"type": "row",
"title": "GitLab - Gitaly",
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 18 },
"collapsed": false,
"panels": []
},
{
"id": 21,
"type": "timeseries",
"title": "Gitaly RPC Latency (p95)",
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 19 },
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"fillOpacity": 10,
"gradientMode": "none",
"spanNulls": false,
"showPoints": "never",
"stacking": { "mode": "none", "group": "A" },
"axisPlacement": "auto",
"lineWidth": 1
},
"unit": "s",
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] },
"color": { "mode": "palette-classic" },
"mappings": []
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "table", "placement": "bottom", "calcs": ["mean", "max"] }
},
"targets": [
{
"refId": "A",
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"expr": "histogram_quantile(0.95, sum(rate(grpc_server_handling_seconds_bucket{job=~\".*gitaly.*\"}[5m])) by (le, grpc_method))",
"legendFormat": "{{ grpc_method }}"
}
]
},
{
"id": 22,
"type": "timeseries",
"title": "Gitaly RPC Rate",
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 19 },
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"fillOpacity": 15,
"gradientMode": "none",
"spanNulls": false,
"showPoints": "never",
"stacking": { "mode": "normal", "group": "A" },
"axisPlacement": "auto",
"lineWidth": 1
},
"unit": "reqps",
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] },
"color": { "mode": "palette-classic" },
"mappings": []
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "table", "placement": "bottom", "calcs": ["mean", "max"] }
},
"targets": [
{
"refId": "A",
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"expr": "sum(rate(grpc_server_handled_total{job=~\".*gitaly.*\"}[5m])) by (grpc_code)",
"legendFormat": "{{ grpc_code }}"
}
]
},
{
"id": 30,
"type": "row",
"title": "Foxhunt Services - Resource Usage",
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 27 },
"collapsed": false,
"panels": []
},
{
"id": 31,
"type": "timeseries",
"title": "Container CPU Usage by Service",
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 28 },
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"fillOpacity": 15,
"gradientMode": "none",
"spanNulls": false,
"showPoints": "never",
"stacking": { "mode": "none", "group": "A" },
"axisPlacement": "auto",
"lineWidth": 1
},
"unit": "short",
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] },
"color": { "mode": "palette-classic" },
"mappings": []
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "table", "placement": "bottom", "calcs": ["mean", "max"] }
},
"targets": [
{
"refId": "A",
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"expr": "sum by (container) (rate(container_cpu_usage_seconds_total{namespace=~\"$namespace\", container=~\"web-gateway|api-gateway|trading-service|ml-training-service|backtesting-service|data-acquisition-service|broker-gateway-service|trading-agent-service\", image!=\"\"}[5m]))",
"legendFormat": "{{ container }}"
}
]
},
{
"id": 32,
"type": "timeseries",
"title": "Container Memory Usage by Service",
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 28 },
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"fillOpacity": 15,
"gradientMode": "none",
"spanNulls": false,
"showPoints": "never",
"stacking": { "mode": "none", "group": "A" },
"axisPlacement": "auto",
"lineWidth": 1
},
"unit": "bytes",
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] },
"color": { "mode": "palette-classic" },
"mappings": []
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "table", "placement": "bottom", "calcs": ["mean", "max"] }
},
"targets": [
{
"refId": "A",
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"expr": "sum by (container) (container_memory_working_set_bytes{namespace=~\"$namespace\", container=~\"web-gateway|api-gateway|trading-service|ml-training-service|backtesting-service|data-acquisition-service|broker-gateway-service|trading-agent-service\", image!=\"\"})",
"legendFormat": "{{ container }}"
}
]
},
{
"id": 40,
"type": "row",
"title": "Foxhunt Services - Pod Health",
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 36 },
"collapsed": false,
"panels": []
},
{
"id": 41,
"type": "timeseries",
"title": "Pod Restarts (by Container)",
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 37 },
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "bars",
"lineInterpolation": "linear",
"fillOpacity": 80,
"gradientMode": "none",
"spanNulls": false,
"showPoints": "never",
"stacking": { "mode": "normal", "group": "A" },
"axisPlacement": "auto",
"lineWidth": 1
},
"unit": "short",
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] },
"color": { "mode": "palette-classic" },
"mappings": []
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "table", "placement": "bottom", "calcs": ["sum", "max"] }
},
"targets": [
{
"refId": "A",
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"expr": "increase(kube_pod_container_status_restarts_total{namespace=~\"$namespace\"}[1h])",
"legendFormat": "{{ namespace }}/{{ pod }} ({{ container }})"
}
]
},
{
"id": 42,
"type": "table",
"title": "Pod Status by Namespace",
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 37 },
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"fieldConfig": {
"defaults": {
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] },
"mappings": [],
"color": { "mode": "thresholds" }
},
"overrides": [
{
"matcher": { "id": "byName", "options": "Failed" },
"properties": [
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null },
{ "color": "red", "value": 1 }
]
}
},
{ "id": "custom.displayMode", "value": "color-background" }
]
},
{
"matcher": { "id": "byName", "options": "Pending" },
"properties": [
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null },
{ "color": "yellow", "value": 1 }
]
}
},
{ "id": "custom.displayMode", "value": "color-background" }
]
}
]
},
"options": {
"showHeader": true,
"sortBy": [{ "displayName": "namespace", "desc": false }],
"footer": { "show": true, "reducer": ["sum"], "fields": "" }
},
"transformations": [
{
"id": "seriesToColumns",
"options": { "byField": "namespace" }
}
],
"targets": [
{
"refId": "A",
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"expr": "sum by (namespace) (kube_pod_status_phase{namespace=~\"$namespace\", phase=\"Running\"})",
"legendFormat": "Running",
"instant": true,
"format": "table"
},
{
"refId": "B",
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"expr": "sum by (namespace) (kube_pod_status_phase{namespace=~\"$namespace\", phase=\"Pending\"})",
"legendFormat": "Pending",
"instant": true,
"format": "table"
},
{
"refId": "C",
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"expr": "sum by (namespace) (kube_pod_status_phase{namespace=~\"$namespace\", phase=\"Failed\"})",
"legendFormat": "Failed",
"instant": true,
"format": "table"
}
]
},
{
"id": 50,
"type": "row",
"title": "Kubernetes - Deployments",
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 45 },
"collapsed": false,
"panels": []
},
{
"id": 51,
"type": "timeseries",
"title": "Deployment Replicas: Desired vs Available",
"gridPos": { "h": 8, "w": 24, "x": 0, "y": 46 },
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "line",
"lineInterpolation": "stepAfter",
"fillOpacity": 0,
"gradientMode": "none",
"spanNulls": false,
"showPoints": "never",
"stacking": { "mode": "none", "group": "A" },
"axisPlacement": "auto",
"lineWidth": 2
},
"unit": "short",
"thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] },
"color": { "mode": "palette-classic" },
"mappings": []
},
"overrides": []
},
"options": {
"tooltip": { "mode": "multi", "sort": "desc" },
"legend": { "displayMode": "table", "placement": "bottom", "calcs": ["last"] }
},
"targets": [
{
"refId": "A",
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"expr": "kube_deployment_spec_replicas{namespace=~\"$namespace\"}",
"legendFormat": "{{ deployment }} desired"
},
{
"refId": "B",
"datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
"expr": "kube_deployment_status_replicas_available{namespace=~\"$namespace\"}",
"legendFormat": "{{ deployment }} available"
}
]
}
]
}

View File

@@ -126,7 +126,6 @@ declare -A CONFIGMAP_GROUPS=(
[grafana-dashboards-cockpits]="foxhunt-cockpit.json foxhunt-trading-cockpit.json foxhunt-training-cockpit.json"
[grafana-dashboards-operations]="foxhunt-overview.json foxhunt-services.json foxhunt-traces.json foxhunt-logs.json"
[grafana-dashboards-infra]="cluster-overview.json gpu-overview.json foxhunt-infrastructure.json foxhunt-gpu-training.json"
[grafana-dashboards-cicd]="foxhunt-ci-pipelines.json gitlab-services.json"
)
# Folder mapping: ConfigMap name -> Grafana folder name (used by sidecar annotation)
@@ -134,7 +133,6 @@ declare -A CONFIGMAP_FOLDERS=(
[grafana-dashboards-cockpits]="Cockpits"
[grafana-dashboards-operations]="Operations"
[grafana-dashboards-infra]="Infrastructure"
[grafana-dashboards-cicd]="CI-CD"
)
deploy_configmaps() {
@@ -225,13 +223,11 @@ else
for dashboard in "${SCRIPT_DIR}/cluster-overview.json" \
"${SCRIPT_DIR}/gpu-overview.json" \
"${SCRIPT_DIR}/gitlab-services.json" \
"${SCRIPT_DIR}/foxhunt-overview.json" \
"${SCRIPT_DIR}/foxhunt-services.json" \
"${SCRIPT_DIR}/foxhunt-gpu-training.json" \
"${SCRIPT_DIR}/foxhunt-infrastructure.json" \
"${SCRIPT_DIR}/foxhunt-logs.json" \
"${SCRIPT_DIR}/foxhunt-ci-pipelines.json" \
"${SCRIPT_DIR}/foxhunt-cockpit.json" \
"${SCRIPT_DIR}/foxhunt-trading-cockpit.json" \
"${SCRIPT_DIR}/foxhunt-training-cockpit.json" \

View File

@@ -1,9 +0,0 @@
include "root" {
path = find_in_parent_folders("root.hcl")
}
terraform {
source = "../../../modules/cockpit"
}
inputs = {}

View File

@@ -1,28 +0,0 @@
# Custom metrics data source for K8s data plane
# retention_days: 31 = free tier (Scaleway data), higher = paid
resource "scaleway_cockpit_source" "k8s_metrics" {
project_id = var.project_id
name = "kapsule-data-plane"
type = "metrics"
retention_days = var.metrics_retention_days
}
# Push token for Grafana Alloy + Prometheus remote_write
resource "scaleway_cockpit_token" "k8s_push" {
project_id = var.project_id
name = "kapsule-push-token"
scopes {
query_metrics = true
write_metrics = true
query_logs = true
write_logs = true
}
}
# Grafana user for dashboard access
resource "scaleway_cockpit_grafana_user" "admin" {
project_id = var.project_id
login = var.grafana_login
role = var.grafana_role
}

View File

@@ -1,21 +0,0 @@
output "metrics_push_url" {
description = "Cockpit Mimir remote_write URL for Alloy/Prometheus"
value = scaleway_cockpit_source.k8s_metrics.push_url
}
output "push_token" {
description = "Token for authenticating remote_write requests"
value = scaleway_cockpit_token.k8s_push.secret_key
sensitive = true
}
output "grafana_url" {
description = "Cockpit Grafana dashboard URL"
value = scaleway_cockpit_grafana_user.admin.grafana_url
}
output "grafana_password" {
description = "Generated password for the Grafana user"
value = scaleway_cockpit_grafana_user.admin.password
sensitive = true
}

View File

@@ -1,22 +0,0 @@
variable "project_id" {
description = "Scaleway project ID"
type = string
}
variable "grafana_login" {
description = "Login for Cockpit Grafana admin user"
type = string
default = "foxhunt-admin"
}
variable "grafana_role" {
description = "Role for the Cockpit Grafana user (editor or viewer)"
type = string
default = "editor"
}
variable "metrics_retention_days" {
description = "Retention period for custom metrics in days (31 = free tier)"
type = number
default = 31
}

View File

@@ -1,791 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 1,
"id": null,
"links": [],
"liveNow": false,
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"description": "Order submission rate per second (1m average)",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "Orders/sec",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 20,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "smooth",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "ops"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"legend": {
"calcs": [
"last",
"max"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "desc"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "rate(broker_gateway_orders_submitted_total[1m])",
"legendFormat": "{{symbol}} {{order_type}} {{side}}",
"range": true,
"refId": "A"
}
],
"title": "Panel 1: Order Submission Rate (1m)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"description": "Order routing latency percentiles (P50, P95, P99)",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "Latency (ms)",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "smooth",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "line"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 50
},
{
"color": "red",
"value": 100
}
]
},
"unit": "ms"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "P99"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "red",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "P95"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "orange",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "P50"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "green",
"mode": "fixed"
}
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 0
},
"id": 2,
"options": {
"legend": {
"calcs": [
"last",
"max"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "desc"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "histogram_quantile(0.50, sum by(le, order_type) (rate(broker_gateway_order_latency_seconds_bucket[5m]))) * 1000",
"legendFormat": "P50 - {{order_type}}",
"range": true,
"refId": "P50"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "histogram_quantile(0.95, sum by(le, order_type) (rate(broker_gateway_order_latency_seconds_bucket[5m]))) * 1000",
"legendFormat": "P95 - {{order_type}}",
"range": true,
"refId": "P95"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "histogram_quantile(0.99, sum by(le, order_type) (rate(broker_gateway_order_latency_seconds_bucket[5m]))) * 1000",
"legendFormat": "P99 - {{order_type}}",
"range": true,
"refId": "P99"
}
],
"title": "Panel 2: Order Latency (P50, P95, P99)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"description": "FIX session connection status (green=connected, red=disconnected, yellow=reconnecting)",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [
{
"options": {
"0": {
"color": "red",
"index": 0,
"text": "DISCONNECTED"
},
"1": {
"color": "green",
"index": 1,
"text": "CONNECTED"
},
"2": {
"color": "yellow",
"index": 2,
"text": "RECONNECTING"
}
},
"type": "value"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "yellow",
"value": 1
},
{
"color": "green",
"value": 2
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 8,
"x": 0,
"y": 8
},
"id": 3,
"options": {
"orientation": "auto",
"reduceOptions": {
"values": false,
"calcs": [
"lastNotNull"
],
"fields": ""
},
"showThresholdLabels": false,
"showThresholdMarkers": true
},
"pluginVersion": "10.0.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "broker_gateway_fix_session_status",
"legendFormat": "{{session_id}}",
"range": true,
"refId": "A"
}
],
"title": "Panel 3: FIX Session Status",
"type": "gauge"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"description": "Position value trend by symbol over time",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": true,
"axisColorMode": "text",
"axisLabel": "Position Value (USD)",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 15,
"gradientMode": "opacity",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "smooth",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "currencyUSD"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 16,
"x": 8,
"y": 8
},
"id": 4,
"options": {
"legend": {
"calcs": [
"last",
"max",
"min"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "desc"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "broker_gateway_position_value_usd",
"legendFormat": "{{symbol}} - {{account_id}}",
"range": true,
"refId": "A"
}
],
"title": "Panel 4: Position Value Trend",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"description": "Error rate by type (stacked bar chart)",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "Errors/min",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "bars",
"fillOpacity": 80,
"gradientMode": "none",
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "normal"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 5
}
]
},
"unit": "ops"
},
"overrides": [
{
"matcher": {
"id": "byFrameRefID",
"options": "CRITICAL"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "dark-red",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byFrameRefID",
"options": "ERROR"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "red",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byFrameRefID",
"options": "WARNING"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "yellow",
"mode": "fixed"
}
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 16
},
"id": 5,
"options": {
"legend": {
"calcs": [
"sum"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "desc"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "rate(broker_gateway_error_total{severity=\"CRITICAL\"}[1m])",
"legendFormat": "CRITICAL - {{error_type}}",
"range": true,
"refId": "CRITICAL"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "rate(broker_gateway_error_total{severity=\"ERROR\"}[1m])",
"legendFormat": "ERROR - {{error_type}}",
"range": true,
"refId": "ERROR"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "rate(broker_gateway_error_total{severity=\"WARNING\"}[1m])",
"legendFormat": "WARNING - {{error_type}}",
"range": true,
"refId": "WARNING"
}
],
"title": "Panel 5: Error Rate by Type",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"description": "Top 10 slowest operations by average latency",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"type": "auto"
},
"inspect": false
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 50
},
{
"color": "red",
"value": 100
}
]
},
"unit": "ms"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Order Type"
},
"properties": [
{
"id": "custom.width",
"value": 150
}
]
},
{
"matcher": {
"id": "byName",
"options": "Avg Latency (ms)"
},
"properties": [
{
"id": "custom.width",
"value": 180
},
{
"id": "custom.cellOptions",
"value": {
"type": "color-background"
}
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 16
},
"id": 6,
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true,
"sortBy": [
{
"desc": true,
"displayName": "Avg Latency (ms)"
}
]
},
"pluginVersion": "10.0.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "prometheus"
},
"editorMode": "code",
"expr": "topk(10, \n (sum by(order_type) (rate(broker_gateway_order_latency_seconds_sum[5m])) \n / \n sum by(order_type) (rate(broker_gateway_order_latency_seconds_count[5m]))) \n * 1000\n)",
"format": "table",
"instant": true,
"legendFormat": "__auto",
"range": false,
"refId": "A"
}
],
"title": "Panel 6: Top 10 Slowest Operations",
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {
"Time": true
},
"indexByName": {
"Time": 0,
"Value": 2,
"order_type": 1
},
"renameByName": {
"Value": "Avg Latency (ms)",
"order_type": "Order Type"
}
}
}
],
"type": "table"
}
],
"refresh": "10s",
"schemaVersion": 38,
"style": "dark",
"tags": [
"broker_gateway",
"trading",
"fix",
"orders"
],
"templating": {
"list": []
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Broker Gateway Service - Order Routing & FIX Protocol",
"uid": "broker_gateway_dashboard",
"version": 1,
"weekStart": ""
}

View File

@@ -1,68 +0,0 @@
{
"dashboard": {
"title": "Broker Gateway Service - Overview",
"tags": ["foxhunt", "broker", "gateway"],
"timezone": "browser",
"panels": [
{
"title": "Order Submission Rate",
"type": "graph",
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 0 },
"targets": [
{
"expr": "rate(broker_gateway_orders_submitted_total[5m])",
"legendFormat": "Orders/sec"
}
]
},
{
"title": "Order Fill Rate",
"type": "graph",
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 0 },
"targets": [
{
"expr": "rate(broker_gateway_orders_filled_total[5m])",
"legendFormat": "Fills/sec"
}
]
},
{
"title": "FIX Message Latency",
"type": "graph",
"gridPos": { "h": 8, "w": 12, "x": 0, "y": 8 },
"targets": [
{
"expr": "histogram_quantile(0.99, rate(broker_gateway_fix_latency_bucket[5m]))",
"legendFormat": "P99"
},
{
"expr": "histogram_quantile(0.95, rate(broker_gateway_fix_latency_bucket[5m]))",
"legendFormat": "P95"
},
{
"expr": "histogram_quantile(0.50, rate(broker_gateway_fix_latency_bucket[5m]))",
"legendFormat": "P50"
}
]
},
{
"title": "Database Connection Pool",
"type": "graph",
"gridPos": { "h": 8, "w": 12, "x": 12, "y": 8 },
"targets": [
{
"expr": "broker_gateway_db_pool_connections",
"legendFormat": "Active"
},
{
"expr": "broker_gateway_db_pool_idle_connections",
"legendFormat": "Idle"
}
]
}
],
"refresh": "10s",
"schemaVersion": 16,
"version": 1
}
}

View File

@@ -1,12 +0,0 @@
apiVersion: 1
providers:
- name: 'Broker Gateway Dashboards'
orgId: 1
folder: 'Foxhunt'
type: file
disableDeletion: false
updateIntervalSeconds: 10
allowUiUpdates: true
options:
path: /var/lib/grafana/dashboards

View File

@@ -1,13 +0,0 @@
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://prometheus:9090
isDefault: true
editable: false
jsonData:
timeInterval: "15s"
queryTimeout: "60s"
httpMethod: "POST"