Невозможно импортировать файл grafana json через таблицу управления grafana - PullRequest
0 голосов
/ 18 января 2020

Я развертываю стабильную / графическую систему управления рулем 4.3.0 на кластере k8s. Я использую Helm 3. Из предыдущей установки grafana я экспортировал json панели инструментов и сохранил ее как my-dashboard. json. Я хочу, чтобы helm позаботился о загрузке этого файла, поэтому в моем values.yaml у меня есть

dashboardProviders:
 dashboardproviders.yaml:
   apiVersion: 1
   providers:
   - name: 'default'
     orgId: 1
     folder: ''
     type: file
     disableDeletion: false
     editable: true
     options:
       path: /var/lib/grafana/dashboards
dashboards:
  default:
    my-dashboard:
      file: my-dashboard.json
    prometheus-stats:
      gnetId: 2
      revision: 2
      datasource: Prometheus

У меня уже есть мой источник данных Prometheus (из диаграммы Prometheus helm), определенный как

datasources:
 datasources.yaml:
   apiVersion: 1
   datasources:
   - name: Prometheus
     type: prometheus
     url: http://my-prometheus-release-server.default.svc.cluster.local
     access: proxy
     isDefault: true

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

Однако, если я запускаю helm upgrade my-grafana-release stable/grafana --values values.yaml, в журналах модуля он повторяется:

t=2020-01-17T21:33:35+0000 lvl=eror msg="failed to load dashboard from " logger=provisioning.dashboard type=file name=default file=/var/lib/grafana/dashboards/default/my-dashboard.json error=EOF

Просмотр EOF заставляет меня думать, что файл не загружается. У меня есть my-dashboard. json, сохраненный в той же папке, что и values.yaml, и я запускаю команду helm из этой папки. Нужно ли хранить его где-то еще? Я искал всю документацию, и мне не ясно, как она загружается.

Ответы [ 2 ]

0 голосов
/ 24 января 2020

Я нашел другой способ справиться с этим.

Я использую Terraform для выполнения sh этого, и я создал values.yaml в качестве файла шаблона. Это соответствующий раздел в values.yaml сейчас:

dashboards:
  default:
    dashbaord1:
      json: |
        ${my-dashboard-1}
    dashboard2:
      json: |
        ${my-dashboard-2}

И блок templatefile выглядит так:

resource "helm_release" "grafana" {
  name       = "grafana-release"
  repository = data.helm_repository.stable.metadata[0].name
  chart      = "grafana"
  version    = "4.3.0"

  values = [
    "${templatefile(
      "${path.module}/values.yaml.tpl",
      {
        my-dashboard-1         = "${indent(8, data.template_file.my-dashboard-1.rendered)}}",
        my-dashboard-2 = "${indent(8, data.template_file.my-dashboard-2.rendered)}}"
      }
    )}"
  ]
}

indent очень важно!

0 голосов
/ 21 января 2020

Где вы положили файл my-dashboard.json? Он должен быть на том же уровне, что и values.yaml. Также проверьте grafana-dashboards-default configmap, он должен содержать панель управления.

...