From 17b1c8cd5b11de2ceb5f33d935d53798ef197c54 Mon Sep 17 00:00:00 2001 From: Andre da Silva Date: Mon, 2 Dec 2024 01:12:31 -0300 Subject: [PATCH] Send Prometheus metrics to Grafana Cloud --- kubernetes/linera-validator/helmfile.yaml | 24 +++++++++---------- .../templates/grafana-cloud-auth-secret.yaml | 8 +++++++ ...es-local.yaml => values-local.yaml.gotmpl} | 23 ++++++++++++++---- 3 files changed, 38 insertions(+), 17 deletions(-) create mode 100644 kubernetes/linera-validator/templates/grafana-cloud-auth-secret.yaml rename kubernetes/linera-validator/{values-local.yaml => values-local.yaml.gotmpl} (76%) diff --git a/kubernetes/linera-validator/helmfile.yaml b/kubernetes/linera-validator/helmfile.yaml index cc40c08fc243..d5b7c4a49cde 100644 --- a/kubernetes/linera-validator/helmfile.yaml +++ b/kubernetes/linera-validator/helmfile.yaml @@ -1,3 +1,11 @@ +environments: + default: + values: + - writeToGrafanaCloud: {{ env "LINERA_WRITE_TO_GRAFANA_CLOUD" | default "false" }} + validatorLabel: {{ env "LINERA_VALIDATOR_LABEL" | default (printf "local-%s" (env "USER")) }} + +--- + repositories: - name: scylla url: https://scylla-operator-charts.storage.googleapis.com/stable @@ -16,22 +24,12 @@ releases: needs: - scylla/scylla values: - - {{ env "LINERA_HELMFILE_VALUES_LINERA_CORE" | default "values-local.yaml" }} + - grafanaCloudUsername: {{ fetchSecretValue "ref+gcpsecrets://linera-io-dev/grafana-cloud-username?version=latest" | quote }} + grafanaCloudAPIToken: {{ fetchSecretValue "ref+gcpsecrets://linera-io-dev/grafana-cloud-api-token?version=latest" | quote }} + - {{ env "LINERA_HELMFILE_VALUES_LINERA_CORE" | default "values-local.yaml.gotmpl" }} set: - name: installCRDs value: "true" - - name: validator.serverConfig - value: {{ env "LINERA_HELMFILE_SET_SERVER_CONFIG" | default "working/server_1.json" }} - - name: validator.genesisConfig - value: {{ env "LINERA_HELMFILE_SET_GENESIS_CONFIG" | default "working/genesis.json" }} - - name: numShards - value: {{ env "LINERA_HELMFILE_SET_NUM_SHARDS" | default 10 }} - - name: lineraImage - value: {{ env "LINERA_HELMFILE_LINERA_IMAGE" | default "linera:latest" }} - - name: staticIpGcpName - value: {{ env "LINERA_HELMFILE_STATIC_IP_GCP_NAME" | default "" }} - - name: validatorDomainName - value: {{ env "LINERA_HELMFILE_VALIDATOR_DOMAIN_NAME" | default "" }} - name: scylla version: v1.13.0 namespace: scylla diff --git a/kubernetes/linera-validator/templates/grafana-cloud-auth-secret.yaml b/kubernetes/linera-validator/templates/grafana-cloud-auth-secret.yaml new file mode 100644 index 000000000000..231d0d3a7479 --- /dev/null +++ b/kubernetes/linera-validator/templates/grafana-cloud-auth-secret.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +metadata: + name: grafana-cloud-auth-secret +type: kubernetes.io/basic-auth +stringData: + username: {{ .Values.grafanaCloudUsername | quote }} + password: {{ .Values.grafanaCloudAPIToken | quote }} diff --git a/kubernetes/linera-validator/values-local.yaml b/kubernetes/linera-validator/values-local.yaml.gotmpl similarity index 76% rename from kubernetes/linera-validator/values-local.yaml rename to kubernetes/linera-validator/values-local.yaml.gotmpl index 3ce2b7de99b8..9a78c80a3487 100644 --- a/kubernetes/linera-validator/values-local.yaml +++ b/kubernetes/linera-validator/values-local.yaml.gotmpl @@ -1,12 +1,12 @@ # Values for charts linera-validator for local validators. # Linera -lineraImage: "" # Is set by helmfile. +lineraImage: {{ env "LINERA_HELMFILE_LINERA_IMAGE" | default "linera:latest" }} lineraImagePullPolicy: Never logLevel: "debug" proxyPort: 19100 metricsPort: 21100 -numShards: 10 +numShards: {{ env "LINERA_HELMFILE_SET_NUM_SHARDS" | default 10 }} # Loki loki-stack: @@ -27,6 +27,7 @@ loki-stack: # Prometheus/Grafana kube-prometheus-stack: + {{- if not .Values.writeToGrafanaCloud }} grafana: sidecar: dashboards: @@ -38,8 +39,22 @@ kube-prometheus-stack: size: 1Gi plugins: - grafana-piechart-panel + {{- end }} prometheus: prometheusSpec: + {{- if .Values.writeToGrafanaCloud }} + remoteWrite: + - url: https://prometheus-prod-13-prod-us-east-0.grafana.net/api/prom/push + basicAuth: + username: + name: grafana-cloud-auth-secret + key: username + password: + name: grafana-cloud-auth-secret + key: password + externalLabels: + validator: {{ .Values.validatorLabel }} + {{- end }} retention: 2d retentionSize: 1GB storageSpec: @@ -101,5 +116,5 @@ environment: "kind" # Validator validator: - serverConfig: "" # Is set by helmfile. - genesisConfig: "" # Is set by helmfile. + serverConfig: {{ env "LINERA_HELMFILE_SET_SERVER_CONFIG" | default "working/server_1.json" }} + genesisConfig: {{ env "LINERA_HELMFILE_SET_GENESIS_CONFIG" | default "working/genesis.json" }}