首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法通过grafana helm图表导入grafana json文件

无法通过grafana helm图表导入grafana json文件
EN

Stack Overflow用户
提问于 2020-01-18 05:36:03
回答 3查看 2.6K关注 0票数 2

我正在将helm chart稳定/grafana 4.3.0部署到一个k8s集群上。我使用的是Helm3。在之前的grafana安装中,我导出了仪表板的json,并将其保存为my-dashboard.json。我想让helm负责上传这个文件,所以在我的values.yaml中

代码语言:javascript
复制
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舵表)定义为

代码语言:javascript
复制
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,在pod上的日志中它会重复:

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让我觉得文件没有上传。我将我的-dashboard.json保存在与values.yaml相同的文件夹中,并从该文件夹运行helm命令。我需要把它存放在别的地方吗?我已经搜索了所有的文档,但我不清楚它是如何上传的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-01-24 08:16:35

我找到了另一种方法来解决这个问题。

我使用Terraform来完成这项工作,并将values.yaml作为模板文件。这是values.yaml now中的相关部分:

代码语言:javascript
复制
dashboards:
  default:
    dashbaord1:
      json: |
        ${my-dashboard-1}
    dashboard2:
      json: |
        ${my-dashboard-2}

模板文件块如下所示:

代码语言:javascript
复制
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是非常重要的!

票数 1
EN

Stack Overflow用户

发布于 2020-08-08 09:07:11

对于任何发现这一点的人:如果你安装了grafana和grafana helm图表或prometheus操作员的helm图表,添加grafana仪表板的一个简单方法是在你的values.yml中设置sidecar.dashboards.enabled: true (我建议查看文档以获取更多信息)。

然后,您可以使用简单的configmap添加仪表板,如下所示:

代码语言:javascript
复制
apiVersion: v1
kind: ConfigMap
metadata:
  name: my-grafana-dashboard
  labels:
     grafana_dashboard: "1"
data:
  my-dashboard.json: |
    {
        "annotations": {
        "list": [
            {
       .....JSON.....
     }
票数 3
EN

Stack Overflow用户

发布于 2020-01-21 22:26:01

你把my-dashboard.json文件放在哪里了?它应该与values.yaml处于同一级别还可以检查grafana-dashboards-default配置映射,它应该包含仪表板。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59795138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档