#!/bin/bash # Check if Grafana container is running if ! docker-compose ps | grep -q grafana; then echo "Grafana container is not running. Starting it now..." docker-compose up -d grafana sleep 10 fi # Check if InfluxDB container is running if ! docker-compose ps | grep -q influxdb; then echo "InfluxDB container is not running. Starting it now..." docker-compose up -d influxdb sleep 10 fi # Check if Telegraf container is running if ! docker-compose ps | grep -q telegraf; then echo "Telegraf container is not running. Starting it now..." docker-compose up -d telegraf sleep 5 fi # Check if data is being written to InfluxDB echo "Checking if data is being written to InfluxDB..." docker-compose exec influxdb influx query 'from(bucket: "telegraf-bucket") |> range(start: -5m) |> filter(fn: (r) => r._measurement == "cpu") |> limit(n: 1)' # Check Grafana data source configuration echo -e "\nChecking Grafana data source configuration..." docker-compose exec grafana grafana-cli admin data-sources list # Check if the dashboard is loaded echo -e "\nChecking if the dashboard is loaded..." docker-compose exec grafana ls -la /etc/grafana/provisioning/dashboards/telegraf/ # Check Grafana logs for errors echo -e "\nChecking Grafana logs for errors..." docker-compose logs --tail=50 grafana | grep -i error || echo "No errors found in the last 50 lines of logs."