Technical Documentation: prometheus-community/helm-charts
ℹ️ Provenance: Multi-Tier Ingestion · CodeWiki Reference
Overview (`README.md`)
Prometheus Community Kubernetes Helm Charts
This functionality is in beta and is subject to change. The code is provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features.
Usage
Helm must be installed to use the charts.
Please refer to Helm's documentation to get started.
Once Helm is set up properly, add the repository as follows:
helm repo add prometheus-community https://prometheus-community.github.io/helm-chartsYou can then run helm search repo prometheus-community to see the charts.
OCI artifacts of all Prometheus Helm charts are available in ghcr.io.
Helm Provenance and Integrity
All charts in this repository are signed. More information about how to verify charts can be found in the official Helm documentation.
A local running gpg agent is mandatory.
To import the signing key for this repository, please run the following command:
curl https://prometheus-community.github.io/helm-charts/pubkey.gpg | gpg --importAfter importing the key, you can use the --verify flag during helm install to enable chart signature validation.
Contributing
The source code of all Prometheus community Helm charts can be found on GitHub: https://github.com/prometheus-community/helm-charts/
We'd love to have you contribute! Please refer to our contribution guidelines for details.
License
Helm charts build status
Overview (`changelog/README.md`)
Helm Charts Changelog
This directory contains the interactive changelog viewer for the Grafana Community Helm Charts project.
About
The index.html file is an interactive web application that displays the complete changelog history for all Helm charts in the Grafana Community repository. It provides a user-friendly interface for browsing changes across different chart versions.
Accessing the Changelog
End users can view the changelog at:
https://prometheus-community.github.io/helm-charts/changelog/
index.html Features
📊 Interactive Release History
- Displays all releases for each Helm chart
- Organized by chart and sorted by version/publication date
- Automatic filtering of CI and administrative commits
🎯 Chart Navigation
- Auto-detects all available charts in the repository
- Easy switching between different charts
- URL-based navigation with shareable links
🔗 External Integration
- GitHub Links: Direct links to releases and pull requests
- ArtifactHub Integration:
- Template comparison views between versions
- Values file comparison for configuration changes
- Direct links to ArtifactHub package pages
🌓 Modern User Experience
- Responsive design (desktop & mobile optimized)
- Automatic dark mode support based on system preferences
- Manual theme toggle with localStorage persistence
- Clean, modern UI with GitHub-inspired styling
🔒 Security Features
- XSS protection through HTML sanitization
- Only safe domains allowed (GitHub, ArtifactHub)
- Input validation for repository parameters
Technical Implementation
- No external dependencies: Pure vanilla JavaScript
- GitHub API: REST API v3 for fetching releases
- Modern web standards: HTML5, CSS3, responsive design
- Performance optimized: Pagination support for repositories with many releases
How It Works
- Auto-Detection: The app detects the GitHub organization from the page URL
- Release Fetching: Queries GitHub API for repository releases
- Chart Extraction: Parses release tags in
chart-name-versionformat - Dynamic UI: Generates buttons for each chart and displays release notes
- Smart Filtering: Removes CI-related changes and shows only relevant updates
URL Parameters
?owner=organization&repo=repository- Load specific repository?chart=chart-name- Display specific chart on page load- All parameters are validated and sanitized for security
Release Tag Format
For charts to appear in the changelog, releases must be tagged with:
chart-name-versionExample: grafana-9.5.0, prometheus-mongodb-exporter-4.2.1
Overview (`charts/alertmanager-snmp-notifier/README.md`)
Prometheus SNMP Notifier
An Alertmanager webhook that relays alerts as SNMP traps.
This chart creates a SNMP Notifier deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.23+
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/alertmanager-snmp-notifier - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartalertmanager-snmp-notifier
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/alertmanager-snmp-notifierSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
Upgrading an existing Release to a new major version
A major chart version change (like v1.2.3 -> v2.0.0) indicates that there is an incompatible breaking change needing manual actions.
To 1.0.0
This version uses SNMP Notifier 2.0.0, with the introduction of the generic --trap.user-object instead of --snmp.trap-extra-field arguments.
The chart therefore accepts the trapTemplates object with the description and userObjects variables instead of the previous snmpTemplates:
trapTemplates:
userObjects:
- subOid: 1
template: |
{{- if .Alerts -}}
Status: NOK
{{- else -}}
Status: OK
{{- end -}}
- subOid: 5
template: |
This is a constantSee SNMP Notifier Repository for more details about new arguments.
It also updates the HorizontalPodAutoscaler to the autoscaling/v2 API version.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/alertmanager-snmp-notifierFlags
Check the configuration section list and add to the snmpNotifier.extraArgs block in your value overrides.
Overview (`charts/alertmanager/README.md`)
Alertmanager
As per prometheus.io documentation:
The Alertmanager handles alerts sent by client applications such as the
Prometheus server. It takes care of deduplicating, grouping, and routing them
to the correct receiver integration such as email, PagerDuty, or OpsGenie. It
also takes care of silencing and inhibition of alerts.
Prerequisites
Kubernetes 1.25+
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/alertmanager - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartalertmanager
The installation instructions use the OCI registry. Refer to the helm repo command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/alertmanagerSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
To 2.0
Version 2.0 enables the config reloader by default and adds hardened default security contexts and health probes for Alertmanager and the config reloader. Review custom securityContext, probe, and configmapReload values before upgrading.
To 1.0
The configmap-reload container was replaced by the prometheus-config-reloader.
Extra command-line arguments specified via configmapReload.prometheus.extraArgs are not compatible and will break with the new prometheus-config-reloader, refer to the sources in order to make the appropriate adjustment to the extra command-line arguments.
The networking.k8s.io/v1beta1 is no longer supported. Use networking.k8s.io/v1.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/alertmanagerOverview (`charts/jiralert/Readme.md`)
jiralert
JIRAlert implements Alertmanager's webhook HTTP API and connects to one or more Jira instances to create highly configurable Jira issues.
Homepage: https://github.com/prometheus-community/jiralert
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/jiralert - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartjiralert
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/jiralertSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/jiralertOverview (`charts/kube-prometheus-stack/README.md`)
kube-prometheus-stack
Installs core components of the kube-prometheus stack, a collection of Kubernetes manifests, Grafana dashboards, and Prometheus rules combined with documentation and scripts to provide easy to operate end-to-end Kubernetes cluster monitoring with Prometheus using the Prometheus Operator.
See the kube-prometheus readme for details about components, dashboards, and alerts.
Note: This chart was formerly named prometheus-operator chart, now renamed to more clearly reflect that it installs the kube-prometheus project stack, within which Prometheus Operator is only one component. This chart does not install all components of kube-prometheus, notably excluding the Prometheus Adapter and Prometheus black-box exporter.
Prerequisites
- Kubernetes 1.19+
- Helm 3+
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/kube-prometheus-stack - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartkube-prometheus-stack
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Helm Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/kube-prometheus-stackSee configuration below.
See helm install for command documentation.
Dependencies
By default this chart installs additional, dependent charts:
- prometheus-community/kube-state-metrics
- prometheus-community/prometheus-node-exporter
- grafana/grafana
To disable dependencies during installation, see multiple releases below.
See helm dependency for command documentation.
Grafana Dashboards
This chart provisions a collection of curated Grafana dashboards that are automatically loaded into Grafana via ConfigMaps. These dashboards are rendered into the Helm chart under templates/grafana/, but this is not their source of truth.
The dashboards originate from various upstream projects and are gathered and processed using scripts in the hack/ directory. For details on how these dashboards are sourced and kept up to date, refer to the hack/README.md.
Note: The dashboards referenced in the
hackscripts are usually not the original source either. Most originate from separate Prometheus mixin repositories (e.g., kubernetes-mixin) and are processed throughjsonnettooling before being included here. To find the original source in case you want to modify it you may have to search even further upstream.
If you wish to contribute or modify dashboards, please follow the guidance in the hack/README.md to ensure consistency and reproducibility.
Uninstall Helm Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
CRDs created by this chart are not removed by default and should be manually cleaned up:
kubectl delete crd alertmanagerconfigs.monitoring.coreos.com
kubectl delete crd alertmanagers.monitoring.coreos.com
kubectl delete crd podmonitors.monitoring.coreos.com
kubectl delete crd probes.monitoring.coreos.com
kubectl delete crd prometheusagents.monitoring.coreos.com
kubectl delete crd prometheuses.monitoring.coreos.com
kubectl delete crd prometheusrules.monitoring.coreos.com
kubectl delete crd scrapeconfigs.monitoring.coreos.com
kubectl delete crd servicemonitors.monitoring.coreos.com
kubectl delete crd thanosrulers.monitoring.coreos.comUpgrading Chart
helm upgrade [RELEASE_NAME] [CHART]With Helm v3, CRDs created by this chart are not updated by default and should be manually updated.
Consult also the Helm Documentation on CRDs.
CRDs update lead to a major version bump.
The Chart's appVersion refers to the prometheus-operator's version with matching CRDs.
See helm upgrade for command documentation.
Upgrading an existing Release to a new major version
A major chart version change (like v1.2.3 -> v2.0.0) indicates that there is an incompatible breaking change needing manual actions.
See UPGRADE.md
for breaking changes between versions.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments:
helm show values oci://ghcr.io/prometheus-community/charts/kube-prometheus-stackYou may also helm show values on this chart's dependencies for additional options.
For templated Grafana datasource definitions (e.g. when using Helm flow control), use grafana.additionalDataSourcesString, which is rendered via tpl.
HTTPRoute timeouts
Set timeouts on a route to configure request and backend request timeouts for its generated HTTPRoute rule:
prometheus:
route:
main:
enabled: true
parentRefs:
- name: gateway
timeouts:
request: 120s
backendRequest: 60sThe same settings are available under alertmanager.route, thanosRuler.route, and the routePerReplica settings for Prometheus and Alertmanager.
Timeouts are only rendered for kind: HTTPRoute. They do not apply to generated HTTPS redirect rules or propagate to additionalRules; configure timeouts directly on additional rules when needed. Leaving timeouts empty preserves the Gateway controller's defaults.
This requires Gateway API CRDs that support HTTPRoute timeouts (available in the Standard channel since v1.2.0) and a Gateway controller that supports the corresponding timeout features. When both values are set, backendRequest must not exceed request, unless request is "0s". See the Gateway API timeout documentation for duration semantics and controller support requirements.
Authentication of the control-plane ServiceMonitors
The built-in ServiceMonitors for kubelet, kube-apiserver, kube-controller-manager, kube-scheduler, kube-etcd, kube-proxy, coredns and kube-dns authenticate through Kubernetes objects rather than through files on the scraper's filesystem. The bearer token comes from a Secret referenced by authorization, and the CA comes from the kube-root-ca.crt ConfigMap that Kubernetes maintains in every namespace. This keeps the ServiceMonitors valid when prometheus.prometheusSpec.arbitraryFSAccessThroughSMs.deny is true, and when they are scraped by Grafana Alloy's prometheus.operator.servicemonitors component, which rejects filesystem references by default since v1.19.0.
The chart creates the credential itself: prometheus.serviceAccount.createTokenSecret (enabled by default) renders a kubernetes.io/service-account-token Secret named -token, which every component references by default:
kubelet:
serviceMonitor:
authorization:
type: Bearer
credentials:
name: '{{ include "kube-prometheus-stack.prometheus.tokenSecretName" . }}'
key: token
tlsConfig:
insecureSkipVerify: true
ca:
configMap:
name: kube-root-ca.crt
key: ca.crtBoth authorization and tlsConfig are rendered as-is, so any field of the Prometheus Operator SafeAuthorization and SafeTLSConfig types can be set. Set authorization to null to scrape a component without authentication. kubeApiServer keeps its TLS settings under kubeApiServer.tlsConfig; coreDns and kubeDns have no tlsConfig, since those endpoints are scraped over HTTP.
That Secret is only rendered alongside the Prometheus service account, so it also requires prometheus.enabled and prometheus.serviceAccount.create. Leaving a component on the default authorization while the Secret is not rendered fails the release with an explanatory message, rather than producing a ServiceMonitor that references a Secret which will never exist. When the control plane is scraped by a Prometheus this chart does not deploy, point each enabled component at the scraper's own credential; ci/08-external-scraper-values.yaml is a complete example.
To use your own credential, disable prometheus.serviceAccount.createTokenSecret and point the components at your Secret. The Secret must live in the namespace of the ServiceMonitor, which is the release namespace unless prometheus.prometheusSpec.ignoreNamespaceSelectors is enabled. Because Helm deep-merges values, replacing the CA reference requires clearing the default explicitly:
kubelet:
serviceMonitor:
tlsConfig:
ca:
configMap: null
secret:
name: kubelet-scrape-auth
key: ca.crtkubeEtcd is the only component that scrapes with client certificates:
kubeEtcd:
serviceMonitor:
scheme: https
tlsConfig:
insecureSkipVerify: false
ca:
secret:
name: etcd-client-cert
key: etcd-ca
cert:
secret:
name: etcd-client-cert
key: etcd-client
keySecret:
name: etcd-client-cert
key: etcd-client-keyPrometheus High Availability (HA)
For a basic HA setup, run multiple Prometheus replicas:
prometheus:
prometheusSpec:
replicas: 2
podAntiAffinity: "hard"
externalLabels:
cluster: prod-eu1Important notes:
replicascontrols how many Prometheus pods are deployed for each shard.- Keep anti-affinity enabled (or hardened) to avoid scheduling all replicas on one node.
- Do not clear replica/instance external labels in HA setups (
replicaExternalLabelNameClear/prometheusExternalLabelNameClear), otherwise deduplication and alert/source identification become harder. - Querying replicas through a Kubernetes Service provides availability, but not sample deduplication across replicas by itself. For global/deduplicated querying, use a Thanos Query layer (or another backend that performs deduplication).
See also Prometheus Operator HA guidance:
Multiple releases
The same chart can be used to run multiple Prometheus instances in the same cluster if required. To achieve this, it is necessary to run only one instance of prometheus-operator and a pair of alertmanager pods for an HA configuration, while all other components need to be disabled. To disable a dependency during installation, set kubeStateMetrics.enabled, nodeExporter.enabled and grafana.enabled to false.
Work-Arounds for Known Issues
Running on private GKE clusters
When Google configure the control plane for private clusters, they automatically configure VPC peering between your Kubernetes cluster’s network and a separate Google managed project. In order to restrict what Google are able to access within your cluster, the firewall rules configured restrict access to your Kubernetes pods. This means that in order to use the webhook component with a GKE private cluster, you must configure an additional firewall rule to allow the GKE control plane access to your webhook pod.
You can read more information on how to add firewall rules for the GKE control plane nodes in the GKE docs
Alternatively, you can disable the hooks by setting prometheusOperator.admissionWebhooks.enabled=false.
Argo CD
The operator CRDs are larger than the 262144 byte limit on the kubectl.kubernetes.io/last-applied-configuration annotation — crd-prometheuses.yaml alone is around 840 KiB — so a client-side apply fails with metadata.annotations: Too long. Sync the application with ServerSideApply=true.
PrometheusRules Admission Webhooks
With Prometheus Operator version 0.30+, the core Prometheus Operator pod exposes an endpoint that will integrate with the validatingwebhookconfiguration Kubernetes feature to prevent malformed rules from being added to the cluster.
How the Chart Configures the Hooks
A validating and mutating webhook configuration requires the endpoint to which the request is sent to use TLS. It is possible to set up custom certificates to do this, but in most cases, a self-signed certificate is enough. The setup of this component requires some more complex orchestration when using helm. The steps are created to be idempotent and to allow turning the feature on and off without running into helm quirks.
- A pre-install hook provisions a certificate into the same namespace using a format compatible with provisioning using end user certificates. If the certificate already exists, the hook exits.
- The prometheus operator pod is configured to use a TLS proxy container, which will load that certificate.
- Validating and Mutating webhook configurations are created in the cluster, with their failure mode set to Ignore. This allows rules to be created by the same chart at the same time, even though the webhook has not yet been fully set up - it does not have the correct CA field set.
- A post-install hook reads the CA from the secret created by step 1 and patches the Validating and Mutating webhook configurations. This process will allow a custom CA provisioned by some other process to also be patched into the webhook configurations. The chosen failure policy is also patched into the webhook configurations
Alternatives
It should be possible to use jetstack/cert-manager if a more complete solution is required, but it has not been tested.
You can enable automatic self-signed TLS certificate provisioning via cert-manager by setting the prometheusOperator.admissionWebhooks.certManager.enabled value to true.
Limitations
Because the operator can only run as a single pod, there is potential for this component failure to cause rule deployment failure. Because this risk is outweighed by the benefit of having validation, the feature is enabled by default.
Developing Prometheus Rules and Grafana Dashboards
This chart Grafana Dashboards and Prometheus Rules are just a copy from prometheus-operator/prometheus-operator and other sources, synced (with alterations) by scripts in hack folder. In order to introduce any changes you need to first add them to the original repository and then sync there by scripts.
Further Information
For more in-depth documentation of configuration options meanings, please see
prometheus.io/scrape
The prometheus operator does not support annotation-based discovery of services, using the PodMonitor or ServiceMonitor CRD in its place as they provide far more configuration options.
For information on how to use PodMonitors/ServiceMonitors, please see the documentation on the prometheus-operator/prometheus-operator documentation here:
By default, Prometheus discovers PodMonitors and ServiceMonitors within its namespace, that are labeled with the same release tag as the prometheus-operator release.
Sometimes, you may need to discover custom PodMonitors/ServiceMonitors, for example used to scrape data from third-party applications.
An easy way of doing this, without compromising the default PodMonitors/ServiceMonitors discovery, is allowing Prometheus to discover all PodMonitors/ServiceMonitors within its namespace, without applying label filtering.
To do so, you can set prometheus.prometheusSpec.podMonitorSelectorNilUsesHelmValues and prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues to false.
Migrating from stable/prometheus-operator chart
Zero downtime
Since kube-prometheus-stack is fully compatible with the stable/prometheus-operator chart, a migration without downtime can be achieved.
However, the old name prefix needs to be kept. If you want the new name please follow the step by step guide below (with downtime).
You can override the name to achieve this:
helm upgrade prometheus-operator prometheus-community/kube-prometheus-stack -n monitoring --reuse-values --set nameOverride=prometheus-operatorNote: It is recommended to run this first with --dry-run --debug.
Redeploy with new name (downtime)
If the prometheus-operator values are compatible with the new kube-prometheus-stack chart, please follow the below steps for migration:
The guide presumes that chart is deployed in
monitoringnamespace and the deployments are running there. If in other namespace, please replace themonitoringto the deployed namespace.
Patch the PersistenceVolume created/used by the prometheus-operator chart to
Retainclaim policy:consolekubectl patch pv/<PersistentVolume name> -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'Note: To execute the above command, the user must have a cluster wide permission. Please refer Kubernetes RBAC
Uninstall the prometheus-operator release and delete the existing PersistentVolumeClaim, and verify PV become Released.
consolehelm uninstall prometheus-operator -n monitoring kubectl delete pvc/<PersistenceVolumeClaim name> -n monitoringAdditionally, you have to manually remove the remaining
prometheus-operator-kubeletservice.consolekubectl delete service/prometheus-operator-kubelet -n kube-systemYou can choose to remove all your existing CRDs (ServiceMonitors, Podmonitors, etc.) if you want to.
Remove current
spec.claimRefvalues to change the PV's status from Released to Available.consolekubectl patch pv/<PersistentVolume name> --type json -p='[{"op": "remove", "path": "/spec/claimRef"}]' -n monitoring
Note: To execute the above command, the user must have a cluster wide permission. Please refer to Kubernetes RBAC
After these steps, proceed to a fresh kube-prometheus-stack installation and make sure the current release of kube-prometheus-stack matching the volumeClaimTemplate values in the values.yaml.
The binding is done via matching a specific amount of storage requested and with certain access modes.
For example, if you had storage specified as this with prometheus-operator:
volumeClaimTemplate:
spec:
storageClassName: gp2
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 50GiYou have to specify matching volumeClaimTemplate with 50Gi storage and ReadWriteOnce access mode.
Additionally, you should check the current AZ of your legacy installation's PV, and configure the fresh release to use the same AZ as the old one. If the pods are in a different AZ than the PV, the release will fail to bind the existing one, hence creating a new PV.
This can be achieved either by specifying the labels through values.yaml, e.g. setting prometheus.prometheusSpec.nodeSelector to:
nodeSelector:
failure-domain.beta.kubernetes.io/zone: east-west-1aor passing these values as --set overrides during installation.
The new release should now re-attach your previously released PV with its content.
Migrating from coreos/prometheus-operator chart
The multiple charts have been combined into a single chart that installs prometheus operator, prometheus, alertmanager, grafana as well as the multitude of exporters necessary to monitor a cluster.
There is no simple and direct migration path between the charts as the changes are extensive and intended to make the chart easier to support.
The capabilities of the old chart are all available in the new chart, including the ability to run multiple prometheus instances on a single cluster - you will need to disable the parts of the chart you do not wish to deploy.
You can check out the tickets for this change at prometheus-operator/prometheus-operator #592 and helm/charts #6765.
High-level overview of Changes
Added dependencies
The chart has added 3 dependencies.
- Node-Exporter, Kube-State-Metrics: These components are loaded as dependencies into the chart, and are relatively simple components
- Grafana: The Grafana chart is more feature-rich than this chart - it contains a sidecar that is able to load data sources and dashboards from configmaps deployed into the same cluster. For more information check out the documentation for the chart
Kubelet Service
Because the kubelet service has a new name in the chart, make sure to clean up the old kubelet service in the kube-system namespace to prevent counting container metrics twice.
Persistent Volumes
If you would like to keep the data of the current persistent volumes, it should be possible to attach existing volumes to new PVCs and PVs that are created using the conventions in the new chart. For example, in order to use an existing Azure disk for a helm release called prometheus-migration the following resources can be created:
apiVersion: v1
kind: PersistentVolume
metadata:
name: pvc-prometheus-migration-prometheus-0
spec:
accessModes:
- ReadWriteOnce
azureDisk:
cachingMode: None
diskName: pvc-prometheus-migration-prometheus-0
diskURI: /subscriptions/f5125d82-2622-4c50-8d25-3f7ba3e9ac4b/resourceGroups/sample-migration-resource-group/providers/Microsoft.Compute/disks/pvc-prometheus-migration-prometheus-0
fsType: ""
kind: Managed
readOnly: false
capacity:
storage: 1Gi
persistentVolumeReclaimPolicy: Delete
storageClassName: prometheus
volumeMode: FilesystemapiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
app.kubernetes.io/name: prometheus
prometheus: prometheus-migration-prometheus
name: prometheus-prometheus-migration-prometheus-db-prometheus-prometheus-migration-prometheus-0
namespace: monitoring
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: prometheus
volumeMode: Filesystem
volumeName: pvc-prometheus-migration-prometheus-0The PVC will take ownership of the PV and when you create a release using a persistent volume claim template it will use the existing PVCs as they match the naming convention used by the chart. For other cloud providers similar approaches can be used.
KubeProxy
The metrics bind address of kube-proxy is default to 127.0.0.1:10249 that prometheus instances cannot access to. You should expose metrics by changing metricsBindAddress field value to 0.0.0.0:10249 if you want to collect them.
Depending on the cluster, the relevant part config.conf will be in ConfigMap kube-system/kube-proxy or kube-system/kube-proxy-config. For example:
kubectl -n kube-system edit cm kube-proxyapiVersion: v1
data:
config.conf: |-
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
# ...
# metricsBindAddress: 127.0.0.1:10249
metricsBindAddress: 0.0.0.0:10249
# ...
kubeconfig.conf: |-
# ...
kind: ConfigMap
metadata:
labels:
app: kube-proxy
name: kube-proxy
namespace: kube-systemOverview (`charts/kube-state-metrics/README.md`)
kube-state-metrics Helm Chart
Installs the kube-state-metrics agent.
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/kube-state-metrics - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartkube-state-metrics
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/kube-state-metrics [flags]See configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/kube-state-metrics [flags]See helm upgrade for command documentation.
Migrating from stable/kube-state-metrics and kubernetes/kube-state-metrics
You can upgrade in-place:
- upgrade your existing release name using the new chart repository
Upgrading to v8.0.0
This version drops support for configuring CiliumNetworkPolicy as it is a vendor specific resource.
In addition, the networkPolicy.flavor setting is no longer persistent and can be safely dropped as only Kubernetes NetworkPolicy resources are supported.
Upgrading to v6.0.0
This version drops support for deprecated Pod Security Policy resources.
Upgrading to v3.0.0
v3.0.0 includes kube-state-metrics v2.0, see the changelog for major changes on the application-side.
The upgraded chart now the following changes:
- Dropped support for helm v2 (helm v3 or later is required)
- collectors key was renamed to resources
- namespace key was renamed to namespaces
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments:
helm show values oci://ghcr.io/prometheus-community/charts/kube-state-metricsAdmission policy collectors
kube-state-metrics v2.20.0 and later supports the following admission policy collectors.
They use the admissionregistration.k8s.io/v1 API and are opt-in in this chart to preserve compatibility with older Kubernetes versions and image overrides.
| Collectors | Required Kubernetes version |
|---|---|
validatingadmissionpolicies, validatingadmissionpolicybindings |
v1.30 or later |
mutatingadmissionpolicies, mutatingadmissionpolicybindings |
v1.36 or later |
Enable only the collectors supported by your cluster through collectorsExtra or collectors.
For example, on Kubernetes v1.36 or later:
collectorsExtra:
- mutatingadmissionpolicies
- mutatingadmissionpolicybindings
- validatingadmissionpolicies
- validatingadmissionpolicybindingsOn Kubernetes v1.30 through v1.35, enable only the two validating admission policy collectors.
Do not enable these collectors when overriding the image to a kube-state-metrics version older than v2.20.0.
These resources are cluster-scoped and require cluster-wide RBAC permissions.
With the default RBAC settings, the chart adds list and watch permissions only for the selected collectors.
If you manage RBAC separately, grant those permissions on the selected resources in the admissionregistration.k8s.io API group.
kube-rbac-proxy
You can enable kube-state-metrics endpoint protection using kube-rbac-proxy. By setting kubeRBACProxy.enabled: true, this chart will deploy one RBAC proxy container per endpoint (metrics & telemetry).
To authorize access, authenticate your requests (via a ServiceAccount for example) with a ClusterRole attached such as:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: kube-state-metrics-read
rules:
- apiGroups: [ "" ]
resources: ["services/kube-state-metrics"]
verbs:
- getSee kube-rbac-proxy examples for more details.
auth-filter
As an alternative to kube-rbac-proxy, kube-state-metrics can authenticate and authorize requests itself using its built-in --auth-filter. Set authFilter.enabled: true to add the --auth-filter flag and the create permissions on tokenreviews and subjectaccessreviews that the filter requires.
Scrapers must then authenticate (for example via a ServiceAccount token) and be authorized to get the kube-state-metrics service. See the upstream Authentication / Authorization documentation for the scraper-side ClusterRole and ClusterRoleBinding.
Overview (`charts/prom-label-proxy/README.md`)
prom-label-proxy
A proxy that enforces a given label in a given PromQL query.
Homepage: https://github.com/oci://ghcr.io/prometheus-community/charts/prom-label-proxy
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prom-label-proxy - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprom-label-proxy
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prom-label-proxySee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prom-label-proxykube-rbac-proxy
You can enable prom-label-proxy endpoint protection using kube-rbac-proxy. By setting kubeRBACProxy.enabled: true, this chart will deploy one RBAC proxy container for config.listenAddress.
With the below example values.yaml :
config:
upstream: http://prometheus:9090
extraArgs:
- --enable-label-apis=true
- --header-name=X-Namespace
kubeRBACProxy:
enabled: true
config:
authorization:
rewrites:
byHttpHeader:
name: X-Namespace
resourceAttributes:
apiVersion: v1
resource: namespaces
subresource: metrics
namespace: "{{ .Value }}"To authorize access, authenticate your requests (via a ServiceAccount for example) with a Role attached such as:
apiVersion: v1
kind: ServiceAccount
metadata:
name: tenant1-metrics-reader
namespace: tenant1
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: tenant1-metrics
namespace: tenant1
rules:
- apiGroups: [ '' ]
resources:
- namespaces/metrics
verbs: [ "create", "get" ]
---
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: tenant1-metrics-reader
namespace: tenant1
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: tenant1-metrics
subjects:
- kind: ServiceAccount
name: tenant1-metrics-reader
namespace: tenant1See kube-rbac-proxy examples for more details.
Overview (`charts/prometheus-adapter/README.md`)
Prometheus Adapter
Installs the Prometheus Adapter for the Custom Metrics API. Custom metrics are used in Kubernetes by Horizontal Pod Autoscalers to scale workloads based upon your own metric pulled from an external metrics provider like Prometheus. This chart complements the metrics-server chart that provides resource only metrics.
Prerequisites
Kubernetes 1.21+
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-adapter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-adapter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Helm Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-adapterSee configuration below.
See helm install for command documentation.
Uninstall Helm Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Helm Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
To 5.0.0
This version removes support for the deprecated Kubernetes API policy/v1beta1 for PodDisruptionBudgets. It also removes the deprecated PodSecurityPolicy resource. Minimum Kubernetes version >= 1.21 is now required.
To 4.2.0
Readiness and liveness probes are now fully configurable through values readinessProbe and livenessProbe. The previous values have been kept as defaults.
To 4.0.0
Previously, security context of the container was set directly in the deployment template. This release makes it configurable through the new configuration variable securityContext whilst keeping the previously set values as defaults. Furthermore, previous variable runAsUser is now set in securityContext and is not used any longer. Please, use securityContext.runAsUser instead. In the same security context, seccompProfile has been enabled and set to type RuntimeDefault.
To 3.0.0
Due to a change in deployment labels, the upgrade requires helm upgrade --force in order to re-create the deployment.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-adapterPrometheus Service Endpoint
To use the chart, ensure the prometheus.url and prometheus.port are configured with the correct Prometheus service endpoint. If Prometheus is exposed under HTTPS the host's CA Bundle must be exposed to the container using extraVolumes and extraVolumeMounts.
Adapter Rules
Additionally, the chart comes with a set of default rules out of the box but they may pull in too many metrics or not map them correctly for your needs. Therefore, it is recommended to populate rules.custom with a list of rules (see the config document for the proper format).
Horizontal Pod Autoscaler Metrics
Finally, to configure your Horizontal Pod Autoscaler to use the custom metric, see the custom metrics section of the HPA walkthrough.
The Prometheus Adapter can serve three different metrics APIs:
Custom Metrics
Enabling this option will cause custom metrics to be served at /apis/custom.metrics.k8s.io/v1beta1. Enabled by default when rules.default is true, but can be customized by populating rules.custom:
rules:
custom:
- seriesQuery: '{__name__=~"^some_metric_count$"}'
resources:
template: <<.Resource>>
name:
matches: ""
as: "my_custom_metric"
metricsQuery: sum(<<.Series>>{<<.LabelMatchers>>}) by (<<.GroupBy>>)External Metrics
Enabling this option will cause external metrics to be served at /apis/external.metrics.k8s.io/v1beta1. Can be enabled by populating rules.external:
rules:
external:
- seriesQuery: '{__name__=~"^some_metric_count$"}'
resources:
template: <<.Resource>>
name:
matches: ""
as: "my_external_metric"
metricsQuery: sum(<<.Series>>{<<.LabelMatchers>>}) by (<<.GroupBy>>)Resource Metrics
Enabling this option will cause resource metrics to be served at /apis/metrics.k8s.io/v1beta1. Resource metrics will allow pod CPU and Memory metrics to be used in Horizontal Pod Autoscalers as well as the kubectl top command. Can be enabled by populating rules.resource:
rules:
resource:
cpu:
containerQuery: |
sum by (<<.GroupBy>>) (
rate(container_cpu_usage_seconds_total{container!="",<<.LabelMatchers>>}[3m])
)
nodeQuery: |
sum by (<<.GroupBy>>) (
rate(node_cpu_seconds_total{mode!="idle",mode!="iowait",mode!="steal",<<.LabelMatchers>>}[3m])
)
resources:
overrides:
node:
resource: node
namespace:
resource: namespace
pod:
resource: pod
containerLabel: container
memory:
containerQuery: |
round(sum by (<<.GroupBy>>) (
avg_over_time(container_memory_working_set_bytes{container!="",<<.LabelMatchers>>}[3m])
))
nodeQuery: |
round(sum by (<<.GroupBy>>) (
avg_over_time(node_memory_MemTotal_bytes{<<.LabelMatchers>>}[3m])
-
avg_over_time(node_memory_MemAvailable_bytes{<<.LabelMatchers>>}[3m])
))
resources:
overrides:
node:
resource: node
namespace:
resource: namespace
pod:
resource: pod
containerLabel: container
window: 3mNOTE: Setting a value for rules.resource will also deploy the resource metrics API service, providing the same functionality as metrics-server. As such it is not possible to deploy them both in the same cluster.
Overview (`charts/prometheus-blackbox-exporter/README.md`)
Prometheus Blackbox Exporter
Prometheus exporter for blackbox testing
Learn more: https://github.com/prometheus/blackbox_exporter
This chart creates a Blackbox-Exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.8+ with Beta APIs enabled
- Helm >= 3.0
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-blackbox-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-blackbox-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-blackbox-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
To 11.0.0
This version removes support for the deprecated Kubernetes API extensions/v1beta1, networking.k8s.io/v1beta1, and rbac.authorization.k8s.io/v1beta1. and associated attributes.
To 10.0.0
extraEnvFromSecretgot replaced withextraEnvFromextraEnvhandling got changed to use k8s env definitions as list of maps
To 9.0.0
This version remove pod security policy as it is deprecated.
To 8.0.0
- The default image is set to
quay.io/prometheus/blackbox-exporterinsteadprom/blackbox-exporter image.repositoryis now split intoimage.registryandimage.repository.
For the old behavior, setimage.registryto an empty string and only useimage.repository.
To 7.0.0
This version introduces the securityContext and podSecurityContext and removes allowICMPoption.
All previous values are setup as default. In case that you want to enable previous functionality for allowICMP you need to explicit enabled with the following configuration:
securityContext:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
capabilities:
add: ["NET_RAW"]To 6.0.0
This version introduces the relabeling field for the ServiceMonitor.
All values in the list additionalRelabeling will now appear under relabelings instead of metricRelabelings.
To 5.0.0
This version removes Helm 2 support. Also the ingress config has changed, so you have to adapt to the example in the values.yaml.
To 4.0.0
This version create the service account by default and introduce pod security policy, it can be enabled by setting pspEnabled: true.
To 2.0.0
This version removes the podDisruptionBudget.enabled parameter and changes the default value of podDisruptionBudget to {}, in order to fix Helm 3 compatibility.
In order to upgrade, please remove podDisruptionBudget.enabled from your custom values.yaml file and set the content of podDisruptionBudget, for example:
podDisruptionBudget:
maxUnavailable: 0To 1.0.0
This version introduce the new recommended labels.
In order to upgrade, delete the Deployment before upgrading:
kubectl delete deployment [RELEASE_NAME]-prometheus-blackbox-exporterNote that this will cause downtime of the blackbox.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-blackbox-exporterBinary protocol (TCP) modules (PostgreSQL, LDAP, etc.)
If your module configuration requires binary send payloads — for example probing
PostgreSQL SSL negotiation
or LDAP STARTTLS —
you cannot configure them via the config: value in values.yaml.
The contents of config: are passed through toYaml in the ConfigMap template,
which round-trips the values through Helm's YAML parser, which decodes!!binary tags and re-encodes them as UTF-8 strings. Any byte ≥ 0x80 is
silently corrupted or dropped. The failure only manifests at probe time as a
cryptic byte-mismatch error, with no warning during helm install or helm template.
Workaround: create the blackbox config as a Kubernetes Secret outside of Helm
and reference it via configExistingSecretName:
configExistingSecretName: blackbox-binary-configThe Secret must contain a blackbox.yaml key:
kubectl create secret generic blackbox-binary-config \
--from-file=blackbox.yaml=./blackbox.yamlThis bypasses the toYaml pipeline entirely and delivers the config verbatim.
Overview (`charts/prometheus-cloudwatch-exporter/README.md`)
Prometheus Cloudwatch Exporter
An exporter for Amazon CloudWatch, for Prometheus.
This chart bootstraps a cloudwatch exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- kube2iam installed to used the aws.role config option otherwise configure aws.aws_access_key_id and aws.aws_secret_access_key or aws.secret.name
- Or an IAM Role for service account attached to a service account with an annotation. If you run the pod as nobody in
securityContext.runAsUserthen also setsecurityContext.fsGroupto the same value so it will be able to access to the mounted secret.
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-cloudwatch-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-cloudwatch-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
# Helm 3
$ helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-cloudwatch-exporter
# Helm 2
$ helm install --name [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-cloudwatch-exporterSee Configuring below.
See helm install for command documentation.
Uninstall Chart
# Helm 3
$ helm uninstall [RELEASE_NAME]
# Helm 2
# helm delete --purge [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
# Helm 3 or 2
$ helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
Configuring
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
# Helm 2
$ helm inspect values oci://ghcr.io/prometheus-community/charts/prometheus-cloudwatch-exporter
# Helm 3
$ helm show values oci://ghcr.io/prometheus-community/charts/prometheus-cloudwatch-exporterAWS Credentials or Role
For Cloudwatch Exporter to operate properly, you must configure either AWS credentials or an AWS role with the correct policy.
- To configure AWS credentials by value, set
aws.aws_access_key_idto your [AWS_ACCESS_KEY_ID], andaws.aws_secret_access_keyto [AWS_SECRET_ACCESS_KEY]. - To configure AWS credentials by secret, you must store them in a secret (
kubectl create secret generic [SECRET_NAME] --from-literal=access_key=[AWS_ACCESS_KEY_ID] --from-literal=secret_key=[AWS_SECRET_ACCESS_KEY]) and setaws.secret.nameto [SECRET_NAME] - To configure an AWS role (with correct policy linked above), set
aws.roleto [ROLE_NAME]
Overview (`charts/prometheus-conntrack-stats-exporter/README.md`)
Conntrack Stats Exporter
Prometheus Conntrack Stats exporter for various metrics about Conntrack, written in Go.
Learn more: https://github.com/jwkohnen/conntrack-stats-exporter
This chart creates an Conntrack-Stats-Exporter daemonset on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.10+
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-conntrack-stats-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-conntrack-stats-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-conntrack-stats-exporterThe command deploys Conntrack-Stats Exporter on the Kubernetes cluster using the default configuration.
See configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installConfiguration
See Customizing the Chart Before Installing.
To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-conntrack-stats-exporterTip: You can use the default values.yaml
Overview (`charts/prometheus-consul-exporter/README.md`)
Prometheus Consul Exporter
A Prometheus exporter for Consul metrics.
This chart creates a Consul Exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.9+ with Beta APIs enabled
- Helm 3
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-consul-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-consul-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-consul-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
From 0.5.x to 1.0.0
Helm apiVersion has been increased to v2 in version 1.0.0. As a result, Helm v3 is required to install the chart. Please, see notes on migration from Helm v2 to Helm v3.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-consul-exporterConsul Server Info
Set consulServer to [MY_CONSUL_HOST]:[MY_CONSUL_PORT].
Flags
Check the Flags list and add to the options block in your value overrides.
Overview (`charts/prometheus-couchdb-exporter/README.md`)
prometheus-couchdb-exporter
A Prometheus exporter for CouchDB metrics.
This chart bootstraps a CouchDB Exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Helm 3.7+
Helm v2 was no longer supported from chart version 1.0.0.
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-couchdb-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-couchdb-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-couchdb-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
To 1.0.0
Helm v2 was no longer supported from chart version 1.0.0.
See Migrating Helm v2 to v3 guide.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-couchdb-exporterOverview (`charts/prometheus-druid-exporter/README.md`)
Prometheus Druid Exporter
A Prometheus exporter for Druid metrics.
Installs the Druid Exporter for Prometheus.
Some of the metrics collections are:-
- Druid's health metrics
- Druid's datasource metrics
- Druid's segment metrics
- Druid's supervisor metrics
- Druid's tasks metrics
- Druid's components metrics like:- broker, historical, ingestion(kafka), coordinator, sys
Prerequisites
- Kubernetes 1.16+
- Helm 3.7+
Helm v2 was no longer supported from chart version 1.0.0.
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-druid-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-druid-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-druid-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
To 1.0.0
Helm v2 was no longer supported from chart version 1.0.0.
See Migrating Helm v2 to v3 guide.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-druid-exporterDruid Server Connection
To use this chart, ensure that druidURL is populated with valid Druid URL. Basically this is the URL of druid router or coordinator service.
An example could be:-
http://druid.opstreelabs.inService Monitor
The chart comes with a ServiceMonitor for use with the kube-pometheus-stack. If you're not using the Prometheus Operator, you can disable the ServiceMonitor by setting serviceMonitor.enabled to false and it will auto generate the following podAnnotations into deployment.yaml:
podAnnotations:
prometheus.io/path: /metrics
prometheus.io/port: metrics
prometheus.io/scrape: "true"Overview (`charts/prometheus-elasticsearch-exporter/README.md`)
Prometheus Elasticsearch Exporter
Prometheus exporter for various metrics about Elasticsearch, written in Go. For more information, please, see the project's repository.
This chart creates an Elasticsearch exporter deployment on a Kubernetes
cluster using the Helm package manager.
Prerequisites
- Helm 3.7+
- Kubernetes 1.19+
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-elasticsearch-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-elasticsearch-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Helm Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-elasticsearch-exporterThe command deploys Elasticsearch Exporter on the Kubernetes cluster using the default configuration.
See configuration below.
See helm install for command documentation.
Uninstall Helm Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Helm Chart
helm upgrade [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-elasticsearch-exporter --installSee helm upgrade for command documentation.
To 7.0.0
In Release 7.0.0, the chart has dropped support for PodSecurityPolicy, which was remvoed in k8s 1.25.
To 6.0.0
In release 6.0, the chart API version has been increased to v2. From now on, the chart supports Helm 3 only.
The minimum Kubernetes version supported by the chart has been raised to 1.19.
Labels and selectors have been replaced following Helm 3 label and annotation best practices:
| Previous | Current |
|---|---|
| app | app.kubernetes.io/name |
| chart | helm.sh/chart |
| [none] | app.kubernetes.io/version |
| heritage | app.kubernetes.io/managed-by |
| release | app.kubernetes.io/instance |
As the change is affecting immutable selector labels, the deployment must be deleted before upgrading the release, e.g.:
kubectl delete deploy -l app=prometheus-elasticsearch-exporterOnce the resources have been deleted, you can upgrade the release:
helm upgrade -i RELEASE_NAME prometheus-community/prometheus-elasticsearch-exporterTo 5.0.0
securityContext has been renamed to podSecurityContext and securityContext.enabled has no effect anymore. To mirror the behaviour of securityContext.enabled=false of 4.x unset podSecurityContext.
helm install --set podSecurityContext=null my-exporter stable/elasticsearch-exporterIn 5.0.0 securityContext refers to the container's securityContext instead which was not configurable in earlier versions. The naming is aligned with the base charts created by Helm.
Default values for podSecurityContext and securityContext have been updated to be compatible with the Pod Security Standard level "restricted". Most notably seccompProfile.type is set to RuntimeDefault.
To 4.0.0
While migrating the chart from stable/elasticsearch-exporter it was renamed to prometheus-elasticsearch-exporter.
If you want to upgrade from a previous version and you need to keep the old resource names (Service, Deployment, etc) you can set fullnameOverride and nameOverride to do so.
The example below shows how those values should be set for a my-exporter release of the previous chart.
helm install my-exporter stable/elasticsearch-exporter
helm upgrade my-exporter . --set fullnameOverride=my-exporter-elasticsearch-exporter --set nameOverride=elasticsearch-exporterTo 3.0.0
prometheusRule.rules are now processed as Helm template, allowing to set variables in them.
This means that if a rule contains a {{ $value }}, Helm will try replacing it and probably fail.
You now need to escape the rules (see values.yaml) for examples.
To 2.0.0
Some Kubernetes APIs used from 1.x have been deprecated. You need to update your cluster to Kubernetes 1.10+ to support new definitions used in 2.x.
Configuration
See Customizing the Chart Before Installing.
To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-elasticsearch-exporterTip: You can use the default values.yaml
Overview (`charts/prometheus-fastly-exporter/README.md`)
Prometheus Fastly Exporter
A Prometheus exporter for Fastly metrics.
This chart creates a Fastly Exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.8+ with Beta APIs enabled
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-fastly-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-fastly-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-fastly-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
Fastly token
To use the chart, ensure the fastly.token is populated with a valid Fastly API token or an existing secret (in the releases namespace) containing the key defined on existingSecret.key, with the token is referred via existingSecret.name. If no secret key is defined, the default value is fastly-api-token.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-fastly-exporterFlags
Check the filtering Flags list and add to the options block in your value overrides.
Overview (`charts/prometheus-ipmi-exporter/README.md`)
Prometheus IPMI Exporter
A Prometheus exporter for IP Management Interface metrics.
This chart creates a IPMI Exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.33+
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-ipmi-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-ipmi-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-ipmi-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-ipmi-exporterScrapeConfig vs ServiceMonitor
This chart supports both ServiceMonitor (v1) and ScrapeConfig (v1alpha1) from prometheus-operator.
ScrapeConfig is recommended for:
- Scraping IPMI targets in remote mode (exporter as a proxy)
- Using file-based service discovery
- More flexibility with relabeling
Example - Remote IPMI scraping:
scrapeConfig:
enabled: true
mode: remote # Uses /ipmi endpoint with target relabeling
staticConfigs:
- targets:
- 192.168.1.10
- 192.168.1.11Example - Local exporter metrics:
scrapeConfig:
enabled: true
mode: local # Uses /metrics endpoint directly
staticConfigs:
- targets:
- ipmi-exporter:9290Overview (`charts/prometheus-json-exporter/README.md`)
prometheus-json-exporter
Prometheus exporter for scraping JSON by JSONPath.
This chart bootstraps a json_exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.10+ with Beta APIs enabled
- Helm 3+
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-json-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-json-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-json-exporterSee [configuration](## Configuring) below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installFrom 0.7.x to 0.8.0
This version fixes configmap name according to the chart standard so that configmap will be recreated with subsequent deployment rollout.
See #3926 for more context.
Configuring
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-json-exporterFor more information please refer to the json_exporter documentation.
Overview (`charts/prometheus-kafka-exporter/README.md`)
Prometheus Kafka Exporter
A Prometheus exporter for Apacher Kafka metrics.
This chart bootstraps a Kafka Exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.25+
- Helm 3
Helm v2 is no longer supported from chart version 2.0.0.
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-kafka-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-kafka-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-kafka-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-kafka-exporter --installSee helm upgrade for command documentation.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-kafka-exporterUpgrading an existing Release to a new major version
A major chart version change (like v1.2.3 -> v2.0.0) indicates that there is an incompatible breaking change needing manual actions.
2.x to 3.x
From version 3.0.0, support for pod security policies was removed.
The minimum Kubernetes version required by the helm chart is 1.25.
Overview (`charts/prometheus-memcached-exporter/README.md`)
prometheus-memcached-exporter
Prometheus exporter for Memcached metrics.
This chart bootstraps a Memcached exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.25+
- Helm 3+
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-memcached-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-memcached-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-memcached-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-memcached-exporterFor more information please refer to the Memcached exporter documentation.
Overview (`charts/prometheus-modbus-exporter/README.md`)
prometheus-modbus-exporter
Prometheus exporter for scraping metrics via modbus based protocol.
Intro
This chart bootstraps a modbus_exporter deployment on a Kubernetes cluster using the Helm package manager.
The serviceMonitor objects are created for Prometheus Operator.
Configuration
The configuration of the modbus_exporter can be provided either via helm's custom values, or via an already existing (independently managed) configMap.
Either way, every time the configuration is getting updated, the modbus_exporter is getting restarted in order to fetch it. This is done using sidecar reloader: https://github.com/Pluies/config-reloader-sidecar.
Tests
This setup has been tested with both real unit (Janitza Power Analizer UMG series) as well as using an simulator https://www.modbustools.com/download.html.
Other simulators (fully free) exist as well:
- the one included as part of the test (fake server) in the https://github.com/RichiH/modbus_exporter/blob/main/tests/fake_server/main.go, which uses https://github.com/tbrandon/mbserver (Go).
- Many others, like pymodslave, based on py module: https://github.com/ljean/modbus-tk, which has its own demo simulator as well.
Notes
There are 4 types of read registries, hence 4 read function codes (1,2,3,4).
Don't forget to prefix (first digit) your registry with the required function.
Your address should be always 6 digits.
E.g. for holding registry 22, the address is: 300022 (where the 3 denotes the holding registry function).
More on Modbus function codes: https://ozeki.hu/p_5873-modbus-function-codes.html
Prerequisites
- Kubernetes 1.10+ with Beta APIs enabled
- Helm 3+
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-modbus-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-modbus-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-modbus-exporterSee [configuration](## Configuring) below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installConfiguring
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-modbus-exporterFor more information please refer to the modbus_exporter documentation.
Overview (`charts/prometheus-mongodb-exporter/README.md`)
Prometheus MongoDB Exporter
A Prometheus exporter for MongoDB metrics.
Installs the MongoDB Exporter for Prometheus. The
MongoDB Exporter collects and exports oplog, replica set, server status, sharding and storage engine metrics.
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-mongodb-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-mongodb-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-mongodb-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
Upgrading an existing Release to a new major version
A major chart version change (like v1.2.3 -> v2.0.0) indicates that there is an incompatible breaking change needing manual actions.
From 2.x to 3.x
This version uses the original percona/mongodb_exporter Docker image again, as described in the readme and Chart.yaml. It's maintained and it uses frequent Docker builds, so this is preferable for security reasons.
The commnad arguments of the exporter have changed. If you have custom extraArgs settings you have to adjust them. Because of the newer version of the exporter image metrics may varry though, so you might need to adjust your dashboard querries or try out the "--compatible-mode" parameter in extraArgs.
The mongodb.uri variable got "mongodb://monogdb:27017" as default parameter.
Chart API was raisded to v2, so Helm 2 is not supported anymore.
The servicemonitor has been disabled by default as prometheus operator might not be installed in cluster.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-mongodb-exporterMongoDB Server Connection
To use the chart, ensure the mongodb.uri is populated with a valid MongoDB URI or an existing secret (in the releases namespace) containing the key defined on existingSecret.key, with the URI is referred via existingSecret.name. If no secret key is defined, the default value is mongodb-uri.
If the MongoDB server requires authentication, credentials should be populated in the connection string as well. The MongoDB Exporter supports connecting to either a MongoDB replica set member, shard, or standalone instance.
Service Monitor
The chart comes with a ServiceMonitor for use with the Prometheus Operator. By default, the ServiceMonitor is disabled. You can enable the ServiceMonitor by setting serviceMonitor.enabled to true. For the ServiceMonitor to be detected by the Prometheus Operator, you must add the selector label to serviceMonitor.additionalLabels. You can find this label under spec.serviceMonitorSelector of the Prometheus CRD.
If you're not using the Prometheus Operator, you can instead populate the podAnnotations as below:
podAnnotations:
prometheus.io/scrape: "true"
prometheus.io/port: "metrics"Overview (`charts/prometheus-mysql-exporter/README.md`)
Prometheus MySQL Exporter
A Prometheus exporter for MySQL metrics.
This chart bootstraps a Prometheus MySQL Exporter deployment on a Kubernetes cluster using the Helm package manager.
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-mysql-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-mysql-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-mysql-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
See helm upgrade for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installMultiple-target probes
mysql_exporter now support multi-target probes using the /probe route. To enable this feature, set serviceMonitor.multipleTarget.enabled to true and define your targets in serviceMonitor.multipleTarget.targets.
Credentials for each target should be referenced either in targets section or in the associated config file.
As an example, for a config file with two targets:
serviceMonitor:
multipleTarget:
enabled: true
targets:
- endpoint: mysql1.dns.local
name: mysql1
port: 3307
user: user1
password: password1
- endpoint: mysql2.dns.local
name: mysql2
user: user2
password: password2In case of Config file Target name should match the entry in the config file.
Config file example for the above targets:
[client]
user=NOT_USED
password=NOT_USED
[client.mysql1]
user=user1
password=password1
[client.mysql2]
user=user2
password=password2The configuration file can be:
- referenced using
mysql.existingConfigSecret; - created automatically in case user and password are specified for the target.
If all your target use the same credentials, you can setserviceMonitor.sharedSecret.enabledtotrueand define the key name inserviceMonitor.sharedSecret.name.
From 1.x to 2.x
mysqld_exporter has been updated to v0.15.0, removing support for DATA_SOURCE_NAME. Configuration for exporter use --config.my-cnf with a custom cnf file (secret).
If you use mysql.existingSecret to set full DATA_SOURCE_NAME, please set mysql.existingConfigSecret.name & mysql.existingConfigSecret.key to reference the secret config.
mysql:
existingSecret: "my-data-source"to:
mysql:
existingConfigSecret:
name: "config"
key: "my.cnf"If you use mysql.param to extend DATA_SOURCE_NAME, please set mysql.additionalConfig with extra params to extend my.cnf file.
mysql:
param: "debug&connect-timeout=5"to:
mysql:
additionalConfig:
- connect-timeout=5
- debugThis version uses cloud-sql-proxy v2.
If you use cloudsqlproxy.ipAddressTypes to set private connections, please set cloudsqlproxy.privateIp.
cloudsqlproxy:
ipAddressTypes: PRIVATE,PUBLICto:
cloudsqlproxy:
privateIp: trueTo =< 1.0.0
Version 1.0.0 is a major update.
- The chart now follows the new Kubernetes label recommendations:
https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/
The simplest way to update is to do a force upgrade, which recreates the resources by doing a delete and an install.
helm upgrade prometheus-mysql-exporter prometheus-community/prometheus-mysql-exporter --forceConfiguration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-mysql-exporterMySQL Connection
The exporter can connect to MySQL directly or using the Cloud SQL Proxy.
- To configure direct MySQL connection by value, set
mysql.user,mysql.pass,mysql.hostandmysql.port(see additional options in themysqlconfiguration block) - To configure direct MySQL connection by secret, you must store a connection string in a secret, and set
mysql.existingSecretto[SECRET_NAME]
Exporter Documentation and Params
Documentation for the MySQL Exporter can be found here: (https://github.com/prometheus/mysqld_exporter)
A MySQL params overview can be found here: (https://github.com/go-sql-driver/mysql#dsn-data-source-name)
Collector Flags
Available collector flags can be found in the values.yaml and a description of each flag can be found in the mysqld_exporter repository.
CloudSql Proxy Workload Identity
Enable it with flag cloudsqlproxy.workloadIdentity
To more details about Workload Identity visit Use Workload Identity
Extra Manifests
This chart supports deploying extra Kubernetes manifests alongside the MySQL exporter. This can be useful for creating additional resources like ConfigMaps, Secrets, or other Kubernetes objects.
The extraManifests value supports two formats and is evaluated as a template, allowing you to use Helm template functions and access values like .Release.Name, .Release.Namespace, .Chart.Name, etc.
Object Format (Recommended)
Provides better IDE support, validation, and readability:
extraManifests:
- apiVersion: v1
kind: ConfigMap
metadata:
name: "{{ .Release.Name }}-extra-config"
namespace: "{{ .Release.Namespace }}"
labels:
app: "{{ .Chart.Name }}"
data:
extra-data: "value"
- apiVersion: v1
kind: Secret
metadata:
name: "{{ .Release.Name }}-extra-secret"
type: Opaque
stringData:
key: "secret-value"String Format (Alternative)
Uses YAML multiline strings with pipe |:
extraManifests:
- |
apiVersion: v1
kind: ConfigMap
metadata:
name: mysql-exporter-extra
data:
key: value
- |
apiVersion: v1
kind: Secret
metadata:
name: mysql-exporter-secret
type: Opaque
stringData:
password: "{{ .Values.mysql.pass }}"Both formats can be mixed in the same extraManifests array if needed.
Overview (`charts/prometheus-nats-exporter/README.md`)
Prometheus NATS Exporter
An Prometheus Exporter for NATS metrics.
This chart bootstraps a prometheus NATS Exporter deployment on a Kubernetes cluster using the Helm package manager.
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-nats-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-nats-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
# Helm 3
$ helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-nats-exporter
# Helm 2
$ helm install --name [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-nats-exporterSee helm install for command documentation.
Uninstall Chart
# Helm 3
$ helm uninstall [RELEASE_NAME]
# Helm 2
# helm delete --purge [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
# Helm 3 or 2
$ helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
Configuring
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
# Helm 2
$ helm inspect values oci://ghcr.io/prometheus-community/charts/prometheus-nats-exporter
# Helm 3
$ helm show values oci://ghcr.io/prometheus-community/charts/prometheus-nats-exporterOverview (`charts/prometheus-nginx-exporter/README.md`)
NGINX Prometheus Exporter
This chart bootstraps a NGINX Prometheus Exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.19+ with Beta APIs enabled
- Helm 3
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-nginx-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-nginx-exporter
The installation instructions use the OCI registry. Refer to the helm repo command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-nginx-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-nginx-exporter --installSee helm upgrade for command documentation.
To 1.0
Chart release 1.0 reflects a major bump of the default NGINX Exporter image tag from major number 0 to 1.
This release has switched to using flags in the new format (--flag) but still supports the
deprecated format (-flag) transparently for NGINX Exporter below release 1.0.0.
Configuring
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-nginx-exporterOverview (`charts/prometheus-node-exporter/README.md`)
Prometheus Node Exporter
Prometheus exporter for hardware and OS metrics exposed by *NIX kernels, written in Go with pluggable metric collectors.
This chart bootstraps a Prometheus Node Exporter daemonset on a Kubernetes cluster using the Helm package manager.
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-node-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-node-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-node-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-node-exporter --installSee helm upgrade for command documentation.
3.x to 4.x
Starting from version 4.0.0, the node exporter chart is using the Kubernetes recommended labels. Therefore you have to delete the daemonset before you upgrade.
kubectl delete daemonset -l app=prometheus-node-exporter
helm upgrade -i prometheus-node-exporter prometheus-community/prometheus-node-exporterIf you use your own custom ServiceMonitor or PodMonitor, please ensure to upgrade their selector fields accordingly to the new labels.
From 2.x to 3.x
Change the following:
hostRootFsMount: trueto:
hostRootFsMount:
enabled: true
mountPropagation: HostToContainerConfiguring
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-node-exporterkube-rbac-proxy
You can enable prometheus-node-exporter endpoint protection using kube-rbac-proxy. By setting kubeRBACProxy.enabled: true, this chart will deploy a RBAC proxy container protecting the node-exporter endpoint.
To authorize access, authenticate your requests (via a ServiceAccount for example) with a ClusterRole attached such as:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: prometheus-node-exporter-read
rules:
- apiGroups: [ "" ]
resources: ["services/node-exporter-prometheus-node-exporter"]
verbs:
- getSee kube-rbac-proxy examples for more details.
Overview (`charts/prometheus-operator-admission-webhook/README.md`)
Prometheus Operator Admission Webhook
The admission webhook service is able to
- Validate requests ensuring that PrometheusRule and AlertmanagerConfig objects are semantically valid
- Mutate requests enforcing that all annotations of PrometheusRule objects are coerced into string values
- Convert AlertmanagerConfig objects between v1alpha1 and v1beta1 versions
For more info, please, see the Prometheus Operator documentation.
Prerequisites
- Kubernetes 1.13+ with Beta APIs enabled
- Helm 3
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-operator-admission-webhook - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-operator-admission-webhook
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-operator-admission-webhookSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-operator-admission-webhook --installSee helm upgrade for command documentation.
Configuration
See Customizing the Chart Before Installing.
To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-operator-admission-webhookOverview (`charts/prometheus-operator-crds/README.md`)
Prometheus Operator CRDs
This chart brings Custom Resource Definitions (CRD) used by Prometheus Operator introducing the API group monitoring.coreos.com. The Prometheus Operator uses Kubernetes custom resources to simplify the deployment and configuration of Prometheus, Alertmanager and related monitoring components.
For more information on Prometheus Operator and CRDs, please, see documentation.
Prerequisites
- Kubernetes >= 1.16.0
- Helm 3
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-operator-crds - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-operator-crds
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-operator-crdsSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release
including resources of Kind Prometheus, Alertmanager, ServiceMonitor, etc.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
Upgrading to v6.0.0
The upgraded chart now the following changes:
annotationsvalue has moved tocrds.annotations
Configuring
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-operator-crdsOverview (`charts/prometheus-pgbouncer-exporter/README.md`)
Prometheus PgBouncer Exporter
Prometheus exporter for PgBouncer server metrics.
This chart bootstraps a prometheus pgbouncer exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.16+
- Helm 3+
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-pgbouncer-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-pgbouncer-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-pgbouncer-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-pgbouncer-exporter --installSee helm upgrade for command documentation.
Configuring
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-pgbouncer-exporterOverview (`charts/prometheus-pingdom-exporter/README.md`)
Prometheus Pingdom Exporter
The prometheus-pingdom-exporter processes Pingdom uptime check results for consumption by Prometheus.
Prerequisites
- Kubernetes 1.16+
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-pingdom-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-pingdom-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-pingdom-exporter_See [configuration](#configuration) below._See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
To version 3.0.0
The Docker image has been change too <ghcr.io/monotek/pingdom-exporter>.
The config uses pingdom.apiToken only which is used as env var.
The Docker port changed to 9158.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-pingdom-exporterOverview (`charts/prometheus-pingmesh-exporter/README.md`)
Prometheus Pingmesh Exporter
An Prometheus exporter that exposes information from ping message.
This chart creates a Pingmesh Exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.8+ with Beta APIs enabled
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-pingmesh-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-pingmesh-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-pingmesh-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
From 0.22.0 to 1.0.1
helm upgrade [RELEASE_NAME] prometheus-pingmesh-exporter --version 1.0.1Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
# Helm 2
$ helm inspect values oci://ghcr.io/prometheus-community/charts/prometheus-pingmesh-exporter
# Helm 3
$ helm show values oci://ghcr.io/prometheus-community/charts/prometheus-pingmesh-exporterSee kubeservice-stack/pingmesh-agent/README.md for further information.
pingmesh pinglist configuration
setting:
# the maximum amount of concurrent to ping, uint
concurrent_limit: 20
# interval to exec ping in seconds, float
interval: 60.0
# The maximum delay time to ping in milliseconds, float
delay: 200
# ping timeout in seconds, float
timeout: 2.0
# send ip addr
source_ip_addr: 0.0.0.0
# send ip protocal
ip_protocol: ip6
mesh:
add-ping-public:
name: ping-public-demo
type: OtherIP
ips :
- 127.0.0.1
- 8.8.8.8
- kubernetes.default.svc.cluster.localOverview (`charts/prometheus-postgres-exporter/README.md`)
Prometheus Postgres Exporter
Prometheus exporter for PostgreSQL server metrics.
This chart bootstraps a Prometheus Postgres exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.16+
- Helm 3+
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-postgres-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-postgres-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-postgres-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-postgres-exporter --installSee helm upgrade for command documentation.
To 8.0.0
The hardcoded fallback password previously baked into the generated Secret when config.datasource.password was unset has been removed. The chart now fails at render time if no password source is configured.
Before upgrading, set exactly one of the following:
config.datasource.password(templated withtpl)config.datasource.passwordFileconfig.datasource.passwordSecret(reference to an existingSecret)config.datasourceSecret(reference to an existingSecretproviding the full data source URI)
Releases that previously installed without a password were producing a Secret containing a known plaintext value and an exporter that could not authenticate; configuring one of the options above is required to upgrade.
To 7.0.0
Labels and selectors have been replaced following Helm 3 label and annotation best practices:
| Previous | Current |
|---|---|
| app | app.kubernetes.io/name |
| chart | helm.sh/chart |
| [none] | app.kubernetes.io/version |
| heritage | [none] |
| release | app.kubernetes.io/instance |
As the change is affecting immutable selector labels, the deployment must be deleted before upgrading the release, e.g.:
kubectl delete deploy -l app=prometheus-postgres-exporter --cascade=orphanOnce the resources have been deleted, you can upgrade the release:
helm upgrade -i RELEASE_NAME prometheus-community/prometheus-postgres-exporterTo 6.0.0
Image repository has been split into two values: the new image.registry value and the already existing image.repository value. No change is required when using the default for image.repository. If you have previously modified field image.repository, please, set the two fields accordingly.
To 5.0.0
Deprecated options auto-discover-databases, constantLabels, exclude-databases & include-databases has been removed.
Deprecated custom query config has been removed.
Deprecated PodSecurityPolicy and K8S beta API versions have been removed.
Chart.yaml appVersion field is used as default image tag.
Labels are templated now.
Add default securityContext and PodSecurityContext.
LivenessProbe timeout has been raised to 3.
To 4.6.0
This release adds functionality to template the variables inside config.datasource by means of allowing the tpl function in the resources that make use of it. This functionality is useful when you want to do sub-charting (e.g. in a postgres chart) and you want to avoid the duplication of variables inside config.datasource.
Compared to the previous release (4.5.0) the only thing that changed is the fact that you can no longer leave the config.datasource.host variable blank. Leaving it blank could cause errors with the tpl function. However, the default value was changed to '' so this error is not expected to happen.
To 4.0.0
This release removes the pg_database query from config.queries as it has been converted to a built-in collector
in postgres_exporter v0.11.0. Any customizations to the removed query are now rendered useless and thus should be removed.
To 3.0.0
This release introduces changes to accommodate Postgres 13 or newer versions by default.
Older Postgres instances have now to overwrite the pg_stat_statements query of config.queries with following
selection:
SELECT t2.rolname,
t3.datname,
queryid,
calls,
total_time / 1000 as total_time_seconds,
min_time / 1000 as min_time_seconds,
max_time / 1000 as max_time_seconds,
mean_time / 1000 as mean_time_seconds,
stddev_time / 1000 as stddev_time_seconds,
rows,
shared_blks_hit,
shared_blks_read,
shared_blks_dirtied,
shared_blks_written,
local_blks_hit,
local_blks_read,
local_blks_dirtied,
local_blks_written,
temp_blks_read,
temp_blks_written,
blk_read_time / 1000 as blk_read_time_seconds,
blk_write_time / 1000 as blk_write_time_seconds
FROM pg_stat_statements t1
JOIN pg_roles t2 ON (t1.userid = t2.oid)
JOIN pg_database t3 ON (t1.dbid = t3.oid)
WHERE t2.rolname != 'rdsadmin'
AND queryid IS NOT NULL `To 2.0.0
The primary change in 2.0.0 is the Chart API from v1 to v2. This now requires Helm3.
Backwards compatibility is not guaranteed unless you modify the labels used on the chart's deployments.
Use the workaround below to upgrade from versions previous to 2.0.0. The following example assumes that the release name
is prometheus-postgres-exporter:
kubectl patch deployment prometheus-postgres-exporter --type=json -p='[{"op": "remove", "path": "/spec/selector/matchLabels/chart"}]'Configuration
This chart can scrape metrics using either a ServiceMonitor (serviceMonitor.enabled) or a PodMonitor (podMonitor.enabled) for the Prometheus Operator. Use PodMonitor when scraping pods directly without going through the Kubernetes Service.
See Customizing the Chart Before Installing.
To see all configurable options with detailed comments, visit the chart's values.yaml, or run this command:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-postgres-exporterOverview (`charts/prometheus-pushgateway/README.md`)
Prometheus Pushgateway
This chart bootstraps a Prometheus Pushgateway deployment on a Kubernetes cluster using the Helm package manager.
An optional prometheus ServiceMonitor can be enabled, should you wish to use this gateway with Prometheus Operator.
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-pushgateway - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-pushgateway
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-pushgatewaySee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-pushgateway --installSee helm upgrade for command documentation.
To 3.0.0
Previously, as dynamic labels were also set on the statefulset's volume claim template, it was not possible
to upgrade a chart release in a usual manner whilst using a statefulset and persistence due to the volume claim template's fields being immutable.
This release removes the dynamic labels from the statefulset's volume claim template.
If you have configured a statefulset with persistent storage,
please, delete the statefulset before upgrading:
kubectl delete sts -l app.kubernetes.io/name=prometheus-pushgateway --cascade=orphanTo 2.0.0
Chart API version has been upgraded to v2 so Helm 3 is needed from now on.
Docker image tag is used from Chart.yaml appVersion field by default now.
Version 2.0.0 also adapted Helm label and annotation best practices. Specifically, labels mapping is listed below:
OLD => NEW
----------------------------------------
heritage => app.kubernetes.io/managed-by
chart => helm.sh/chart
[container version] => app.kubernetes.io/version
app => app.kubernetes.io/name
release => app.kubernetes.io/instanceTherefore, depending on the way you've configured the chart, the previous StatefulSet or Deployment need to be deleted before upgrade.
If runAsStatefulSet: false (this is the default):
kubectl delete deploy -l app=prometheus-pushgatewayIf runAsStatefulSet: true:
kubectl delete sts -l app=prometheus-pushgatewayAfter that do the actual upgrade:
helm upgrade -i prometheus-pushgateway prometheus-community/prometheus-pushgatewayConfiguration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-pushgatewayOverview (`charts/prometheus-rabbitmq-exporter/README.md`)
prometheus-rabbitmq-exporter
Prometheus Exporter for RabbitMQ metrics.
This chart bootstraps a RabbitMQ Exporter deployment on a Kubernetes cluster using the Helm package manager.
DEPRECATION WARNING
The exporter used in this chart is deprecated and will not receive further updates!
See: https://github.com/kbudde/rabbitmq_exporter/issues/383
Prerequisites
- Kubernetes 1.8+ with Beta APIs enabled
Get Repository Info
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo updateSee helm repo for command documentation.
Install Chart
# Helm 3
$ helm install [RELEASE_NAME] prometheus-community/prometheus-rabbitmq-exporter
# Helm 2
$ helm install --name [RELEASE_NAME] prometheus-community/prometheus-rabbitmq-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
# Helm 3
$ helm uninstall [RELEASE_NAME]
# Helm 2
# helm delete --purge [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
# Helm 3 or 2
$ helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
To 2.0.0
From 2.0.0 rabbit exporter is using the prometheus-rabbit-exporter image 1.0.0.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
# Helm 2
$ helm inspect values prometheus-community/prometheus-rabbitmq-exporter
# Helm 3
$ helm show values prometheus-community/prometheus-rabbitmq-exporterRabbitMQ Connection
- To configure RabbitMQ connection by value, set
rabbitmq.url,rabbitmq.userandrabbitmq.password(see additional options in therabbitmqconfiguration block) - To configure RabbitMQ password by secret, you must store the password string in a secret, and set
rabbitmq.existingPasswordSecretto[SECRET_NAME]
Overview (`charts/prometheus-redis-exporter/README.md`)
prometheus-redis-exporter
Prometheus exporter for Redis metrics.
This chart bootstraps a Redis exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.10+ with Beta APIs enabled
- Helm 3+
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-redis-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-redis-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-redis-exporterSee helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
To 5.0.0
From 5.0.0 redis exporter is using the Kubernetes recommended labels. Therefore you have to delete the deployment before you upgrade.
kubectl delete deployment -l app=prometheus-redis-exporter
helm upgrade -i prometheus-redis-exporter prometheus-community/prometheus-redis-exporterFrom 5.0.0 redis exporter helm chart supports multiple targets.
By enabling serviceMonitor.multipleTarget and settings the targets in serviceMonitor.targets, multiple redis instance can be scraped.
serviceMonitor:
enabled: true
multipleTarget: true
telemetryPath: /scrape
targets:
- url: redis://my-redis:6379
name: foo
- url: redis://my-redis-cluster:6379
name: bar
additionalRelabeling:
- sourceLabels: [type]
targetLabel: type
replacement: clusterTo 3.0.1
The default tag for the exporter image is now v1.x.x. This major release includes changes to the names of various metrics and no longer directly supports the configuration (and scraping) of multiple redis instances; that is now the Prometheus server's responsibility. You'll want to use this dashboard now. Please see the redis_exporter GitHub page for more details.
Configuring
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-redis-exporterFor more information please refer to the redis_exporter documentation.
Redis Connection
- To configure Redis connection by value set
redisAddressstring (example format:redis://myredis:6379) - To configure Redis connection by configmap set
redisAddressConfig.enabledtotrue, setredisAddressConfig.configmap.nameandredisAddressConfig.configmap.keyvalues - To configure auth by value, set
auth.enabledtotrue, andauth.redisPasswordvalue - To configure auth by secret, set
auth.secret.nameandauth.secret.keyvalues
Using a custom LUA-Script
First, you need to deploy the script with a configmap. This is an example script from mentioned in the redis_exporter-image repository
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-redis-exporter-script
data:
script: |-
-- Example collect script for -script option
-- This returns a Lua table with alternating keys and values.
-- Both keys and values must be strings, similar to a HGETALL result.
-- More info about Redis Lua scripting: https://redis.io/commands/eval
local result = {}
-- Add all keys and values from some hash in db 5
redis.call("SELECT", 5)
local r = redis.call("HGETALL", "some-hash-with-stats")
if r ~= nil then
for _,v in ipairs(r) do
table.insert(result, v) -- alternating keys and values
end
end
-- Set foo to 42
table.insert(result, "foo")
table.insert(result, "42") -- note the string, use tostring() if needed
return resultIf you want to use this script for collecting metrics, you could do this by just set script.configmap to the name of the configmap (e.g. prometheus-redis-exporter-script) and script.keyname to the configmap-key holding the script (eg. script). The required variables inside the container will be set automatically.
Overview (`charts/prometheus-smartctl-exporter/README.md`)
Prometheus smartctl Exporter
Prometheus smartctl Exporter makes smartctl statistics available to Prometheus for scraping.
For more information on the exporter, please see the project's repository.
Prerequisites
- Kubernetes 1.13+ with Beta APIs enabled
- Helm 3
- smartmontools 7.0+
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-smartctl-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-smartctl-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-smartctl-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-smartctl-exporter --installSee helm upgrade for command documentation.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-smartctl-exporterOverview (`charts/prometheus-snmp-exporter/README.md`)
Prometheus SNMP Exporter
An Prometheus exporter that exposes information gathered from SNMP.
This chart creates a SNMP Exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.8+ with Beta APIs enabled
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-snmp-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-snmp-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-snmp-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
Upgrading an existing Release to a new major version
A major chart version change (like v1.2.3 -> v2.0.0) indicates that there is an incompatible breaking change needing manual actions.
To 1.0.0
This version allows multiple Targets to be specified when using ServiceMonitor. When you use ServiceMonitor, please rewrite below:
serviceMonitor:
enabled: true
params:
enabled: true
conf:
module:
- if_mib
target:
- 127.0.0.1to this:
serviceMonitor:
enabled: true
params:
- module:
- if_mib
name: device1
target: 127.0.0.1To 2.0.0
This version changes the serviceMonitor.namespace value from monitoring to the namespace the release is deployed to.
To 3.0.0
This version upgrades snmp-exporter version to 0.24.1, which introduces breaking change to configuration format.
See Module and Auth Split Migration for more details.
To 4.0.0
This version contain major changes & The configmap-reload container was replaced by the prometheus-config-reloader.
To 5.0.0
This version changes the default image repository from using DockerHub to Quay.
To 6.0.0
This version changes the default health check path from /health to /
To 7.0.0
This version changes the sysUpTime metric by removing from the if_mib module and including it as part of the new system module, along with other useful system related metrics.
Update your scrape definitions to include the system module if you need sysUpTime.
To 8.0.0
This version changes the additional metrics values to always be a string.
To 9.0.0
This version adds ability to enable config-reloader on demand, also to specify custom --watched-dir and ability to mount snmp-exporter pods extraVolumeMounts for consistency of mounted configs.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
# Helm 2
$ helm inspect values oci://ghcr.io/prometheus-community/charts/prometheus-snmp-exporter
# Helm 3
$ helm show values oci://ghcr.io/prometheus-community/charts/prometheus-snmp-exporterSee prometheus/snmp_exporter/README.md for further information.
Prometheus Configuration
The snmp exporter needs to be passed the address as a parameter, this can be done with relabelling.
Example config:
scrape_configs:
- job_name: 'snmp'
static_configs:
- targets:
- 192.168.1.2 # SNMP device.
metrics_path: /snmp
params:
module: [if_mib]
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: my-service-name:9116 # The SNMP exporter's Service name and port.Example configuration via a ServiceMonitor
serviceMonitor:
enabled: true
relabelings:
- sourceLabels: [__param_target]
targetLabel: instance
params:
- module:
- fortigate_snmp
name: device1
target: 192.168.1.2 # SNMP deviceOverview (`charts/prometheus-sql-exporter/README.md`)
Prometheus SQL Exporter
Prometheus exporter for SQL testing
Learn more: https://github.com/justwatchcom/sql_exporter
This chart creates a SQL-Exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.27+
- Helm >= 3.0
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-sql-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-sql-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-sql-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-sql-exporterOverview (`charts/prometheus-stackdriver-exporter/README.md`)
Stackdriver Exporter
Prometheus exporter for Stackdriver, allowing for Google Cloud metrics.
You must have appropriate IAM permissions for this exporter to work.
If you are passing in an IAM key then you must have:
- monitoring.metricDescriptors.list
- monitoring.timeSeries.list
These are contained within roles/monitoring.viewer.
If you're using legacy access scopes, then you must have https://www.googleapis.com/auth/monitoring.read.
Learn more: https://github.com/prometheus-community/stackdriver_exporter
This chart creates a Stackdriver-Exporter deployment on a
Kubernetes cluster using the Helm
package manager.
Prerequisites
- Kubernetes 1.8+ with Beta APIs enabled
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-stackdriver-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-stackdriver-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
# Helm 3
$ helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-stackdriver-exporter --set 'stackdriver.projectIds[0]=google-project-name'
# Helm 2
$ helm install --name [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-stackdriver-exporter --set 'stackdriver.projectIds[0]=google-project-name'The command deploys Stackdriver-Exporter on the Kubernetes cluster using the default configuration.
See configuration below.
See helm install for command documentation.
Uninstall Chart
# Helm 3
$ helm uninstall [RELEASE_NAME]
# Helm 2
# helm delete --purge [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
# Helm 3 or 2
$ helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
Upgrading an existing Release to a new major version
A major chart version change (like v1.2.3 -> v2.0.0) indicates that there is an incompatible breaking change needing manual actions.
4.x to 5.x
The deprecated stackdriver.projectId andstackdriver.metrics.typePrefixes parameters have been removed.
Replace:
stackdriver:
projectId: my-project
metrics:
typePrefixes: compute.googleapis.com/instance/cpuwith:
stackdriver:
projectIds:
- my-project
metrics:
prefixes:
- compute.googleapis.com/instance/cpu3.x to 4.x
The Helm parameter stackdriver.metrics.filters is changed to support multiple values instead of a single value. If you are using this parameter, please adjust.
stackdriver:
metrics:
filters:
- filter-1
- filter-22.x to 3.x
Due to a change in deployment labels, removal of its deployment needs to done manually prior to upgrading:
kubectl delete deployments.apps -l app=prometheus-stackdriver-exporter --cascade=orphanIf this is not done, when upgrading via helm (even with helm upgrade --force) an error will occur indicating that the deployment cannot be modified:
invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app.kubernetes.io/instance":"example", "app.kubernetes.io/name":"prometheus-stackdriver-exporter"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutableSince chart version 3.x, Kubernetes recommended labels have been added.
The following labels are now removed in all manifests (including labels used as selector for Deployment kind):
...
metadata:
labels:
app: prometheus-stackdriver-exporter
chart: prometheus-stackdriver-exporter-2.X.X
heritage: Helm
release: example
...
spec:
...
selector:
matchLabels:
app: prometheus-stackdriver-exporter
release: example
...If you use your own custom ServiceMonitor or PodMonitor, please ensure to upgrade their selector fields accordingly to the new labels.
1.x to 2.x
Since chart version 2.0.0, the exporter is configured via flags/arguments instead of environment variables due to a breaking change in the exporter.
If you already use .Values.extraArgs you might want to check for conflicting command arguments.
Configuration
See Customizing the Chart Before Installing.
To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
# Helm 2
$ helm inspect values oci://ghcr.io/prometheus-community/charts/prometheus-stackdriver-exporter
# Helm 3
$ helm show values oci://ghcr.io/prometheus-community/charts/prometheus-stackdriver-exporterTip: You can use the default values.yaml, as long as you provide a value for stackdriver.projectIds.
Namespace Override
Set namespaceOverride to deploy chart resources into a namespace different from the Helm release namespace.
Google Storage Metrics
In order to get metrics for GCS you need to ensure the metrics interval is >
24h. You can read more information about this in this bug
report.
The easiest way to do this is to create two separate exporters with different
prefixes and intervals, to ensure you gather all appropriate metrics.
Overview (`charts/prometheus-statsd-exporter/README.md`)
prometheus-statsd-exporter
Prometheus Exporter for Statsd metrics.
This chart bootstraps a Statsd Exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.19+ with Beta APIs enabled
- Helm 3+
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-statsd-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-statsd-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-statsd-exporterSee helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
Configuring
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-statsd-exporterStatsd Exporter Server
- Use early created ConfigMap with file
statsd.mappingConfcontained in data or specify mapping values instatsd.mappingConfig
Upgrading an existing Release to a new major version
A major chart version change (like v1.2.3 -> v2.0.0) indicates that there is an incompatible breaking change needing manual actions.
0.x to 1.x
Support for Kubernetes versions older then 1.19 has been removed.
Overview (`charts/prometheus-systemd-exporter/README.md`)
Prometheus Systemd Exporter
Prometheus exporter for systemd units, written in Go.
This chart bootstraps a prometheus systemd exporter deployment on a Kubernetes cluster using the Helm package manager.
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-systemd-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-systemd-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-systemd-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Configuring
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-systemd-exporterExported Systemd units
Default values generate metrics for kubelet.service and docker.service systemd units.
Units to generate metrics for are configurable by means of config.systemd.collector.unitInclude.
To generate metrics for all units override default values with:
config:
systemd:
collector:
unitInclude:
- '.+'Overview (`charts/prometheus-to-sd/README.md`)
prometheus-to-sd
prometheus-to-sd is a simple component that can scrape metrics stored in prometheus text format from one or multiple components and push them to the Stackdriver
Prerequisites
- a service exposing metrics in prometheus format
- k8s cluster should run on GCE or GKE
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-to-sd - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-to-sd
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-to-sdSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Upgrading Chart
helm upgrade [RELEASE_NAME] [CHART] --installSee helm upgrade for command documentation.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-to-sdFor more information please refer to the prometheus-to-sd documentation.
Metrics Sources
Multiple metrics sources can be defined. To configure, set metricsSources value (example: http://kube-state-metrics:8080)
Overview (`charts/prometheus-windows-exporter/README.md`)
Prometheus `Windows Exporter`
Prometheus exporter for hardware and OS metrics exposed by Windows kernels, written in Go with pluggable metric collectors.
This chart bootstraps a prometheus Windows Exporter daemonset on a Kubernetes cluster using the Helm package manager.
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-windows-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-windows-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-windows-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Configuring
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-windows-exporterOverview (`charts/prometheus-yet-another-cloudwatch-exporter/README.md`)
yet-another-cloudwatch-exporter
YACE, or yet another cloudwatch exporter, is a Prometheus exporter for AWS CloudWatch metrics.
This chart bootstraps a YACE deployment on a Kubernetes cluster using the Helm package manager.
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus-yet-another-cloudwatch-exporter - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus-yet-another-cloudwatch-exporter
The installation instructions use the OCI registry. Refer to the [helm repo](helm repo) command documentation for information on installing charts via the traditional repository.
Install Chart
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus-yet-another-cloudwatch-exporterSee configuration below.
See helm install for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
See helm upgrade for command documentation.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheus-yet-another-cloudwatch-exporterMigrate from nerdswords/helm-charts (before version 0.39.0)
If you are migrate from the nerdswords/helm-charts repository, you must consider the following changes:
- the chart name has changed from
yet-another-cloudwatch-exportertoprometheus-yet-another-cloudwatch-exporter. - to avoid conflicts with the new chart name, you can set the
nameOverridevalue toyet-another-cloudwatch-exporterin yourvalues.yamlfile.
Overview (`charts/prometheus/README.md`)
Prometheus
Prometheus, a Cloud Native Computing Foundation project, is a systems and service monitoring system. It collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts if some condition is observed to be true.
This chart bootstraps a Prometheus deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.19+
- Helm 3.7+
Usage
The chart is distributed as an OCI Artifact as well as via a traditional Helm Repository.
- OCI Artifact:
oci://ghcr.io/prometheus-community/charts/prometheus - Helm Repository:
https://prometheus-community.github.io/helm-chartswith chartprometheus
The installation instructions use the OCI registry. Refer to the helm repo command documentation for information on installing charts via the traditional repository.
Install Chart
Starting with version 16.0, the Prometheus chart requires Helm 3.7+ in order to install successfully. Please check your helm release before installation.
helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheusSee configuration below.
See helm install for command documentation.
Dependencies
By default this chart installs additional, dependent charts:
To disable the dependency during installation, set alertmanager.enabled, kube-state-metrics.enabled, prometheus-node-exporter.enabled and prometheus-pushgateway.enabled to false.
See helm dependency for command documentation.
Uninstall Chart
helm uninstall [RELEASE_NAME]This removes all the Kubernetes components associated with the chart and deletes the release.
See helm uninstall for command documentation.
Updating values.schema.json
A values.schema.json file has been added to validate chart values. When values.yaml file has a structure change (i.e. add a new field, change value type, etc.), modify values.schema.json file manually or run helm schema-gen values.yaml > values.schema.json to ensure the schema is aligned with the latest values. Refer to helm plugin helm-schema-gen for plugin installation instructions.
Upgrading Chart
helm upgrade [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prometheus --installSee helm upgrade for command documentation.
To 29.0
Starting with version 29.0, the default kubernetes_sd_configs roles for several scrape configurations have been migrated from endpoints to endpointslice due to the deprecation of the former in Kubernetes release 1.33.
Affected scrape configurations in scrapeConfigs:
kubernetes-api-serverskubernetes-service-endpointskubernetes-service-endpoints-slow
Users who currently apply custom relabelings with the endpoints labels should adjust their configuration for the endpointslice labels before upgrading.
To 28.0
Scrape configs previously defined in field serverFiles."prometheus.yml".scrape_configs
(array) have been moved in the new field scrapeConfigs (map). The contents of the scrape configs have not changed.
Each scrape config can be disabled by setting enabled to false, each key becomes the
default value of job_name. Further scrape configs can be inserted as new keys whereby these get enabled by default. A scrape config expects native Prometheus' configuration.
Field extraScrapeConfigs can still be used for additional scrape configs and is not affected by the change.
Using the new field is not mandatory, serverFiles."prometheus.yml".scrape_configs works in the same way
as before but is unset by default. Users wishing to continue using this field via a custom values file should unsetscrapeConfigs before upgrading:
scrapeConfigs: nullSimilarly, users who wish to make use of the new field but have modified the previous default scrape configs should
transfer the modifications in scrapeConfigs and remove the previous scrape configs.
Some examples:
- Skip certificate verification for API servers (default is not to skip the verification)
scrapeConfigs:
kubernetes-api-servers:
tls_config:
insecure_skip_verify: true- Add basic auth in the default scrape config for prometheus
scrapeConfigs:
prometheus:
basic_auth:
username: "admin"
password_file: /etc/private/auth-passwd- Disable scrape config kubernetes-pods-slow
scrapeConfigs:
kubernetes-pods-slow:
enabled: false- Add a new scrape config with
job_nameset to foo (gets enabled by default)
scrapeConfigs:
foo:
honor_labels: true
kubernetes_sd_configs:
- role: service
relabel_configs:
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_probe]
action: keep
regex: trueTo 27.0
Prometheus' configuration parameter insecure_skip_verify in scrape configs serverFiles."prometheus.yml".scrape_configs has been commented out keeping thus the default Prometheus' value.
If certificate verification must be skipped, please, set the configuration parameter in your scrape configs.
To 26.0
This release changes default version of prometheus to v3.0.0, See official
migration guide and release notes for more details.
To 25.0
The server.remoteRead[].url and server.remoteWrite[].url fields now support templating. Allowing for url values such as https://{{ .Release.Name }}.example.com.
Any entries in these which previously included {{ or }} must be escaped with {{ "{{" }} and {{ "}}" }} respectively. Entries which did not previously include the template-like syntax will not be affected.
To 24.0
Require Kubernetes 1.19+
Release 1.0.0 of the alertmanager replaced configmap-reload with prometheus-config-reloader.
Extra command-line arguments specified via configmapReload.prometheus.extraArgs are not compatible and will break with the new prometheus-config-reloader. Please, refer to the sources in order to make the appropriate adjustment to the extra command-line arguments.
To 23.0
Release 5.0.0 of the kube-state-metrics chart introduced a separation of the image.repository value in two distinct values:
image:
registry: registry.k8s.io
repository: kube-state-metrics/kube-state-metricsIf a custom values file or CLI flags set kube-state.metrics.image.repository, please, set the new values accordingly.
If you are upgrading prometheus-pushgateway with the chart and prometheus-pushgateway has been deployed as a statefulset with a persistent volume, the statefulset must be deleted before upgrading the chart, e.g.:
kubectl delete sts -l app.kubernetes.io/name=prometheus-pushgateway -n monitoring --cascade=orphanUsers are advised to review changes in the corresponding chart releases before upgrading.
To 22.0
The app.kubernetes.io/version label has been removed from the pod selector.
Therefore, you must delete the previous StatefulSet or Deployment before upgrading. Performing this operation will cause Prometheus to stop functioning until the upgrade is complete.
kubectl delete deploy,sts -l app.kubernetes.io/name=prometheusTo 21.0
The Kubernetes labels have been updated to follow Helm 3 label and annotation best practices.
Specifically, labels mapping is listed below:
| OLD | NEW |
|---|---|
| heritage | app.kubernetes.io/managed-by |
| chart | helm.sh/chart |
| [container version] | app.kubernetes.io/version |
| app | app.kubernetes.io/name |
| release | app.kubernetes.io/instance |
Therefore, depending on the way you've configured the chart, the previous StatefulSet or Deployment need to be deleted before upgrade.
If runAsStatefulSet: false (this is the default):
kubectl delete deploy -l app=prometheusIf runAsStatefulSet: true:
kubectl delete sts -l app=prometheusAfter that do the actual upgrade:
helm upgrade -i prometheus prometheus-community/prometheusTo 20.0
The configmap-reload container was replaced by the prometheus-config-reloader.
Extra command-line arguments specified via configmapReload.prometheus.extraArgs are not compatible and will break with the new prometheus-config-reloader, refer to the sources in order to make the appropriate adjustment to the extra command-line arguments.
To 19.0
Prometheus has been updated to version v2.40.5.
Prometheus-pushgateway was updated to version 2.0.0 which adapted Helm label and annotation best practices.
See the upgrade docs of the prometheus-pushgateway chart to see what's to do, before you upgrade Prometheus!
The condition in Chart.yaml to disable kube-state-metrics has been changed from kubeStateMetrics.enabled to kube-state-metrics.enabled
The Docker image tag is used from appVersion field in Chart.yaml by default.
Unused subchart configs has been removed and subchart config is now on the bottom of the config file.
If Prometheus is used as deployment the updatestrategy has been changed to "Recreate" by default, so Helm updates work out of the box.
.Values.server.extraTemplates & .Values.server.extraObjects has been removed in favour of .Values.extraManifests, which can do the same.
.Values.server.enabled has been removed as it's useless now that all components are created by subcharts.
All files in templates/server directory has been moved to templates directory.
helm upgrade [RELEASE_NAME] prometheus-community/prometheus --version 19.0.0To 18.0
Version 18.0.0 uses alertmanager service from the alertmanager chart. If you've made some config changes, please check the old alertmanager and the new alertmanager configuration section in values.yaml for differences.
Note that the configmapReload section for alertmanager was moved out of dedicated section (configmapReload.alertmanager) to alertmanager embedded (alertmanager.configmapReload).
Before you update, please scale down the prometheus-server deployment to 0 then perform upgrade:
# In 17.x
kubectl scale deploy prometheus-server --replicas=0
# Upgrade
helm upgrade [RELEASE_NAME] prometheus-community/prometheus --version 18.0.0To 17.0
Version 17.0.0 uses pushgateway service from the prometheus-pushgateway chart. If you've made some config changes, please check the old pushgateway and the new prometheus-pushgateway configuration section in values.yaml for differences.
Before you update, please scale down the prometheus-server deployment to 0 then perform upgrade:
# In 16.x
kubectl scale deploy prometheus-server --replicas=0
# Upgrade
helm upgrade [RELEASE_NAME] prometheus-community/prometheus --version 17.0.0To 16.0
Starting from version 16.0 embedded services (like alertmanager, node-exporter etc.) are moved out of Prometheus chart and the respecting charts from this repository are used as dependencies. Version 16.0.0 moves node-exporter service to prometheus-node-exporter chart. If you've made some config changes, please check the old nodeExporter and the new prometheus-node-exporter configuration section in values.yaml for differences.
Before you update, please scale down the prometheus-server deployment to 0 then perform upgrade:
# In 15.x
kubectl scale deploy prometheus-server --replicas=0
# Upgrade
helm upgrade [RELEASE_NAME] prometheus-community/prometheus --version 16.0.0To 15.0
Version 15.0.0 changes the relabeling config, aligning it with the Prometheus community conventions. If you've made manual changes to the relabeling config, you have to adapt your changes.
Before you update please execute the following command, to be able to update kube-state-metrics:
kubectl delete deployments.apps -l app.kubernetes.io/instance=prometheus,app.kubernetes.io/name=kube-state-metrics --cascade=orphanTo 9.0
Version 9.0 adds a new option to enable or disable the Prometheus Server. This supports the use case of running a Prometheus server in one k8s cluster and scraping exporters in another cluster while using the same chart for each deployment. To install the server server.enabled must be set to true.
To 5.0
As of version 5.0, this chart uses Prometheus 2.x. This version of prometheus introduces a new data format and is not compatible with prometheus 1.x. It is recommended to install this as a new release, as updating existing releases will not work. See the prometheus docs for instructions on retaining your old data.
Prometheus version 2.x has made changes to alertmanager, storage and recording rules. Check out the 2.x migration guide.
Users of this chart will need to update their alerting rules to the new format before they can upgrade.
Example Migration
Assuming you have an existing release of the prometheus chart, named prometheus-old. In order to update to prometheus 2.x while keeping your old data do the following:
- Update the
prometheus-oldrelease. Disable scraping on every component besides the prometheus server, similar to the configuration below:
alertmanager:
enabled: false
alertmanagerFiles:
alertmanager.yml: ""
kubeStateMetrics:
enabled: false
nodeExporter:
enabled: false
pushgateway:
enabled: false
server:
extraArgs:
storage.local.retention: 720h
serverFiles:
alerts: ""
prometheus.yml: ""
rules: ""Deploy a new release of the chart with version 5.0+ using prometheus 2.x. In the values.yaml set the scrape config as usual, and also add the
prometheus-oldinstance as a remote-read target.yamlprometheus.yml: ... remote_read: - url: http://prometheus-old/api/v1/read ...Old data will be available when you query the new prometheus instance.
Configuration
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
helm show values oci://ghcr.io/prometheus-community/charts/prometheusYou may similarly use the above configuration commands on each chart dependency to see its configurations.
Scraping Pod Metrics via Annotations
This chart uses a default configuration that causes prometheus to scrape a variety of kubernetes resource types, provided they have the correct annotations. In this section we describe how to configure pods to be scraped; for information on how other resource types can be scraped you can do a helm template to get the kubernetes resource definitions, and then reference the prometheus configuration in the ConfigMap against the prometheus documentation for relabel_config and kubernetes_sd_config.
In order to get prometheus to scrape pods, you must add annotations to the pods as below:
metadata:
annotations:
prometheus.io/scrape: "true"
prometheus.io/path: /metrics
prometheus.io/port: "8080"You should adjust prometheus.io/path based on the URL that your pod serves metrics from. prometheus.io/port should be set to the port that your pod serves metrics from. Note that the values for prometheus.io/scrape and prometheus.io/port must be enclosed in double quotes.
Sharing Alerts Between Services
Note that when installing or upgrading you may use multiple values override files. This is particularly useful when you have alerts belonging to multiple services in the cluster. For example,
# values.yaml
# ...
# service1-alert.yaml
serverFiles:
alerts:
service1:
- alert: anAlert
# ...
# service2-alert.yaml
serverFiles:
alerts:
service2:
- alert: anAlert
# ...helm install [RELEASE_NAME] oci://ghcr.io/prometheus-community/charts/prom-label-proxy -f values.yaml -f service1-alert.yaml -f service2-alert.yamlRBAC Configuration
Roles and RoleBindings resources will be created automatically for server service.
To manually setup RBAC you need to set the parameter rbac.create=false and specify the service account to be used for each service by setting the parameters: serviceAccounts.{{ component }}.create to false and serviceAccounts.{{ component }}.name to the name of a pre-existing service account.
Tip: You can refer to the default
*-clusterrole.yamland*-clusterrolebinding.yamlfiles in templates to customize your own.
ConfigMap Files
AlertManager is configured through alertmanager.yml. This file (and any others listed in alertmanagerFiles) will be mounted into the alertmanager pod.
Prometheus is configured through prometheus.yml. This file (and any others listed in serverFiles) will be mounted into the server pod.
Ingress TLS
If your cluster allows automatic creation/retrieval of TLS certificates (e.g. cert-manager), please refer to the documentation for that mechanism.
To manually configure TLS, first create/retrieve a key & certificate pair for the address(es) you wish to protect. Then create a TLS secret in the namespace:
kubectl create secret tls prometheus-server-tls --cert=path/to/tls.cert --key=path/to/tls.keyInclude the secret's name, along with the desired hostnames, in the alertmanager/server Ingress TLS section of your custom values.yaml file:
server:
ingress:
## If true, Prometheus server Ingress will be created
##
enabled: true
## Prometheus server Ingress hostnames
## Must be provided if Ingress is enabled
##
hosts:
- prometheus.domain.com
## Prometheus server Ingress TLS configuration
## Secrets must be manually created in the namespace
##
tls:
- secretName: prometheus-server-tls
hosts:
- prometheus.domain.comNetworkPolicy
Enabling Network Policy for Prometheus will secure connections to Alert Manager and Kube State Metrics by only accepting connections from Prometheus Server. All inbound connections to Prometheus Server are still allowed.
To enable network policy for Prometheus, install a networking plugin that implements the Kubernetes NetworkPolicy spec, and set networkPolicy.enabled to true.
If NetworkPolicy is enabled for Prometheus' scrape targets, you may also need to manually create a networkpolicy which allows it.
Overview (`charts/kube-prometheus-stack/hack/README.md`)
kube-prometheus-stack hacks
[update_mixins.sh](update_mixins.sh)
This script is a useful wrapper to run sync_prometheus_rules.py andsync_grafana_dashboards.py.
It clones all dependency dashboards into a tmp folder.
And it lets you know if you are missing commandline-tools necessary for the
update to complete.
Therefore, if you want to create a PR that updates the mixins, please
run ./hack/update_mixins.sh from the charts directory
(./charts/kube-prometheus-stack).
[sync_prometheus_rules.py](sync_prometheus_rules.py)
This script generates prometheus rules set for alertmanager from any properly formatted kubernetes YAML based on defined input, splitting rules to separate files based on group name.
Currently following imported:
- prometheus-operator/kube-prometheus rules set
In order to modify these rules:
- prepare and merge PR into kubernetes-mixin master and/or release branch
- run import inside your fork of prometheus-operator/kube-prometheus
bashjb update make generate- prepare and merge PR with imported changes into
prometheus-operator/kube-prometheusmaster and/or release branch - run sync_prometheus_rules.py inside your fork of this repository
- send PR with changes to this repository
- etcd-io/etcd rules set.
- In order to modify these rules:
- prepare and merge PR into etcd-io/etcd repository
- run sync_prometheus_rules.py inside your fork of this repository
- send PR with changes to this repository
- In order to modify these rules:
[sync_grafana_dashboards.py](sync_grafana_dashboards.py)
This script generates grafana dashboards from json files, splitting them to separate files based on group name.
Currently following imported:
prometheus-operator/kube-prometheus dashboards
In order to modify these dashboards:
- prepare and merge PR into kubernetes-mixin master and/or release branch
- run import inside your fork of prometheus-operator/kube-prometheus
bashjb update make generate- prepare and merge PR with imported changes into
prometheus-operator/kube-prometheusmaster and/or release branch - run sync_grafana_dashboards.py inside your fork of this repository
- send PR with changes to this repository
-
- In order to modify this dashboard:
- prepare and merge PR into etcd-io/etcd repository
- run sync_grafana_dashboards.py inside your fork of this repository
- send PR with changes to this repository
- In order to modify this dashboard:
CoreDNS dashboard is the only dashboard which is maintained in this repository and can be changed without import.
Overview (`charts/kube-prometheus-stack/charts/crds/README.md`)
crds subchart
See: https://github.com/prometheus-community/helm-charts/issues/3548
Overview (`charts/kube-prometheus-stack/hack/minikube/README.md`)
Testing on Minikube
The configuration in this folder lets you locally test the setup on minikube. Use cmd.sh to set up components and hack a working etcd scrape configuration. Run the commands in the sequence listed in the script to get a local working minikube cluster.
If you're using windows, there's a commented-out section that you should add to the minikube command.
--- METRICS ---
- Files Extracted: 49
- Estimated Token Budget: ~51323 tokens
- Canonical Reference: https://codewiki.google/github.com/prometheus-community/helm-charts