github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/boom/application/applications/monitoring/config/dashboards.go (about)

     1  package config
     2  
     3  import (
     4  	"path/filepath"
     5  
     6  	toolsetslatest "github.com/caos/orbos/internal/operator/boom/api/latest"
     7  )
     8  
     9  var orgID = 0
    10  
    11  func getGrafanaDashboards(dashboardsfolder string, toolsetCRDSpec *toolsetslatest.ToolsetSpec) []*Provider {
    12  	providers := make([]*Provider, 0)
    13  	if toolsetCRDSpec.APIGateway != nil && toolsetCRDSpec.APIGateway.Deploy &&
    14  		toolsetCRDSpec.MetricsPersisting != nil && (toolsetCRDSpec.MetricsPersisting.Metrics == nil || toolsetCRDSpec.MetricsPersisting.Metrics.Ambassador) {
    15  		provider := &Provider{
    16  			ConfigMaps: []string{
    17  				"grafana-dashboard-ambassador-envoy-global",
    18  				"grafana-dashboard-ambassador-envoy-ingress",
    19  				"grafana-dashboard-ambassador-envoy-service",
    20  			},
    21  			Folder: filepath.Join(dashboardsfolder, "ambassador"),
    22  		}
    23  		providers = append(providers, provider)
    24  	}
    25  
    26  	if toolsetCRDSpec.Reconciling != nil && toolsetCRDSpec.Reconciling.Deploy &&
    27  		toolsetCRDSpec.MetricsPersisting != nil && (toolsetCRDSpec.MetricsPersisting.Metrics == nil || toolsetCRDSpec.MetricsPersisting.Metrics.Argocd) {
    28  		provider := &Provider{
    29  			ConfigMaps: []string{
    30  				"grafana-dashboard-argocd",
    31  			},
    32  			Folder: filepath.Join(dashboardsfolder, "argocd"),
    33  		}
    34  		providers = append(providers, provider)
    35  	}
    36  
    37  	nodeExporterDeployed := toolsetCRDSpec.NodeMetricsExporter != nil && toolsetCRDSpec.NodeMetricsExporter.Deploy &&
    38  		toolsetCRDSpec.MetricsPersisting != nil && (toolsetCRDSpec.MetricsPersisting.Metrics == nil || toolsetCRDSpec.MetricsPersisting.Metrics.PrometheusNodeExporter)
    39  	if nodeExporterDeployed {
    40  		provider := &Provider{
    41  			ConfigMaps: []string{
    42  				"grafana-dashboard-node-cluster-rsrc-use",
    43  				"grafana-dashboard-node-rsrc-use",
    44  			},
    45  			Folder: filepath.Join(dashboardsfolder, "prometheusnodeexporter"),
    46  		}
    47  		providers = append(providers, provider)
    48  	}
    49  
    50  	if toolsetCRDSpec.LogCollection != nil && toolsetCRDSpec.LogCollection.Deploy &&
    51  		toolsetCRDSpec.MetricsPersisting != nil && (toolsetCRDSpec.MetricsPersisting.Metrics == nil || toolsetCRDSpec.MetricsPersisting.Metrics.LoggingOperator) {
    52  		provider := &Provider{
    53  			ConfigMaps: []string{
    54  				"grafana-dashboard-logging-dashboard-rev3",
    55  			},
    56  			Folder: filepath.Join(dashboardsfolder, "loggingoperator"),
    57  		}
    58  		providers = append(providers, provider)
    59  	}
    60  
    61  	kubeStateMetricsDeployed := toolsetCRDSpec.KubeMetricsExporter != nil && toolsetCRDSpec.KubeMetricsExporter.Deploy &&
    62  		toolsetCRDSpec.MetricsPersisting != nil && (toolsetCRDSpec.MetricsPersisting.Metrics == nil || toolsetCRDSpec.MetricsPersisting.Metrics.KubeStateMetrics)
    63  	if kubeStateMetricsDeployed {
    64  		provider := &Provider{
    65  			ConfigMaps: []string{
    66  				"grafana-persistentvolumesusage",
    67  			},
    68  			Folder: filepath.Join(dashboardsfolder, "persistentvolumesusage"),
    69  		}
    70  		providers = append(providers, provider)
    71  	}
    72  
    73  	if toolsetCRDSpec.MetricsPersisting != nil && (toolsetCRDSpec.MetricsPersisting.Metrics == nil || toolsetCRDSpec.MetricsPersisting.Metrics.Boom) {
    74  		provider := &Provider{
    75  			ConfigMaps: []string{
    76  				"grafana-dashboard-boom",
    77  			},
    78  			Folder: filepath.Join(dashboardsfolder, "boom"),
    79  		}
    80  		providers = append(providers, provider)
    81  	}
    82  
    83  	if toolsetCRDSpec.MetricsPersisting != nil && (toolsetCRDSpec.MetricsPersisting.Metrics == nil || toolsetCRDSpec.MetricsPersisting.Metrics.Zitadel) {
    84  		provider := &Provider{
    85  			ConfigMaps: []string{
    86  				"grafana-dashboard-zitadel-cockroachdb-replicas",
    87  				"grafana-dashboard-zitadel-cockroachdb-runtime",
    88  				"grafana-dashboard-zitadel-cockroachdb-sql",
    89  				"grafana-dashboard-zitadel-cockroachdb-storage",
    90  				"grafana-dashboard-zitadel-health",
    91  				"grafana-dashboard-zitadel-health-details",
    92  				"grafana-dashboard-zitadel",
    93  			},
    94  			Folder: filepath.Join(dashboardsfolder, "zitadel"),
    95  		}
    96  		providers = append(providers, provider)
    97  	}
    98  
    99  	systemdExporterDeployed := toolsetCRDSpec.SystemdMetricsExporter != nil && toolsetCRDSpec.SystemdMetricsExporter.Deploy &&
   100  		toolsetCRDSpec.MetricsPersisting != nil && (toolsetCRDSpec.MetricsPersisting.Metrics == nil || toolsetCRDSpec.MetricsPersisting.Metrics.PrometheusSystemdExporter)
   101  	if systemdExporterDeployed && kubeStateMetricsDeployed && nodeExporterDeployed {
   102  		provider := &Provider{
   103  			ConfigMaps: []string{
   104  				"grafana-dashboard-cluster-health",
   105  				"grafana-dashboard-instance-health",
   106  				"grafana-dashboard-probes-health",
   107  			},
   108  			Folder: filepath.Join(dashboardsfolder, "health"),
   109  		}
   110  		providers = append(providers, provider)
   111  	}
   112  
   113  	provider := &Provider{
   114  		ConfigMaps: []string{
   115  			"grafana-dashboard-kubelet",
   116  		},
   117  		Folder: filepath.Join(dashboardsfolder, "kubelet"),
   118  	}
   119  	providers = append(providers, provider)
   120  
   121  	return providers
   122  }