Инструменты Grafana#

Grafana 9.5.17#

Grafana - инструмент для визуализации данных из различных источников. Используется для представления в графическом виде данных временных рядов и текстовых данных.

Grafana поддерживает различные источники:

  • Prometheus;

  • Graphite;

  • MySQL;

  • InfluxDB;

  • Elasticsearch;

  • Loki и т.д.

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

  • Graph – панель с графиками с возможностью комбинировать несколько метрик на одной панели;

  • Gauge – панель в формате спидометра, есть возможность ограничить верхнее значение на шкале;

  • Bar Gauge – панель с возможностью отображения метрик на вертикальной гистограмме;

  • Table – панель с представлением в виде таблицы, на которой можно отображать значения нескольких метрик;

  • Text – панель для отображения произвольного текста (подписи).

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

Установка Grafana#

Для установки Grafana выполните следующие действия:

  1. Создайте namespace для мониторинга:

    kubectl create namespace monitoring
    
  2. Создайте файл манифеста grafana.yaml:

    grafana.yaml
     apiVersion: v1
     kind: PersistentVolume
     metadata:
       name: grafana-pv
       labels:
         type: local
     spec:
       capacity:
         storage: 10Gi
       accessModes:
         - ReadWriteOnce
       local:
         path: /mnt
       nodeAffinity:
         required:
           nodeSelectorTerms:
           - matchExpressions:
             - key: kubernetes.io/hostname
               operator: In
               values:
               - worker2
     ---
     apiVersion: v1
     kind: PersistentVolumeClaim
     metadata:
       name: grafana-pvc
     spec:
       accessModes:
         - ReadWriteOnce
       resources:
         requests:
           storage: 1Gi
     ---
     apiVersion: apps/v1
     kind: Deployment
     metadata:
       labels:
         app: grafana
       name: grafana
     spec:
       selector:
         matchLabels:
           app: grafana
       template:
         metadata:
           labels:
             app: grafana
         spec:
           securityContext:
             fsGroup: 472
             supplementalGroups:
               - 0
           containers:
             - name: grafana
               image: <path>/2.1.0/dapp-grafana-9-5/grafana:9.5.17 # Адрес репозитория приведен в качестве примера и должен быть заменен на актуальный.
               imagePullPolicy: IfNotPresent
               ports:
                 - containerPort: 3000
                   name: http-grafana
                   protocol: TCP
               readinessProbe:
                 failureThreshold: 3
                 httpGet:
                   path: /robots.txt
                   port: 3000
                   scheme: HTTP
                 initialDelaySeconds: 10
                 periodSeconds: 30
                 successThreshold: 1
                 timeoutSeconds: 2
               livenessProbe:
                 failureThreshold: 3
                 initialDelaySeconds: 30
                 periodSeconds: 10
                 successThreshold: 1
                 tcpSocket:
                   port: 3000
                 timeoutSeconds: 1
               resources:
                 requests:
                   cpu: 250m
                   memory: 750Mi
               volumeMounts:
                 - mountPath: /var/lib/grafana
                   name: grafana-pv
           volumes:
             - name: grafana-pv
               persistentVolumeClaim:
                 claimName: grafana-pvc
     ---
     apiVersion: v1
     kind: Service
     metadata:
       name: grafana
     spec:
       ports:
         - port: 3000
           protocol: TCP
           targetPort: http-grafana
           nodePort: 31000
       selector:
         app: grafana
       sessionAffinity: None
       type: NodePort
       
    
  3. Выполните команду:

    kubectl apply -f ./grafana.yaml
    
  4. Проверьте статус выполнения команды из шага 3:

    kubectl rollout status deployment.apps/grafana -n monitoring
    

    Проверьте, что в выводе содержится статус successfully rolled out.

  5. Перенаправьте порт для сервиса Grafana на localhost:

    kubectl port-forward svc/grafana -n monitoring --address localhost 3000:3000
    
  6. Выполните команду:

    curl -L localhost:3000
    
  7. Откройте в браузере http://localhost:3000 и выполните аутентификацию и авторизацию в Grafana с логином и паролем, по умолчанию admin/admin.

  8. Убедитесь, что на следующей странице есть поле newPassword и смените пароль.

Сценарии использования Grafana#

Совместная работа с VictoriaMetrics#

Для данного сценария необходимо установить инструменты VictoriaMetrics и выполнить шаг 14-20 в соответствии со сценариями настоящего руководства администратора, раздел Victoriametrics.

Добавление источника данных посредством web-интерфейса#

Добавление источника данных предшествует созданию панели мониторинга.

Примечание

Добавлять источники данных могут только пользователи с ролью администратора кластера.

Чтобы добавить источник данных, выполните последовательность:

  1. Нажмите Connections в меню слева.

  2. Введите имя конкретного источника данных в диалоговом окне поиска.

  3. Отфильтруйте по источнику данных Data source, чтобы видеть только источники данных.

  4. Нажмите источник данных, который необходимо добавить.

  5. Настройте источник данных, следуя инструкциям, специфичным для этого источника данных.

  6. Настройте разрешения для источника данных, чтобы разрешить или запретить определенным пользователям возможность запрашивать или редактировать источник данных. Конфигурация каждого источника данных включает вкладку «Разрешения», на которой возможно ограничение разрешения источника данных определенными пользователями, командами или ролями.

Совместная работа с Jaeger#

Предварительные условия совместной работы с Jaeger#

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

Добавление источника данных в Grafana приведено в сценарии Совместная работа с VictoriaMetrics. Добавлять источники данных могут только пользователи с ролью администратора DropApp. Администратор также может настроить источник данных через YAML с помощью системы обеспечения Grafana.

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

Настройка источника данных#

Чтобы настроить основные параметры источника данных, выполните следующие действия:

  1. Нажмите Подключения в меню слева.

  2. В разделе Ваши подключения нажмите Источники данных.

  3. Введите Jaeger в строку поиска.

  4. Выберите Jaeger. Отобразится вкладка Настройки источника данных.

  5. Установите основные параметры конфигурации источника данных:

Имя

Описание

Имя

Устанавливает имя, которое используется для ссылки на источник данных в панелях и запросах

По умолчанию

Определяет, будет ли этот источник данных предварительно выбран для новых панелей

URL-адрес

Устанавливает URL-адрес экземпляра Jaeger, например http://localhost:16686

Базовая аутентификация

Включает базовую аутентификацию для источника данных Jaeger

Пользователь

Определяет имя пользователя для базовой аутентификации

Пароль

Определяет пароль для базовой аутентификации

Grafana 10.4.0#

В данном разделе описаны изменения версии относительно версии 9.5.17:

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

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

  3. Работа с панелями: были внесены улучшения в работу с панелями, включая новые возможности масштабирования и перемещения элементов на панели, а также улучшенную поддержку графиков и таблиц.

  4. Визуализация данных: были добавлены новые возможности визуализации данных, включая новые типы графиков, добавление аннотаций и улучшенная поддержка временных рядов.

  5. Интеграция с базами данных: были внесены улучшения, включая поддержку новых источников данных и производительность при работе с большими объемами данных.

Добавлены улучшения в визуализации журналов Loki и других источников данных журналов в режиме исследования. Добавлена панель графиков Flame, используемая для визуализации данных профилирования из Pyrscope и других источников данных непрерывного профилирования.

Добавлены четыре новые функции в визуализацию графиков:

  • многослойный режим: теперь возможно отображение многослойного представления любого символа на графике Flame. В многослойном представлении все вызывающие объекты отображаются вверху, а все вызываемые объекты символа — внизу. Это полезно при необходимости видеть контекст символа;

  • переключение цветовой схемы: теперь возможно переключение цветовой схемы между цветовым градиентом на основе относительного значения символа или имени пакета символа;

  • переключение выравнивания имен символов. Символы с длинными именами может быть трудно отличить, если они имеют одинаковый префикс. Новая опция позволяет выравнивать текст по левому или правому краю для наблюдения важной части имени символа;

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

Добавлены виджеты, такие как Текст, Новости и Список аннотаций, без необходимости выбирать источник данных. Список плагинов и панели библиотек фильтруются в зависимости от того, выбран виджет или визуализация, что упрощает редактирование.

Чтобы увидеть редактор виджетов в Grafana OSS или Enterprise, включите переключатель функции vizAndWidgetSplit.

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

В преобразование Объединить по полю добавлена новая функция: внешнее соединение (табличное). Этот параметр представляет собой настоящее внешнее соединение для табличных (подобных SQL) данных. Данные теперь можно объединить по значению поля, которое не является уникальным. Это отличается от предыдущего внешнего соединения, которое оптимизировано для данных временных рядов, где значения соединения никогда не повторяются.

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

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

Добавлена возможность добавлять ссылки на данные в визуализации тепловых карт. Это позволяет добавлять ссылки на другие информационные панели, панели или внешние URL-адреса, которые имеют отношение к данным в тепловой карте.

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

Добавлено копирование ссылок на строку журнала Loki.

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

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

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

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

Аутентификация и авторизация:

  • No basic role - новая базовая роль без разрешений. Это полезно, если необходимо настроить индивидуальные разрешения RBAC для своих сервисных аккаунтов или пользователей;

  • поддержка анонимного доступа для удобного контроля и мониторинга анонимного использования;

  • добавлен новый пользовательский интерфейс для настройки одноэтапной аутентификации (SSO) и Terraform ресурс для настройки OAuth-провайдеров.

Доступны опции для включения всей таблицы данных в PDF-отчеты, что значительно улучшает опыт создания отчетов.

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