Документацияbreadcrumb arrow Grafanabreadcrumb arrow Документация GlaberGraphbreadcrumb arrow Учебные материалыbreadcrumb arrow Подготовка дашбордов и источников данных

Введение

Узнайте, как можно переиспользовать дашборды и источники данных в нескольких командах, подготавливая Grafana из файлов конфигурации, находящихся под контролем версий.

В этом учебном руководстве вы:

  • Подготовите дашборды.
  • Подготовите источники данных.

Предварительные требования

  • Grafana 7.0
  • Права администратора в системе, в которой вы выполняете учебное руководство

Конфигурация как код

Конфигурация как код — это практика хранения конфигурации вашей системы в виде набора версионируемых, удобочитаемых файлов конфигурации, а не в базе данных. Эти файлы конфигурации можно переиспользовать в разных средах, чтобы избежать дублирования ресурсов.

По мере роста числа дашбордов и источников данных в вашей организации ручное управление изменениями может стать утомительным и подверженным ошибкам. Поощрение переиспользования становится важным, чтобы несколько команд не переделывали одни и те же дашборды.

Grafana поддерживает конфигурацию как код через подготовку (provisioning). Ресурсы, которые в настоящее время поддерживают подготовку:

Настройка каталога подготовки

Прежде чем вы сможете начать подготавливать ресурсы, Grafana должна знать, где найти каталог подготовки. Каталог подготовки содержит файлы конфигурации, которые применяются при каждом запуске Grafana и непрерывно обновляются во время работы.

По умолчанию Grafana ищет каталог подготовки в каталоге конфигурации (grafana > conf) в системе, где установлена Grafana. Однако если вы являетесь администратором Grafana, вы можете захотеть разместить файлы конфигурации в общем ресурсе, например в сетевой папке, поэтому вам нужно будет изменить путь к каталогу подготовки.

Вы можете задать другой путь, установив свойство paths.provisioning в основном файле конфигурации:

ini
[paths]
provisioning = <путь к файлам конфигурации>

Для получения дополнительной информации о файлах конфигурации обратитесь к разделу Конфигурация в документации Grafana.

Каталог подготовки предполагает следующую структуру:

provisioning/
  datasources/
    <файлы yaml>
  dashboards/
    <файлы yaml>

Далее мы рассмотрим, как подготовить источник данных.

Подготовка источника данных

Каждый файл конфигурации подготовки источника данных содержит манифест, который определяет желаемое состояние набора подготавливаемых источников данных.

При запуске Grafana загружает файлы конфигурации и подготавливает источники данных, перечисленные в манифестах.

Давайте настроим источник данных TestData, который вы можете использовать для своих дашбордов.

Создание манифеста источника данных

  1. В каталоге provisioning/datasources/ создайте файл с именем default.yaml со следующим содержимым:

    YAML
    apiVersion: 1
    
    datasources:
      - name: TestData
        type: testdata
  2. Перезапустите Grafana, чтобы загрузить новые изменения.

  3. В боковом меню наведите курсор на значок Configuration (шестерёнка) и нажмите Data Sources. TestData появится в списке источников данных.

Параметры конфигурации могут различаться для разных типов источников данных. Для получения дополнительной информации о том, как настроить конкретный источник данных, обратитесь к разделу Источники данных.

Подготовка дашборда

Каждый файл конфигурации дашборда содержит манифест, который определяет желаемое состояние набора провайдеров дашбордов.

Провайдер дашбордов сообщает Grafana, где найти определения дашбордов и куда их поместить.

Grafana регулярно проверяет изменения в определениях дашбордов (по умолчанию каждые 10 секунд).

Давайте определим провайдера дашбордов, чтобы Grafana знала, где найти дашборды, которые мы хотим подготовить.

Определение провайдера дашбордов

В каталоге provisioning/dashboards/ создайте файл с именем default.yaml со следующим содержимым:

YAML
apiVersion: 1

providers:
  - name: Default # Уникальное идентифицируемое имя для провайдера
    folder: Services # Папка, в которую помещать дашборды
    type: file
    options:
      path:
        <путь к определениям дашбордов>
        # Путь по умолчанию для Windows: C:/Program Files/GrafanaLabs/grafana/public/dashboards
        # Путь по умолчанию для Linux: /var/lib/grafana/dashboards

Для получения дополнительной информации о том, как настроить провайдеры дашбордов, обратитесь к разделу Дашборды.

Создание определения дашборда

  1. В каталоге определений дашбордов, который вы указали в провайдере дашбордов, то есть options.path, создайте файл с именем cluster.json со следующим содержимым:

    JSON
    {
      "__inputs": [],
      "__requires": [],
      "annotations": {
        "list": []
      },
      "editable": false,
      "gnetId": null,
      "graphTooltip": 0,
      "hideControls": false,
      "id": null,
      "links": [],
      "panels": [
        {
          "aliasColors": {},
          "bars": false,
          "dashLength": 10,
          "dashes": false,
          "datasource": "TestData",
          "fill": 1,
          "gridPos": {
            "h": 8,
            "w": 24,
            "x": 0,
            "y": 0
          },
          "id": 2,
          "legend": {
            "alignAsTable": false,
            "avg": false,
            "current": false,
            "max": false,
            "min": false,
            "rightSide": false,
            "show": true,
            "total": false,
            "values": false
          },
          "lines": true,
          "linewidth": 1,
          "links": [],
          "nullPointMode": "null",
          "percentage": false,
          "pointradius": 5,
          "points": false,
          "renderer": "flot",
          "repeat": null,
          "seriesOverrides": [],
          "spaceLength": 10,
          "stack": false,
          "steppedLine": false,
          "targets": [],
          "thresholds": [],
          "timeFrom": null,
          "timeShift": null,
          "title": "CPU Usage",
          "tooltip": {
            "shared": true,
            "sort": 0,
            "value_type": "individual"
          },
          "type": "graph",
          "xaxis": {
            "buckets": null,
            "mode": "time",
            "name": null,
            "show": true,
            "values": []
          },
          "yaxes": [
            {
              "format": "short",
              "label": null,
              "logBase": 1,
              "max": null,
              "min": null,
              "show": true
            },
            {
              "format": "short",
              "label": null,
              "logBase": 1,
              "max": null,
              "min": null,
              "show": true
            }
          ]
        }
      ],
      "refresh": "",
      "rows": [],
      "schemaVersion": 16,
      "tags": ["kubernetes"],
      "templating": {
        "list": []
      },
      "time": {
        "from": "now-6h",
        "to": "now"
      },
      "timepicker": {},
      "timezone": "browser",
      "title": "Cluster",
      "version": 0
    }
  2. Перезапустите Grafana, чтобы подготовить новый дашборд, или подождите 10 секунд, пока Grafana автоматически создаст дашборд.

  3. В боковом меню наведите курсор на значок Dashboards (квадраты), а затем нажмите Manage. Дашборд появится в папке Services.

Если вы не укажете id в определении дашборда, Grafana назначит его во время подготовки. Вы можете задать id самостоятельно, если хотите ссылаться на дашборд из других дашбордов. Будьте осторожны, чтобы не использовать один и тот же id для нескольких дашбордов, так как это вызовет конфликт.

Резюме

В этом учебном руководстве вы узнали, как переиспользовать дашборды и источники данных в нескольких командах, подготавливая Grafana из файлов конфигурации, находящихся под контролем версий.

Определения дашбордов могут стать громоздкими по мере добавления в них всё большего числа панелей и конфигураций. Существует ряд инструментов с открытым исходным кодом, которые упрощают управление определениями дашбордов:

Дополнительные сведения