Git Sync 소개

Git Sync 소개 (Introduction to Git Sync)

이 문서는 Grafana의 Git Sync 기능을 소개해요. 대시보드를 JSON 파일로 Git provider에 저장해 코드처럼 관리하는 방법과, Git Sync가 동작하는 방식, 주요 사용 사례를 다뤄요.

출처: 문서

본문

Grafana의 Git Sync를 사용하면 리소스를 동기화해 대시보드를 JSON 파일로 모든 Git provider에 저장하고 코드처럼 관리할 수 있어요. 팀과 함께 버전 관리, 협업, 배포 자동화를 효율적으로 할 수 있어요.

Note Git Sync 기능은 계속 발전하고 있어요. Grafana에 문의해 지원을 받거나 만나는 문제를 보고해 이 기능 개선에 도움을 주세요.

동작 방식 (How it works)

Git Sync를 사용하면 외부 리소스를 Grafana 인스턴스와 연결할 수 있어요. 설정 후 모든 동기화된 리소스는 Git의 provisioned 폴더 아래에 위치하며, 해당 폴더 밖에는 프로비저닝되지 않은 리소스를 계속 둘 수 있어요.

Git Sync는 양방향(bidirectional)이에요. Grafana UI 또는 동기화된 저장소에서 provisioned 리소스를 수정할 수 있고, 변경 사항은 양쪽 모두에 반영돼요.

Git Sync는 Pure Git 저장소 유형을 통해 모든 Git provider에서 사용할 수 있으며, GitHub, GitHub Enterprise, GitLab, Bitbucket에 대해 특화된 강화 통합(enhanced integration)을 제공해요. 사용 등급(usage tier)을 포함한 자세한 내용은 Usage and performance limitations을 참고해요. Git Sync 작동 방식에 대한 자세한 내용은 핵심 개념(key concepts)을 참고해요.

Grafana UI에서 변경하기 (Make changes in the Grafana UI)

UI에서 대시보드를 직접 수정할 때마다 저장 시 그 변경 사항을 동기화된 Git 저장소에도 커밋할 수 있어요. 저장소에서 병합 전 PR 승인을 강제할지, 직접 커밋을 허용할지 설정을 구성할 수 있어요.

Git 저장소에서 변경하기 (Make changes in your Git repositories)

Grafana 인스턴스는 provisioned Git 리소스를 폴링(poll)해 동기화해요. 동기화된 Git 저장소에서 변경한 사항이 있다면 Grafana 데이터베이스에도 업데이트돼요. Grafana UI는 데이터베이스를 읽어 이러한 변경 사항을 UI에 반영해요.

  • 웹훅(webhook)이 없으면 Grafana는 지정된 간격으로 변경 사항을 폴링해요. 기본 폴링 간격은 60초이며, Grafana UI에서 이 설정을 변경할 수 있어요.
  • 웹훅 기능을 활성화하면 저장소 알림이 거의 즉시 나타나요.

일반적인 사용 사례 (Common use cases)

Note 아키텍처와 구성 세부 정보를 포함한 샘플 시나리오는 Git Sync 배포 시나리오를 참고해요.

Git Sync는 다음 사용 사례에 사용할 수 있어요:

버전 관리 및 감사 (Version control and auditing)

조직은 Grafana 대시보드의 구조화되고 버전 관리된 기록을 유지할 수 있어요. 버전 관리를 사용하면 필요할 때 이전 버전으로 되돌리고, 커밋 간 수정 사항을 비교하며, 대시보드 관리의 투명성을 보장할 수 있어요. 또한 상세한 변경 기록은 누가, 언제, 왜 변경했는지 문서화한 감사 로그(audit log)를 생성할 수 있어 컴플라이언스 노력을 강화해요.

자동 배포 및 CI/CD 통합 (Automated deployment and CI/CD integration)

팀은 대시보드 업데이트를 CI/CD 파이프라인에 통합해 워크플로를 간소화할 수 있어요. GitHub에 변경 사항을 푸시하면 자동화된 프로세스가 gcx CLI와 Foundation SDK를 사용해 검증 검사, 대시보드 구성 테스트, 프로그래밍 방식 배포를 트리거할 수 있어요. 이는 사람의 실수 위험을 줄이고 환경 간 일관성을 보장하며, 프로덕션 모니터링과 분석에 사용되는 대시보드의 더 빠르고 안정적인 릴리스 주기를 가능하게 해요.

협업 대시보드 개발 (Collaborative dashboard development)

Git Sync를 사용하면 여러 사용자가 서로의 수정 사항을 덮어쓰지 않고 동시에 대시보드를 작업할 수 있어요. 풀 리퀘스트와 브랜치 기반 워크플로를 활용해 팀은 main 브랜치에 병합하기 전에 검토를 위해 변경 사항을 제출할 수 있어요. 이 과정은 품질 관리를 개선할 뿐 아니라 대시보드가 모범 사례와 조직 표준을 따르도록 보장해요. 또한 GitHub의 내장 토론·검토 도구가 효과적인 협업을 돕고, 변경 사항이 라이브로 전환되기 전에 피드백을 처리하기 쉽게 해줘요.

다중 환경 동기화 (Multi-environment synchronization)

개발, 스테이징, 프로덕션 환경과 같이 여러 Grafana 인스턴스를 관리하는 기업은 이 인스턴스 간에 대시보드를 원활하게 동기화할 수 있어요. 이는 시각화·모니터링 구성의 일관성을 보장해 서로 다른 환경에서 대시보드를 수동으로 관리하면서 생기는 불일치를 줄여요. Git Sync를 사용하면 팀은 환경 간 배포를 자동화해 반복적인 설정 작업을 없애고 조직 전반에 표준화된 모니터링 인프라를 유지할 수 있어요.

재해 복구 및 백업 (Disaster recovery and backup)

대시보드를 GitHub에 지속적으로 동기화하면 항상 최신 상태인 백업을 만들어, 우발적 삭제나 시스템 장애로 대시보드가 손실되지 않도록 보장할 수 있어요. 대시보드 손상, 의도하지 않은 수정, 시스템 충돌 같은 문제가 발생하면 팀은 Git 저장소에서 최신 정상 버전을 빠르게 복원할 수 있어요. 이는 다운타임을 최소화할 뿐 아니라 Grafana 모니터링 설정에 복원력을 더해 중요한 대시보드가 필요할 때 항상 사용 가능하도록 해줘요.

코드형 대시보드 구축 (Build dashboards as code)

대시보드는 JSON 파일로 정의되므로, JSON 파일을 Go, TypeScript 또는 다른 코딩 언어가 대시보드 스키마 형식으로 출력하는 코드형(as-code) 워크플로를 활성화할 수 있어요. Git Sync용으로 프로비저닝할 대시보드를 코딩 언어로 만드는 방법은 Foundation SDK 문서를 참고해요.

Git Sync 탐색 (Explore Git Sync)

Git Sync에 대해 자세히 배우려면 다음 문서를 참고해요:

더 알아보기