Автоматизируйте создание информационной панели Grafana

В настоящее время я создал панель Grafana Dashboard вручную. У меня есть Json. Я хотел автоматизировать и наткнулся на HTTP API Grafana. https://grafana.com/docs/grafana/latest/developers/http_api/dashboard/. Проблема в том, что в настоящее время Grafana не отображается снаружи. Имеет внутренний балансировщик нагрузки. Я планирую автоматизировать создание информационной панели с помощью

  1. Создайте кратковременный токен сервисной учетной записи.
  2. Создайте временный модуль (https://hub.docker.com/r/curlimages/curl) и выполните вызовы API, передав json для создания панели мониторинга из конвейера.

Есть ли какие-либо альтернативы или есть ли какие-либо проблемы с безопасностью при этом?

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
1
0
275
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

В Azure DevOps Pipeline нет встроенной задачи или задачи расширения, позволяющей создать панель мониторинга Grafana.

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

Вот пример:

curl -X POST --insecure -H "Authorization: Bearer <serviceaccount token>" -H "Content-Type: application/json" -d '{
  "dashboard": {
    "id": null,
    "title": "Production Overview",
    "tags": [ "templated" ],
    "timezone": "browser",
    "rows": [
      {
      }
    ],
    "schemaVersion": 6,
    "version": 0
  },
  "overwrite": false
}' http://serverhost/api/dashboards/db

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

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

Ответ принят как подходящий

В настоящее время у нас нет самостоятельного агента, поэтому вот что я сделал.

  1. Создайте файл сценария оболочки (сверните его для создания панели мониторинга, вызывающей API Grafana).
  2. Создайте модель панели мониторинга в формате Json.
  3. скопируйте оба в модуль во время работы через конвейер
  4. выполнить сценарий оболочки в модуле через конвейер.

Он работает нормально

Другие вопросы по теме