f3421b9718
* WIP * Review * Move scenarions * Structure fix * Edits, fix * Vale, x-refs * Feedback, tweaks * Consolidate HA, titles * Prettier * Prettier * Adding missing content * Minor edits * Links * Prettier
94 lines
3.8 KiB
Markdown
94 lines
3.8 KiB
Markdown
---
|
||
title: Git Sync with regional replication
|
||
menuTitle: Regional replication
|
||
description: Synchronize multiple regional Grafana instances from a shared Git location
|
||
weight: 30
|
||
---
|
||
|
||
# Git Sync with regional replication
|
||
|
||
Deploy multiple Grafana instances across regions. Synchronize them with the same Git location to ensure consistent dashboards everywhere.
|
||
|
||
## Use it for
|
||
|
||
- **Geographic distribution**: You deploy Grafana close to users in different regions.
|
||
- **Latency reduction**: Users need fast dashboard access from their location.
|
||
- **Data sovereignty**: You keep dashboard data in specific regions.
|
||
- **High availability**: You need dashboard availability across regions.
|
||
- **Consistent experience**: All users see the same dashboards regardless of region.
|
||
|
||
## Architecture
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────┐
|
||
│ GitHub Repository │
|
||
│ Repository: your-org/grafana-manifests │
|
||
│ Branch: main │
|
||
│ │
|
||
│ grafana-manifests/ │
|
||
│ └── shared/ │
|
||
│ ├── dashboard-global.json │
|
||
│ ├── dashboard-metrics.json │
|
||
│ └── dashboard-logs.json │
|
||
└─────────────────────────────────────────────────────┘
|
||
↕ ↕
|
||
Git Sync (shared/) Git Sync (shared/)
|
||
↕ ↕
|
||
┌────────────────────┐ ┌────────────────────┐
|
||
│ US Region │ │ EU Region │
|
||
│ Grafana │ │ Grafana │
|
||
│ │ │ │
|
||
│ Repository: │ │ Repository: │
|
||
│ - path: shared/ │ │ - path: shared/ │
|
||
└────────────────────┘ └────────────────────┘
|
||
```
|
||
|
||
## Repository structure
|
||
|
||
**In Git:**
|
||
|
||
```
|
||
your-org/grafana-manifests
|
||
└── shared/
|
||
├── dashboard-global.json
|
||
├── dashboard-metrics.json
|
||
└── dashboard-logs.json
|
||
```
|
||
|
||
**In Grafana Dashboards view (all regions):**
|
||
|
||
```
|
||
Dashboards
|
||
└── 📁 grafana-manifests/
|
||
├── Global Dashboard
|
||
├── Metrics Dashboard
|
||
└── Logs Dashboard
|
||
```
|
||
|
||
- All regional instances (US, EU, etc.) show identical folder structure
|
||
- Same folder name "grafana-manifests" in every region
|
||
- Same dashboards synced from the `shared/` path appear everywhere
|
||
- Users in any region see the exact same dashboards with the same titles
|
||
|
||
## Configuration parameters
|
||
|
||
All regions:
|
||
|
||
- Repository: `your-org/grafana-manifests`
|
||
- Branch: `main`
|
||
- Path: `shared/`
|
||
|
||
## How it works
|
||
|
||
1. All regional instances pull dashboards from `shared/`.
|
||
2. Any region’s change commits to Git.
|
||
3. Other regions pull updates during the next sync (or via webhooks).
|
||
4. Changes propagate across regions per sync interval.
|
||
|
||
## Considerations
|
||
|
||
- **Write conflicts**: If users in different regions modify the same dashboard simultaneously, Git uses last-write-wins.
|
||
- **Primary region**: Consider designating one region as the primary location for making dashboard changes.
|
||
- **Propagation time**: Changes propagate to all regions within the configured sync interval, or instantly if webhooks are configured.
|
||
- **Network reliability**: Ensure all regions have reliable connectivity to the Git repository.
|