Garmin Grafana
Dockerized Python service that fetches Garmin Connect health and activity data into InfluxDB for long-term trend visualization with Grafana dashboards.
Garmin Grafana is a Dockerized data pipeline that logs into Garmin Connect, fetches health and activity metrics from your Garmin account, and stores them in an InfluxDB database for visualization in Grafana. It is designed for long-term tracking and custom dashboards beyond what the Garmin app offers.
Key Features
- Automated periodic syncing of Garmin Connect data into InfluxDB
- Prebuilt Grafana dashboard provisioning for health and fitness trend visualization
- Collects a wide range of metrics such as heart rate, steps, sleep (including SpO2 and HRV), stress, Body Battery, calories, and activity minutes
- Workout and activity timeline support, including GPS/pace/altitude/HR for recorded activities
- Historical backfilling (bulk fetching) to populate older data
- Multi-user instance setup for multiple Garmin accounts
- Data export options (for example CSV) to support external analysis
Use Cases
- Build a personal long-term health and fitness dashboard using Grafana
- Maintain a private local archive of Garmin health metrics and workouts
- Analyze trends and correlations across sleep, stress, HRV, training load, and recovery over months/years
Limitations and Considerations
- Depends on Garmin Connect access and may break if Garmin changes its APIs or login/2FA flows
- Initial setup may require interactive authentication (including 2FA) to generate and store tokens
Garmin Grafana is a strong fit for Garmin device users who want ownership of their time-series health data and flexible Grafana visualizations, with automation for ongoing syncing and optional historical imports.


