remove duplicate indexes and fix telemetry metrics
This commit is contained in:
parent
53c88d2262
commit
c431a45b0b
2 changed files with 54 additions and 26 deletions
|
|
@ -90,32 +90,7 @@ defmodule AprsmeWeb.Telemetry do
|
|||
summary("aprsme.packet_pipeline.batch.error", unit: :event, description: "Number of errors per batch"),
|
||||
summary("aprsme.packet_pipeline.batch.duration_ms", unit: :millisecond, description: "Batch insert duration (ms)"),
|
||||
|
||||
# System Monitor Metrics
|
||||
last_value("aprsme.system.memory.total", unit: {:byte, :megabyte}, description: "Total memory usage"),
|
||||
last_value("aprsme.system.memory.process", unit: {:byte, :megabyte}, description: "Process memory usage"),
|
||||
last_value("aprsme.system.memory.binary", unit: {:byte, :megabyte}, description: "Binary memory usage"),
|
||||
last_value("aprsme.system.memory.pressure", unit: :percent, description: "Memory pressure (0-1)"),
|
||||
last_value("aprsme.system.cpu.load1", description: "1-minute load average"),
|
||||
last_value("aprsme.system.cpu.load5", description: "5-minute load average"),
|
||||
last_value("aprsme.system.cpu.load15", description: "15-minute load average"),
|
||||
last_value("aprsme.system.cpu.pressure", unit: :percent, description: "CPU pressure (0-1)"),
|
||||
last_value("aprsme.system.processes.count", description: "Number of Erlang processes"),
|
||||
last_value("aprsme.system.processes.pressure", unit: :percent, description: "Process count pressure (0-1)"),
|
||||
last_value("aprsme.system.db_pool.size", description: "Database pool size"),
|
||||
last_value("aprsme.system.db_pool.available", description: "Available database connections"),
|
||||
last_value("aprsme.system.db_pool.pressure", unit: :percent, description: "Database pool pressure (0-1)"),
|
||||
last_value("aprsme.system.batch_size.current", description: "Current adaptive batch size"),
|
||||
last_value("aprsme.system.batch_size.min", description: "Minimum batch size"),
|
||||
last_value("aprsme.system.batch_size.max", description: "Maximum batch size"),
|
||||
|
||||
# INSERT Performance Optimizer Metrics
|
||||
last_value("aprsme.insert_optimizer.batch_size", description: "Current optimized INSERT batch size"),
|
||||
summary("aprsme.insert_optimizer.throughput",
|
||||
unit: {:hertz, :unit},
|
||||
description: "INSERT throughput (packets/sec)"
|
||||
),
|
||||
summary("aprsme.insert_optimizer.duration", unit: :millisecond, description: "INSERT duration per batch"),
|
||||
counter("aprsme.insert_optimizer.optimizations", description: "Number of optimization adjustments made"),
|
||||
# Note: SystemMonitor and InsertOptimizer metrics removed after reverting performance optimizations
|
||||
|
||||
# Spatial PubSub Metrics
|
||||
last_value("aprsme.spatial_pubsub.clients.count", description: "Number of connected clients"),
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
defmodule Aprsme.Repo.Migrations.RemoveDuplicateIndexes do
|
||||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
# Remove duplicate indexes to save 2.9GB of disk space
|
||||
|
||||
# 1. Remove packets_id_idx (1324 MB) - redundant with primary key packets_pkey
|
||||
# The primary key already provides an index on the id column
|
||||
execute("DROP INDEX IF EXISTS packets_id_idx")
|
||||
|
||||
# 2. Remove packets_location_spatial_idx (1060 MB) - redundant with packets_location_selective_idx
|
||||
# The selective index is more specific and provides better performance
|
||||
execute("DROP INDEX IF EXISTS packets_location_spatial_idx")
|
||||
|
||||
# 3. Remove packets_received_at_index (550 MB) - redundant with packets_received_at_idx
|
||||
# Both indexes serve the same purpose
|
||||
execute("DROP INDEX IF EXISTS packets_received_at_index")
|
||||
|
||||
# Also check for other potential duplicates mentioned in earlier migrations
|
||||
# Replaced by more specific indexes
|
||||
execute("DROP INDEX IF EXISTS packets_location_idx")
|
||||
|
||||
# Log the cleanup
|
||||
execute("""
|
||||
DO $$
|
||||
BEGIN
|
||||
RAISE NOTICE 'Duplicate indexes removed successfully. Estimated space saved: ~2.9GB';
|
||||
END $$;
|
||||
""")
|
||||
end
|
||||
|
||||
def down do
|
||||
# Recreate indexes if needed (though they are redundant)
|
||||
|
||||
# Recreate packets_id_idx
|
||||
execute("""
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS packets_id_idx
|
||||
ON packets(id)
|
||||
""")
|
||||
|
||||
# Recreate packets_location_spatial_idx
|
||||
execute("""
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS packets_location_spatial_idx
|
||||
ON packets USING GIST (location)
|
||||
""")
|
||||
|
||||
# Recreate packets_received_at_index (using original name from migration)
|
||||
execute("""
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS packets_received_at_index
|
||||
ON packets(received_at)
|
||||
""")
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Reference in a new issue