summaryrefslogtreecommitdiff
path: root/scripts/generate-test-data.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/generate-test-data.sh')
-rw-r--r--scripts/generate-test-data.sh51
1 files changed, 51 insertions, 0 deletions
diff --git a/scripts/generate-test-data.sh b/scripts/generate-test-data.sh
new file mode 100644
index 0000000..4db332e
--- /dev/null
+++ b/scripts/generate-test-data.sh
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+# Generate test data with actual timestamps for different time ranges
+# Run from repo root: ./scripts/generate-test-data.sh
+
+NOW=$(date +%s)000 # Current time in milliseconds
+ONE_HOUR_AGO=$((NOW - 3600000))
+ONE_DAY_AGO=$((NOW - 86400000))
+ONE_WEEK_AGO=$((NOW - 604800000))
+ONE_MONTH_AGO=$((NOW - 2592000000))
+
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
+cd "$REPO_ROOT"
+
+cat > test-all-ages.csv << EOF
+# Prometheus metrics in CSV format demonstrating all time ranges
+# Format: metric_name,labels,value,timestamp_ms
+
+# CURRENT data (< 5min old - will use Pushgateway/Realtime)
+app_requests_total,instance=current;env=prod,100,$NOW
+app_temperature_celsius,instance=current;zone=us-east,22.5,$NOW
+app_active_connections,instance=current;env=prod,50,$NOW
+
+# 1 HOUR OLD data (will use Remote Write/Historic)
+app_requests_total,instance=1h_ago;env=prod,95,$ONE_HOUR_AGO
+app_active_connections,instance=1h_ago;env=prod,45,$ONE_HOUR_AGO
+app_temperature_celsius,instance=1h_ago;zone=us-east,21.8,$ONE_HOUR_AGO
+
+# 1 DAY OLD data (will use Remote Write/Historic)
+app_requests_total,instance=1d_ago;env=prod,150,$ONE_DAY_AGO
+app_temperature_celsius,instance=1d_ago;zone=eu-west,18.3,$ONE_DAY_AGO
+app_active_connections,instance=1d_ago;env=prod,60,$ONE_DAY_AGO
+
+# 1 WEEK OLD data (will use Remote Write/Historic)
+app_requests_total,instance=1w_ago;env=prod,200,$ONE_WEEK_AGO
+app_jobs_processed_total,instance=1w_ago;env=prod;job_type=email;status=success,75,$ONE_WEEK_AGO
+app_temperature_celsius,instance=1w_ago;zone=asia,25.2,$ONE_WEEK_AGO
+
+# 1 MONTH OLD data (will use Remote Write/Historic)
+app_requests_total,instance=1m_ago;env=prod,180,$ONE_MONTH_AGO
+app_active_connections,instance=1m_ago;env=prod,30,$ONE_MONTH_AGO
+app_temperature_celsius,instance=1m_ago;zone=africa,28.7,$ONE_MONTH_AGO
+EOF
+
+echo "Generated test-all-ages.csv with the following timestamps:"
+echo " Current: $NOW ($(date -d @$((NOW/1000)) '+%Y-%m-%d %H:%M:%S' 2>/dev/null || date -r $((NOW/1000)) '+%Y-%m-%d %H:%M:%S' 2>/dev/null))"
+echo " 1h ago: $ONE_HOUR_AGO ($(date -d @$((ONE_HOUR_AGO/1000)) '+%Y-%m-%d %H:%M:%S' 2>/dev/null || date -r $((ONE_HOUR_AGO/1000)) '+%Y-%m-%d %H:%M:%S' 2>/dev/null))"
+echo " 1d ago: $ONE_DAY_AGO ($(date -d @$((ONE_DAY_AGO/1000)) '+%Y-%m-%d %H:%M:%S' 2>/dev/null || date -r $((ONE_DAY_AGO/1000)) '+%Y-%m-%d %H:%M:%S' 2>/dev/null))"
+echo " 1w ago: $ONE_WEEK_AGO ($(date -d @$((ONE_WEEK_AGO/1000)) '+%Y-%m-%d %H:%M:%S' 2>/dev/null || date -r $((ONE_WEEK_AGO/1000)) '+%Y-%m-%d %H:%M:%S' 2>/dev/null))"
+echo " 1m ago: $ONE_MONTH_AGO ($(date -d @$((ONE_MONTH_AGO/1000)) '+%Y-%m-%d %H:%M:%S' 2>/dev/null || date -r $((ONE_MONTH_AGO/1000)) '+%Y-%m-%d %H:%M:%S' 2>/dev/null))"