Observability as Code
Observability as Code
이 문서에서는 Observability as Code가 무엇인지 안내합니다. 이를 활용하면 대시보드와 관측성 워크플로를 포함한 Grafana 구성을 버전 관리하고, 자동화하며, 확장할 수 있어요. Grafana가 제공하는 관련 도구 모음과 사용 방법을 설명해요.
출처: 문서
본문
개요
Grafana는 Observability as code를 위한 도구 모음을 제공해 Grafana 리소스를 프로그래밍 방식으로 대규모로 관리할 수 있게 해줘요. 이 접근 방식은 대시보드, 데이터 소스, 기타 구성을 코드로 정의하게 해주어 CI/CD 파이프라인을 통해 버전 관리, 자동화된 테스트, 안정적인 배포를 가능하게 해요. 관측성 리소스에 코드 관리 모범 사례를 적용하고 이를 기존의 인프라를 코드로 관리하는 워크플로에 통합할 수 있어요.
과거에는 Grafana를 코드로 관리할 때 다양한 커뮤니티 및 Grafana Labs 도구가 사용됐지만, 단일하고 일관된 스토리(통합된 이야기)가 부족했어요. Grafana 12는 새로운 버전 관리 API와 공식 도구를 포함한 기초적인 개선을 도입해 더 명확한 길을 제시해요:
- 이 접근 방식은 HTTP 요청과 응답을 처리해야 하지만 리소스 관리에 대한 완전한 제어를 제공해요.
gcx, Git Sync, Foundation SDK는 모두 이 API 위에 구축되어 있어요.- API가 수용하는 대시보드 스키마를 이해하려면 JSON models 문서를 참고하세요.
둘러보기(Explore)
- Grafana CLI — Grafana CLI(
gcx)는 새로운 REST API를 사용해 Grafana 인스턴스와의 상호작용을 단순화하도록 설계된 커맨드라인 도구예요. 터미널에서 인증하고, 여러 환경을 관리하며, 관리 작업을 수행할 수 있어요. CI/CD 파이프라인, 로컬 개발, 자유로운 작업에 적합해요. - Foundation SDK — Grafana Foundation SDK는 Go, TypeScript, Python, Java, PHP 같은 익숙한 프로그래밍 언어로 Grafana 대시보드와 리소스를 정의할 수 있게 해주는 도구, 타입, 라이브러리 모음이에요. 프로그래밍 방식으로 생성한 리소스를 푸시하려면
gcx와 함께 사용하세요. - Git Sync — Git Sync를 사용하면 대시보드 파일을 GitHub 리포지토리에 저장하고 그 변경 사항을 Grafana 인스턴스와 동기화할 수 있어요. Grafana에서 직접 버전 관리, 브랜칭, 풀 리퀘스트를 가능하게 해요.
- 온프레미스 파일 프로비저닝(On-prem file provisioning) — Grafana의 파일 프로비저닝을 사용하면 로컬 파일 시스템에 저장된 폴더와 대시보드 JSON 파일을 포함한 리소스를 추가할 수 있어요.
추가적인 Observability as code 도구
이미 확립된 Infrastructure as code나 다른 구성 관리 도구를 사용 중이라면, Grafana는 기존 워크플로 안에서 리소스를 관리하는 통합을 제공해요.
- Terraform
- Grafana Terraform 프로바이더를 사용해 대시보드, 알림 등을 관리해요.
- HCL/JSON 구성을 사용해 리소스를 정의하고 배포하는 방법을 이해해요.
- Ansible
- Grafana Ansible 컬렉션을 사용해 폴더와 클라우드 스택을 포함한 Grafana Cloud 리소스를 관리하는 방법을 배워요.
- Grafana API를 통해 리소스 프로비저닝을 자동화하는 플레이북을 작성해요.
- Grafana Operator
- Grafana Operator로 Kubernetes 네이티브 관리를 활용해요.
- Kubernetes 사용자 정의 리소스를 통해 대시보드, 폴더, 데이터 소스를 관리해요.
- 원활한 버전 관리와 배포를 위해 GitOps 워크플로에 통합해요.
- Crossplane을 사용하면 Grafana Crossplane 프로바이더와 Kubernetes 매니페스트로 Grafana 리소스를 관리할 수 있어요.
- Grafonnet은 Grafana 대시보드 JSON 정의를 프로그래밍 방식으로 생성하는 Jsonnet 라이브러리예요. Grafonnet은 Grafana가 공식적으로 지원하지 않아요. 대신 Foundation SDK 로 코드로 대시보드를 만드세요.