Введение в Git Sync
Git Sync в Grafana позволяет синхронизировать ваши ресурсы, чтобы хранить дашборды в виде JSON-файлов в любом провайдере Git и управлять ими как кодом. Вы и ваша команда можете эффективно контролировать версии, совместно работать и автоматизировать развёртывания.
Note
Функциональность Git Sync постоянно развивается. Свяжитесь с Grafana для получения поддержки или чтобы сообщить о любых проблемах, с которыми вы столкнётесь, и помочь нам улучшить эту функцию.
Как это работает
Git Sync позволяет связывать внешние ресурсы с вашим экземпляром Grafana. После настройки все синхронизированные ресурсы находятся в Git в папке provisioned, а несинхронизированные ресурсы вы можете по-прежнему хранить вне этой папки.
Git Sync двунаправлен. Вы можете изменять выделенные ресурсы как из интерфейса Grafana, так и из синхронизированного репозитория, и изменения будут отражены в обоих местах.
Git Sync доступен для любого провайдера Git через тип репозитория Pure Git и имеет специальные расширенные интеграции для GitHub, GitHub Enterprise, GitLab и Bitbucket. Дополнительные сведения, включая тарифные уровни использования, см. в разделе Ограничения использования и производительности.
Дополнительную информацию о том, как работает Git Sync, см. в разделе ключевые концепции.
Внесение изменений в интерфейсе Grafana
Каждый раз, когда вы изменяете дашборд непосредственно в интерфейсе, вы также можете зафиксировать эти изменения в синхронизированных репозиториях Git при сохранении. Вы можете настроить параметры так, чтобы либо требовать одобрения PR перед слиянием в вашем репозитории, либо разрешить прямые коммиты.
Внесение изменений в репозиториях Git
Ваш экземпляр Grafana опрашивает выделенные ресурсы Git для синхронизации. Если вы внесли изменения в синхронизированные репозитории Git, они будут обновлены и в базе данных Grafana. Интерфейс Grafana читает данные из базы данных и обновляет интерфейс, чтобы отразить эти изменения.
- Без вебхуков Grafana опрашивает изменения с заданным интервалом. Интервал опроса по умолчанию — 60 секунд, и вы можете изменить этот параметр в интерфейсе Grafana.
- Если вы включите функцию вебхуков, уведомления репозитория появляются почти сразу.
Типичные сценарии использования
Note
Примеры сценариев, включая сведения об архитектуре и конфигурации, см. в разделе Сценарии развёртывания Git Sync.
Git Sync можно использовать в следующих сценариях:
Контроль версий и аудит
Организации могут вести структурированную историю дашбордов Grafana под управлением версий. Контроль версий позволяет при необходимости возвращаться к предыдущим версиям, сравнивать изменения между коммитами и обеспечивать прозрачность управления дашбордами.
Кроме того, подробная история изменений усиливает усилия по соблюдению требований, поскольку команды могут формировать журналы аудита, документирующие, кто вносил изменения, когда и почему.
Автоматизированное развёртывание и интеграция с CI/CD
Команды могут оптимизировать свой рабочий процесс, интегрируя обновления дашбордов в свои конвейеры CI/CD. Отправляя изменения в GitHub, автоматизированные процессы могут запускать проверки валидации, тестировать конфигурации дашбордов и развёртывать обновления программно с помощью CLI gcx и Foundation SDK.
Это снижает риск человеческих ошибок, обеспечивает согласованность между средами и позволяет быстрее и надёжнее выпускать дашборды, используемые для производственного мониторинга и аналитики.
Совместная разработка дашбордов
С Git Sync несколько пользователей могут одновременно работать над дашбордами, не перезаписывая изменения друг друга. Используя pull request’ы и рабочие процессы на основе веток, команды могут отправлять изменения на проверку перед слиянием в основную ветку. Этот процесс не только улучшает контроль качества, но и гарантирует, что дашборды соответствуют лучшим практикам и организационным стандартам.
Кроме того, встроенные инструменты обсуждения и проверки GitHub способствуют эффективному сотрудничеству, упрощая работу с обратной связью до того, как изменения попадут в продакшн.
Синхронизация между средами
Предприятия, управляющие несколькими экземплярами Grafana, например средами разработки, тестирования и продакшна, могут беспрепятственно синхронизировать дашборды между этими экземплярами. Это обеспечивает согласованность конфигураций визуализации и мониторинга, снижая расхождения, которые могут возникнуть при ручном управлении дашбордами в разных средах.
Используя Git Sync, команды могут автоматизировать развёртывание между средами, устраняя повторяющиеся задачи настройки и поддерживая стандартизированную инфраструктуру мониторинга в масштабе всей организации.
Аварийное восстановление и резервное копирование
Непрерывно синхронизируя дашборды с GitHub, организации могут создавать постоянно обновляемую резервную копию, гарантируя, что дашборды не будут потеряны из-за случайного удаления или сбоев системы.
Если возникает проблема, например повреждённый дашборд, непреднамеренное изменение или сбой системы, команды могут быстро восстановить последнюю работоспособную версию из репозитория Git. Это не только сокращает время простоя, но и добавляет уровень отказоустойчивости конфигурациям мониторинга Grafana, гарантируя, что критически важные дашборды остаются доступными, когда это необходимо.
Создание дашбордов как кода
Поскольку дашборды определяются в JSON-файлах, вы можете включить рабочие процессы as-code, где JSON-файл является результатом работы кода на Go, TypeScript или другом языке программирования в формате схемы дашборда.
Чтобы узнать больше о создании дашбордов на языке программирования для их выделения в Git Sync, обратитесь к документации Foundation SDK.
Изучение Git Sync
Обратитесь к следующим документам, чтобы подробно изучить Git Sync:
-
Ключевые концепции Git Sync
Ключевые понятия для понимания работы Git Sync. -
Ограничения использования и производительности
Тарифные уровни Git Sync, совместимые провайдеры Git и известные ограничения. -
Настройка Git Sync
Инструкции по настройке Git Sync, чтобы можно было подготавливать репозитории GitHub для использования с Grafana.-
Прежде чем начать
Предварительные требования для Git Sync, чтобы можно было подготавливать репозитории GitHub для использования с Grafana. -
Настройка Git Sync как кода
Инструкции по настройке Git Sync как кода, чтобы можно было подготавливать репозитории Git для использования с Grafana. -
Настройка Git Sync с помощью Terraform
Инструкции по настройке Git Sync как кода, чтобы можно было подготавливать репозитории Git для использования с Grafana. -
Настройка мгновенного получения обновлений и предпросмотра дашбордов в Pull Requests
Инструкции по расширению Git Sync для уведомлений в реальном времени и рендеринга изображений.
-
Прежде чем начать
-
Добавление невыделенных ресурсов из Grafana
Экспорт неподготовленных ресурсов из Grafana. -
Работа с выделенными репозиториями в Git Sync
Инструкции по работе с Git Sync для выполнения типовых задач, таких как сохранение дашбордов в GitHub и синхронизация изменений с Grafana. -
Работа с выделенными дашбордами в Git Sync
Обновляйте, сохраняйте и изменяйте подготовленные ресурсы в Grafana с помощью Git Sync. -
Права доступа и контроль доступа Git Sync
Узнайте о разрешениях и контроле доступа для Git Sync, включая требуемые роли Grafana и разрешения репозитория. -
Настройка защиты репозитория Git
Узнайте, как защитить ваш репозиторий Git и контролировать, кто может читать или записывать исходный код дашбордов при использовании Git Sync. -
Сценарии развёртывания Git Sync
Узнайте о типичных схемах развёртывания и конфигурациях Git Sync для различных потребностей организаций-
Git Sync на одном экземпляре
Синхронизируйте один экземпляр Grafana с репозиторием Git -
Git Sync для сред разработки и промышленной эксплуатации
Используйте отдельные экземпляры Grafana для разработки и производства с продвижением под контролем Git -
Git Sync с региональной репликацией
Синхронизируйте несколько региональных экземпляров Grafana из общего расположения Git -
Тестовые песочницы с Git Sync
Используйте общую песочницу ветки для краткосрочных проектов и экспериментов перед продвижением изменений в основную ветку -
Git Sync для сред с высокой доступностью
Запускайте несколько экземпляров Grafana, обслуживающих трафик одновременно, синхронизированных через Git Sync -
Git Sync в экземпляре Grafana, используемом несколькими командами
Используйте несколько репозиториев Git с одним экземпляром Grafana, по одному репозиторию на команду
-
Git Sync на одном экземпляре