### Installing the Chart Source: https://github.com/grafana/helm-charts/blob/main/charts/tempo-distributed/README.md This command installs the tempo-distributed chart with the release name `my-release`. ```console helm install my-release grafana/tempo-distributed ``` -------------------------------- ### Install snyk-exporter Source: https://github.com/grafana/helm-charts/blob/main/charts/snyk-exporter/README.md Install the snyk-exporter Helm chart. ```shell helm upgrade --install myrelease . ``` -------------------------------- ### kustomize.new usage example Source: https://github.com/grafana/helm-charts/blob/main/charts/enterprise-metrics/vendor/github.com/grafana/jsonnet-libs/tanka-util/README.md Example of how to call kustomize.new, requiring std.thisFile for correct local Kustomize object resolution. ```jsonnet // std.thisFile required to correctly resolve local Kustomize objects kustomize.new(std.thisFile) ``` -------------------------------- ### Install grafana-sampling chart Source: https://github.com/grafana/helm-charts/blob/main/charts/grafana-sampling/README.md Command to install the grafana-sampling chart with release name 'my-release' and required values. ```bash helm install my-release grafana/grafana-sampling --values - < - name: GRAFANA_CLOUD_PROMETHEUS_URL value: # This should include /api/prom/push uri - name: GRAFANA_CLOUD_PROMETHEUS_USERNAME value: - name: GRAFANA_CLOUD_TEMPO_ENDPOINT value: - name: GRAFANA_CLOUD_TEMPO_USERNAME value: # This is required for adaptive metric deduplication in Grafana Cloud - name: POD_UID valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.uid EOF ``` -------------------------------- ### helm.new usage example Source: https://github.com/grafana/helm-charts/blob/main/charts/enterprise-metrics/vendor/github.com/grafana/jsonnet-libs/tanka-util/README.md Example of how to call helm.new, requiring std.thisFile for correct local Helm Chart resolution. ```jsonnet // std.thisFile required to correctly resolve local Helm Charts helm.new(std.thisFile) ``` -------------------------------- ### Example configuration using S3 for storage Source: https://github.com/grafana/helm-charts/blob/main/charts/tempo-distributed/README.md A comprehensive example of Tempo configuration using S3 for storage, including settings for compactor, distributor, querier, ingester, and server. ```yaml config: | multitenancy_enabled: false compactor: compaction: block_retention: 48h ring: kvstore: store: memberlist distributor: receivers: jaeger: protocols: grpc: endpoint: 0.0.0.0:14250 thrift_binary: endpoint: 0.0.0.0:6832 thrift_compact: endpoint: 0.0.0.0:6831 thrift_http: endpoint: 0.0.0.0:14268 querier: frontend_worker: frontend_address: {{ include "tempo.resourceName" (dict "ctx" . "component" "query-frontend") }}:9095 ingester: lifecycler: ring: replication_factor: 1 memberlist: abort_if_cluster_join_fails: false join_members: - {{ include "tempo.fullname" . }}-memberlist server: http_listen_port: 3100 storage: trace: backend: s3 s3: access_key: tempo bucket: endpoint: minio:9000 insecure: true secret_key: supersecret pool: queue_depth: 2000 wal: path: /var/tempo/wal memcached: consistent_hash: true host: a-tempo-distributed-memcached service: memcached-client timeout: 500ms ``` -------------------------------- ### Installing with a Custom Tag Source: https://github.com/grafana/helm-charts/blob/main/charts/fluent-bit/README.md Installs the chart using a custom image tag. ```bash helm upgrade --install my-release grafana/fluent-bit \ --set image.tag= ``` -------------------------------- ### Installing the Chart Source: https://github.com/grafana/helm-charts/blob/main/charts/agent-operator/README.md Command to install the grafana-agent-operator chart with a release name. ```console helm install my-release grafana/grafana-agent-operator ``` -------------------------------- ### Installing the Chart Source: https://github.com/grafana/helm-charts/blob/main/charts/fluent-bit/README.md Installs the Fluent Bit chart with a release name and configures the Loki service name. ```bash helm repo add grafana https://grafana.github.io/helm-charts helm upgrade --install my-release grafana/fluent-bit \ --set loki.serviceName=loki.default.svc.cluster.local ``` -------------------------------- ### Usage Example Source: https://github.com/grafana/helm-charts/blob/main/charts/enterprise-metrics/vendor/github.com/grafana/jsonnet-libs/tanka-util/README.md Example of using tanka_util to render Helm charts and Kustomize manifests within Grafana Tanka. ```jsonnet local tanka = import 'github.com/grafana/jsonnet-libs/tanka-util/main.libsonnet'; local helm = tanka.helm.new(std.thisFile); local kustomize = tanka.kustomize.new(std.thisFile); { // render the Grafana Chart, set namespace to "test" grafana: helm.template('grafana', './charts/grafana', { values: { persistence: { enabled: true }, plugins: ['grafana-clock-panel'], }, namespace: 'test', }), // render the Prometheus Kustomize // then entrypoint for `kustomize build` will be ./base/prometheus/kustomization.yaml prometheus: kustomize.build('./base/prometheus'), } ``` -------------------------------- ### Upgrading to 0.35.0 ingress configuration example Source: https://github.com/grafana/helm-charts/blob/main/charts/loki-distributed/README.md Example of ingress configuration for the Gateway component when upgrading from 0.34.x to 0.35.0. ```yaml gateway: ingress: enabled: true # Newly added optional property ingressClassName: nginx hosts: - host: gateway.loki.example.com paths: # New data structure introduced - path: / # Newly added optional property pathType: Prefix ``` -------------------------------- ### Installation of Grafana Rollout Operator Source: https://github.com/grafana/helm-charts/blob/main/charts/rollout-operator/README.md Install the Grafana Rollout Operator using Helm. ```bash helm install -n grafana/rollout-operator ``` -------------------------------- ### Values file example for grafana-agent-statefulset Source: https://github.com/grafana/helm-charts/blob/main/charts/grafana-sampling/README.md Example of how to rename grafana-agent-statefulset to alloy-statefulset in values file. ```yaml alloy-statefulset: alloy: ``` -------------------------------- ### Installing the Full Loki Stack Source: https://github.com/grafana/helm-charts/blob/main/charts/fluent-bit/README.md Installs the complete Loki stack, including Fluent Bit, by enabling Fluent Bit and disabling Promtail. ```bash helm upgrade --install my-release grafana/loki-stack \ --set fluent-bit.enabled=true,promtail.enabled=false ``` -------------------------------- ### Install the chart with licensed features enabled Source: https://github.com/grafana/helm-charts/blob/main/charts/enterprise-metrics/README.md This command shows how to add the Grafana Helm repository, update it, and then install the enterprise-metrics chart with a local license file. ```bash # Add the repository $ helm repo add grafana https://grafana.github.io/helm-charts $ helm repo update $ # Perform install $ helm install grafana/enterprise-metrics --set-file 'license.contents=./license.jwt' ``` -------------------------------- ### Upgrading to 0.69.0 configuration example Source: https://github.com/grafana/helm-charts/blob/main/charts/loki-distributed/README.md Configuration for embedded cache and compactor address when upgrading from 0.68.x to 0.69.0. ```yaml loki: config: | chunk_store_config: chunk_cache_config: embedded_cache: enabled: false ``` ```yaml loki: config: | common: compactor_address: {{ include "loki.compactorFullname" . }}:3100 ``` -------------------------------- ### Enable Jaeger and Zipkin protocols Source: https://github.com/grafana/helm-charts/blob/main/charts/tempo-distributed/README.md Example configuration to enable Jaeger gRPC, Thrift HTTP, and Zipkin protocols for ingestion from chart versions < 0.8.0. ```yaml traces: jaeger: grpc: true thriftHttp: true zipkin: true ``` -------------------------------- ### Upgrading to 0.75.0 configuration example Source: https://github.com/grafana/helm-charts/blob/main/charts/loki-distributed/README.md Configuration required to expose the memberlist port for Index Gateway and Query Scheduler when upgrading from 0.74.x to 0.75.0. ```yaml loki: structuredConfig: index_gateway: mode: ring query_scheduler: use_scheduler_ring: true ``` -------------------------------- ### Install the chart with CI test values Source: https://github.com/grafana/helm-charts/blob/main/charts/enterprise-metrics/README.md This command installs the Helm chart using the values defined in the CI test configuration file. ```bash $ helm install test ./ --values ./ci/test-values.yaml ``` -------------------------------- ### Get Repo Info Source: https://github.com/grafana/helm-charts/blob/main/charts/agent-operator/README.md Commands to add the Grafana Helm repository and update it. ```console helm repo add grafana https://grafana.github.io/helm-charts helm repo update ``` -------------------------------- ### Install the chart with licensed features enabled Source: https://github.com/grafana/helm-charts/blob/main/charts/enterprise-logs/README.md This command shows how to add the Grafana Helm repository, update it, and then install the enterprise-logs chart with a local license file. ```bash helm repo add grafana https://grafana.github.io/helm-charts helm repo update helm install grafana/enterprise-logs \ --set-file 'license.contents=./license.jwt' ``` -------------------------------- ### Configuring for Grafana Cloud Source: https://github.com/grafana/helm-charts/blob/main/charts/fluent-bit/README.md Installs the chart and configures it to send logs to Grafana Cloud, including service details and authentication. ```bash helm upgrade --install my-release grafana/fluent-bit \ --set loki.serviceName=logs-us-west1.grafana.net,loki.servicePort=80,loki.serviceScheme=https \ --set loki.user=2830,loki.password=1234 ``` -------------------------------- ### Example configuration with templated S3 bucket name Source: https://github.com/grafana/helm-charts/blob/main/charts/loki-distributed/README.md This YAML configuration shows how to use Helm templating to externalize the S3 bucket name, referencing it via `.Values.bucketnames`. ```yaml loki: config: | storage_config: aws: s3: s3://eu-central-1 bucketnames: {{ .Values.bucketnames }} ``` -------------------------------- ### Example configuration using memberlist, boltdb-shipper, and S3 for storage Source: https://github.com/grafana/helm-charts/blob/main/charts/loki-distributed/README.md This YAML configuration demonstrates how to set up Loki with memberlist for discovery, boltdb-shipper for storage, and S3 as the object store. It selectively overrides default values. ```yaml loki: structuredConfig: ingester: # Disable chunk transfer which is not possible with statefulsets # and unnecessary for boltdb-shipper max_transfer_retries: 0 chunk_idle_period: 1h chunk_target_size: 1536000 max_chunk_age: 1h storage_config: aws: s3: s3://eu-central-1 bucketnames: my-loki-s3-bucket boltdb_shipper: shared_store: s3 schema_config: configs: - from: 2020-09-07 store: boltdb-shipper object_store: aws schema: v11 index: prefix: loki_index_ period: 24h ``` -------------------------------- ### MinIO integration Source: https://github.com/grafana/helm-charts/blob/main/charts/tempo-distributed/README.md Enabling MinIO as part of the chart. ```yaml minio: enabled: true ``` -------------------------------- ### Stricter default securityContext Source: https://github.com/grafana/helm-charts/blob/main/charts/tempo-distributed/README.md Example of stricter default securityContext settings for Tempo components. ```yaml tempo: securityContext: capabilities: drop: - ALL readOnlyRootFilesystem: true runAsNonRoot: true runAsUser: 1000 runAsGroup: 1000 allowPrivilegeEscalation: false podSecurityContext: fsGroup: 1000 ``` -------------------------------- ### Generate Chart README Source: https://github.com/grafana/helm-charts/blob/main/CONTRIBUTING.md Command to regenerate the README file for a chart using docker and the helm-docs tool. ```shell docker run --rm --volume "$(pwd):/helm-docs" -u "$(id -u)" jnorwood/helm-docs:v1.8.1 ``` -------------------------------- ### ServiceMonitor and Grafana Agent configuration Source: https://github.com/grafana/helm-charts/blob/main/charts/tempo-distributed/README.md Configuration for enabling ServiceMonitor and Grafana Agent, including operator installation. ```yaml metaMonitoring: serviceMonitor: enabled: true grafanaAgent: enabled: true installOperator: true ``` -------------------------------- ### Get Grafana Admin Password Source: https://github.com/grafana/helm-charts/blob/main/charts/loki-stack/README.md Retrieves the admin password for the Grafana instance deployed with the chart. ```bash kubectl get secret --namespace loki-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo ``` -------------------------------- ### Deploy a cluster using small.yaml values file Source: https://github.com/grafana/helm-charts/blob/main/charts/enterprise-metrics/README.md This command demonstrates how to install the Grafana Enterprise Metrics chart using the 'small.yaml' values file for a production ingestion of ~1M active series. ```bash $ helm install grafana/enterprise-metrics --set-file 'license.contents=./license.jwt' -f small.yaml ``` -------------------------------- ### Override configuration variables with structuredConfig Source: https://github.com/grafana/helm-charts/blob/main/charts/tempo-distributed/README.md Example of using tempo.structuredConfig to override individual values in the Tempo configuration, such as search max duration. ```yaml tempo: structuredConfig: query_frontend: search: max_duration: 12h0m0s ```