web-dev-qa-db-fra.com

Stable / Prométhée-Opérateur - Ajout de tableaux de bord de Grafana persistants

J'essaie d'ajouter un nouveau tableau de bord au tableau de la barre ci-dessous

https://github.com/helm/chat/tree/traster/stable/prometheus-perator

La documentation n'est pas très claire.

J'ai ajouté une carte de configuration dans l'espace de nom comme ci-dessous -

apiVersion: v1
kind: ConfigMap
metadata:
  name: sample-grafana-dashboard
  namespace: monitoring
  labels:
     grafana_dashboard: "1"
data:
  etcd-dashboard.json: |-
{JSON}

Selon la documentation, cela devrait simplement être "choisi" et ajouté, mais ce n'est pas le cas. https://github.com/helm/chat/tree/master/stable/grafana#configuration

L'option Sidecar dans mes valeurs.Yaml ressemble à -

grafana:
  enabled: true

  ## Deploy default dashboards.
  ##
  defaultDashboardsEnabled: true

  adminPassword: password

  ingress:
    ## If true, Grafana Ingress will be created
    ##
    enabled: false

    ## Annotations for Grafana Ingress
    ##
    annotations: {}
      # kubernetes.io/ingress.class: nginx
      # kubernetes.io/tls-acme: "true"

    ## Labels to be added to the Ingress
    ##
    labels: {}

    ## Hostnames.
    ## Must be provided if Ingress is enable.
    ##
    # hosts:
    #   - grafana.domain.com
    hosts: []

    ## Path for grafana ingress
    path: /

    ## TLS configuration for grafana Ingress
    ## Secret must be manually created in the namespace
    ##
    tls: []
    # - secretName: grafana-general-tls
    #   hosts:
    #   - grafana.example.com
  #dashboardsConfigMaps:
    #sidecarProvider: sample-grafana-dashboard
  sidecar:
    dashboards:
      enabled: true
      label: grafana_dashboard

J'ai aussi essayé d'ajouter ceci à la valeur.yml

dashboardsConfigMaps:
   - sample-grafana-dashboard

Qui ne fonctionne pas.

Est-ce que quelqu'un a une expérience avec l'ajout de vos propres tableaux de bord à ce graphique de la barre, car je suis vraiment à ma fin.

7
TheOne745665

Vous devez:

  • définissez votre tableau de bord JSON en tant que configmap (comme vous l'avez fait, mais voir ci-dessous pour une manière plus facile)
  • définir un fournisseur: dire où charger le tableau de bord
  • cartographier les deux ensemble

des valeurs.yml:

  dashboardsConfigMaps:
    application: application
  dashboardProviders:
    dashboardproviders.yaml:
      apiVersion: 1
      providers:
        - name: application
          orgId: 1
          folder: "Application Metrics"
          type: file
          disableDeletion: true
          editable: false
          options:
            path: /var/lib/grafana/dashboards/application

Maintenant, la carte de configuration de l'application doit créer des fichiers dans ce répertoire dans la nacelle et, comme cela a été discuté, le Sidecar devrait les charger dans un dossier de métrique d'application, vu dans l'interface graphique.

Cela répond probablement à votre problème comme écrit, mais aussi longtemps que vos tableaux de bord ne sont pas trop gros en utilisant KustonMise Meoit, vous pouvez avoir le JSON sur disque sans avoir à inclure le JSON dans un autre fichier ainsi:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
# May choose to enable this if need to refer to configmaps outside of kustomize
generatorOptions:
  disableNameSuffixHash: true

namespace: monitoring

configMapGenerator:
- name: application
  files:
    - grafana-dashboards/application/api01.json
    - grafana-dashboards/application/api02.json

Pour l'assurance-santé, vous pouvez également charger des tableaux de bord de l'URL ou du site GRAFANA, bien que je ne crois pas que la méthode de mélange dans le même dossier fonctionne.

Alors:

  dashboards:
    kafka:
      kafka01:
        url: https://raw.githubusercontent.com/kudobuilder/operators/master/repository/kafka/docs/latest/resources/grafana-dashboard.json
        folder: "KUDO Kafka"
        datasource: Prometheus
    nginx:
      nginx1:
        gnetId: 9614
        datasource: Prometheus
  dashboardProviders:
    dashboardproviders.yaml:
      apiVersion: 1
      providers:
        - name: kafka
          orgId: 1
          folder: "KUDO Kafka"
          type: file
          disableDeletion: true
          editable: false
          options:
            path: /var/lib/grafana/dashboards/kafka
        - name: nginx
          orgId: 1
          folder: Nginx
          type: file
          disableDeletion: true
          editable: false
          options:
            path: /var/lib/grafana/dashboards/nginx

Crée deux nouveaux dossiers contenant un tableau de bord chacun, à partir de sources externes, ou peut-être que vous le signalez à votre repo Git vous-même votre tableau de bord s'engage à partir de votre déploiement.

0
Andrew Pickin