Files
glances/tests/test_export_clickhouse.sh
2026-03-22 10:15:17 +01:00

46 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# Pre-requisites:
# - docker
# - jq
# Exit on error
set -e
# echo "Clean previous test data..."
# rm -f /tmp/clickhouse-for-glances_cpu.csv
echo "Stop previous ClickHouse container..."
docker stop clickhouse-for-glances || true
docker rm clickhouse-for-glances || true
# Start ClickHouse and create the glances database
echo "Starting ClickHouse container..."
docker run -d \
--name clickhouse-for-glances \
-p 8123:8123 \
-p 9000:9000 \
--ulimit nofile=262144:262144 \
-e CLICKHOUSE_DB=glances \
-e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1 \
-e CLICKHOUSE_USER=default \
-e CLICKHOUSE_PASSWORD=password \
clickhouse/clickhouse-server
# Wait for ClickHouse to be ready (10 seconds)
echo "Waiting for ClickHouse to start (~ 10 seconds)..."
sleep 10
# Run glances with export to ClickHouse, stopping after 10 writes
# This will run synchronously now since we're using --stop-after
echo "Glances to export system stats to ClickHouse (duration: ~ 20 seconds)"
.venv/bin/python -m glances --config ./conf/glances.conf --export clickhouse --stop-after 10 --quiet
docker exec clickhouse-for-glances clickhouse-client --database=glances --query="SELECT * FROM cpu FORMAT CSV" > /tmp/clickhouse-for-glances_cpu.csv
.venv/bin/python ./tests-data/tools/csvcheck.py -i /tmp/clickhouse-for-glances_cpu.csv -l 8
# Stop and remove the ClickHouse container
echo "Stopping and removing ClickHouse container..."
docker stop clickhouse-for-glances && docker rm clickhouse-for-glances
echo "Script completed successfully!"