1# Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
7# http://www.apache.org/licenses/LICENSE-2.0
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
16 repository: cgr.dev/chainguard-private/dcgm-exporter
17 pullPolicy: IfNotPresent
18 # Image tag defaults to AppVersion, but you can use the tag key
19 # for the image tag, e.g:
20 tag: 4.8.4-r4@sha256:6287b9f11a08ca3ca96967942147966b9a1f37726b268c798f7388065e8596da
21 # Optional digest pin. When set, the chart renders repository@digest and
22 # ignores tag for the image reference.
24# Add dcgm-exporter command line arguments here. When empty, the exporter uses
25# its built-in default collectors path.
27# NOTE: in general, add any command line arguments to arguments above and they
28# will be passed through.
29# Use "-r", "<HOST>:<PORT>" or a DCGM connection string to connect to an already running DCGM host engine.
30# Connection string formats: "tcp://<HOST>:<PORT>", "unix:///<SOCKET_PATH>", or "vsock://<CID>:<PORT>".
31# Example arguments: ["-r", "host123:5555"]
32# Example VSOCK arguments: ["-r", "vsock://3:5555"]
33# Use "-n" to remove the hostname tag from the output.
34# Example arguments: ["-n"]
35# Use "-d" to specify the devices to monitor. -d must be followed by a string
36# in the following format: f, g[:numeric_range], i[:numeric_range], or
37# g[:numeric_range]+i[:numeric_range]. i+g ordering is also accepted.
38# The flex option f is the default and cannot be combined with g or i.
39# Where a numeric range is something like 0-4 or 0,2,4, etc.
40# Example arguments: ["-d", "f"] to monitor all GPUs or GPU instances, or
41# ["-d", "g:0-3"] to monitor GPUs 0-3, or ["-d", "i"] to monitor GPU instances.
42# Use "-m" to specify the namespace and name of a configmap containing
43# the watched exporter fields.
44# Example arguments: ["-m", "default:exporter-metrics-config-map"]
45# If adding "--enable-pprof", also enable tlsServerConfig and/or basicAuth.
46# Pprof requires a web config file so /debug/pprof/ is protected by
47# exporter-toolkit authentication or TLS.
49# Optional dcgm-exporter YAML configuration. YAML is read at exporter startup.
50# Changes to the YAML file require restarting the exporter pod.
53 # When true, the chart creates a ConfigMap from config.data. When false,
54 # config.name must reference an existing ConfigMap.
56 # Defaults to "<release-name>-dcgm-exporter-config" when empty.
59 mountPath: /etc/dcgm-exporter/config.yaml
62 # Detached-GPU support requires DCGM 4.5+ and an NVIDIA 590+ driver.
69 file: /etc/dcgm-exporter/default-counters.csv
70 enableExporterMetrics: false
76# Image pull secrets for container images
78# Overrides the chart's name
80# Overrides the chart's computed fullname
82# Overrides the deployment namespace
84# hostPID allows the DCGM-Exporter container to see processes on the host node
87# Defines the runtime class that will be used by the pod
89# Defines the priority class that will be used by the pod
90priorityClassName: "system-node-critical"
91# Enable or disable host network
93# Defines serviceAccount names for components.
95 # Specifies whether a service account should be created
97 # Annotations to add to the service account
99 # The name of the service account to use.
100 # If not set and create is true, a name is generated using the fullname template
102 # Whether to mount the SA token on the DaemonSet pod and the ServiceAccount.
103 # If not set, derived from kubernetes.enablePodLabels/enablePodUID with rbac.create, or kubernetesDRA.enabled.
104 # Setting this to false disables in-cluster Kubernetes API authentication for those features.
105 automountServiceAccountToken:
107 # Specifies maximum number of DaemonSet pods that can be unavailable during the update
109 # Specifies maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update
111# Labels to be added to dcgm-exporter pods
113# Annotations to be added to the dcgm-exporter DaemonSet
114daemonSetAnnotations: {}
115# Annotations to be added to dcgm-exporter pods
117# Using this annotation which is required for prometheus scraping
118# prometheus.io/scrape: "true"
119# prometheus.io/port: "9400"
121# The SecurityContext for the dcgm-exporter pods
122podSecurityContext: {}
125# The SecurityContext for the dcgm-exporter containers
130 add: ["SYS_ADMIN"] # Required for profiling metrics (DCGM_FI_PROF_*)
132 allowPrivilegeEscalation: false
133 # readOnlyRootFilesystem: true # Enable if tmpfs volumes are configured
134 # Note: For non-root without profiling metrics, use:
135 # runAsNonRoot: true, runAsUser: 1000, and remove SYS_ADMIN from capabilities.add
136# Defines the dcgm-exporter service
138 # When enabled, the helm chart will create service
141 # Accepts either "Cluster" or "Local", choose Local if you want to route internal traffic within the node only
142 internalTrafficPolicy: Cluster
146 # HTTP server read timeout for inbound scrape requests
148 # HTTP server write timeout for generating and returning scrape responses
150 # Annotations to add to the service
152# Allows to control pod resources
161 apiVersion: "monitoring.coreos.com/v1"
167 #monitoring: prometheus
169 # - sourceLabels: [__meta_kubernetes_pod_node_name]
172 # targetLabel: nodename
175 metricRelabelings: []
177 # regex: original_metrics_name
178 # replacement: new_metrics_name
181 # targetLabel: __name__
186 - key: node-role.kubernetes.io/control-plane
193# requiredDuringSchedulingIgnoredDuringExecution:
200#- name: host-binaries
203extraConfigMapVolumes:
204 - name: exporter-metrics-volume
206 name: exporter-metrics-config-map
209 path: default-counters.csv
211 - name: exporter-metrics-volume
212 mountPath: /etc/dcgm-exporter/default-counters.csv
213 subPath: default-counters.csv
215# Path to the kubelet socket for /pod-resources
216kubeletPath: "/var/lib/kubelet/pod-resources"
219 # Enable or disable HTTPS configuration
221 # Use autogenerated self-signed TLS certificates. Not recommended for production environments.
223 # Existing secret containing your own server key and certificate
225 # Certificate file name
226 certFilename: "tls.crt"
228 keyFilename: "tls.key"
229 # CA certificate file name
231 # Server policy for client authentication. Maps to ClientAuth Policies.
232 # For more detail on clientAuth options:
233 # https://golang.org/pkg/crypto/tls/#ClientAuthType
235 # NOTE: If you want to enable client authentication, you need to use
236 # RequireAndVerifyClientCert. Other values are insecure.
238 # TLS Key for HTTPS - ignored if existingSecret is provided
240 # TLS Certificate for HTTPS - ignored if existingSecret is provided
242 # CA Certificate for HTTPS - ignored if existingSecret is provided
245 #Object containing <user>:<passwords> key-value pairs for each user that will have access via basic authentication
247# Kubernetes integration settings
249 # Enable Kubernetes pod labels in metrics
250 # When enabled, metrics will include labels from the pods that are using the GPUs
251 # This requires cluster-level read permissions to pods
252 enablePodLabels: false
253 # Enable Kubernetes pod UID in metrics
254 # When enabled, metrics will include the pod UID as an attribute for the pods that are using the GPUs
255 # This requires cluster-level read permissions to pods
257 # Pod label filtering configuration
258 # Filter which pod labels are included in metrics using regex patterns
259 # Empty list means all labels are included (default behavior)
261 # podLabelAllowlistRegex:
262 # - "^app$" # Exact match for "app" label
263 # - "^app\\.kubernetes\\.io/.*" # All labels starting with app.kubernetes.io/
264 # - "^(tier|environment|version)$" # Match tier, environment, or version labels
265 podLabelAllowlistRegex: []
266 # RBAC settings for Kubernetes integration
268 # Automatically creates ClusterRole and ClusterRoleBinding for pod access when enablePodLabels or enablePodUID is true
269 # Set to false if you want to manage RBAC resources manually
271# Runtime object debug dump configuration for troubleshooting
273 # Enable file-based debugging dumps for troubleshooting
275 # Directory to store debug dump files
276 directory: "/tmp/dcgm-exporter-debug"
277 # Retention period for debug dump files in hours (0 = no cleanup)
279 # Use gzip compression for debug dump files
281# Enable DRA to capture metrics associated with GPUs managed by NVIDIA k8s-dra-driver (https://github.com/NVIDIA/k8s-dra-driver-gpu)
285# Customized list of metrics to emit. Expected to be in the same format (CSV) as the default list.
286# Must be the complete list and is not additive. If unset, the default list will take effect.
289# If line starts with a '#' it is considered a comment
290# DCGM FIELD, Prometheus metric type, help message
293# DCGM_FI_DEV_SM_CLOCK, gauge, SM clock frequency (in MHz).
294# DCGM_FI_DEV_MEM_CLOCK, gauge, Memory clock frequency (in MHz).
297# DCGM_FI_DEV_MEMORY_TEMP, gauge, Memory temperature (in C).
298# DCGM_FI_DEV_GPU_TEMP, gauge, GPU temperature (in C).
301# DCGM_FI_DEV_POWER_USAGE, gauge, Power draw (in W).
302# DCGM_FI_DEV_POWER_MGMT_LIMIT, gauge, Configured power management limit (in W).
303# DCGM_FI_DEV_ENFORCED_POWER_LIMIT, gauge, Effective power limit enforced by the driver after all limiters (in W).
304# DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION, counter, Total energy consumption since the driver was last reloaded (in mJ).
307# PCIe throughput profiling metrics are documented in the DCP metrics section below.
308# DCGM_FI_DEV_PCIE_REPLAY_COUNTER, counter, Total number of PCIe retries.
310# Utilization (the sample period varies depending on the product)
311# DCGM_FI_DEV_GPU_UTIL, gauge, GPU utilization (in %).
312# DCGM_FI_DEV_MEM_COPY_UTIL, gauge, Memory utilization (in %).
313# DCGM_FI_DEV_ENC_UTIL, gauge, Encoder utilization (in %).
314# DCGM_FI_DEV_DEC_UTIL , gauge, Decoder utilization (in %).
316# Errors and violations
317# DCGM_FI_DEV_XID_ERRORS, gauge, Value of the last XID error encountered.
318# DCGM_EXP_CLOCK_EVENTS_TOTAL, counter, cumulative clock events observed since exporter start (edge-counted)
319# DCGM_EXP_XID_ERRORS_TOTAL, counter, cumulative XID errors observed since exporter start
320# DCGM_FI_DEV_POWER_VIOLATION, counter, Throttling duration due to power constraints (in ns).
321# DCGM_FI_DEV_THERMAL_VIOLATION, counter, Throttling duration due to thermal constraints (in ns).
322# DCGM_FI_DEV_SYNC_BOOST_VIOLATION, counter, Throttling duration due to sync-boost constraints (in ns).
323# DCGM_FI_DEV_BOARD_LIMIT_VIOLATION, counter, Throttling duration due to board limit constraints (in ns).
324# DCGM_FI_DEV_LOW_UTIL_VIOLATION, counter, Throttling duration due to low utilization (in ns).
325# DCGM_FI_DEV_RELIABILITY_VIOLATION, counter, Throttling duration due to reliability constraints (in ns).
328# DCGM_FI_DEV_FABRIC_HEALTH_SUMMARY, gauge, Overall health of the GPU fabric.
329# DCGM_FI_DEV_FABRIC_HEALTH_MASK, gauge, GPU fabric health status mask.
332# DCGM_FI_DEV_FB_FREE, gauge, Framebuffer memory free (in MiB).
333# DCGM_FI_DEV_FB_USED, gauge, Framebuffer memory used (in MiB).
336# DCGM_FI_DEV_ECC_SBE_VOL_TOTAL, counter, Total number of single-bit volatile ECC errors.
337# DCGM_FI_DEV_ECC_DBE_VOL_TOTAL, counter, Total number of double-bit volatile ECC errors.
338# DCGM_FI_DEV_ECC_SBE_AGG_TOTAL, counter, Total number of single-bit persistent ECC errors.
339# DCGM_FI_DEV_ECC_DBE_AGG_TOTAL, counter, Total number of double-bit persistent ECC errors.
342# DCGM_FI_DEV_RETIRED_SBE, counter, Total number of retired pages due to single-bit errors.
343# DCGM_FI_DEV_RETIRED_DBE, counter, Total number of retired pages due to double-bit errors.
344# DCGM_FI_DEV_RETIRED_PENDING, gauge, Whether pages are pending retirement (1 means pending and 0 means not pending).
347# NVLink error counters for pre-Hopper GPUs
348# DCGM_FI_DEV_NVLINK_CRC_FLIT_ERROR_TOTAL, counter, Total number of NVLink flow-control CRC errors across all lanes.
349# DCGM_FI_DEV_NVLINK_CRC_DATA_ERROR_TOTAL, counter, Total number of NVLink data CRC errors across all lanes.
350# DCGM_FI_DEV_NVLINK_REPLAY_ERROR_TOTAL, counter, Total number of NVLink replay errors across all lanes.
351# DCGM_FI_DEV_NVLINK_RECOVERY_ERROR_TOTAL, counter, Total number of NVLink recovery errors across all lanes.
352# NVLink data-link error counters for Hopper GPUs
353# DCGM_FI_DEV_NVLINK_CRC_ERROR_TOTAL, counter, Total number of NVLink data-link CRC errors.
354# DCGM_FI_DEV_NVLINK_RECOVERY_TOTAL, counter, Total number of NVLink data-link recovery errors.
355# DCGM_FI_DEV_NVLINK_REPLAY_TOTAL, counter, Total number of NVLink data-link replay errors.
356# NVLink recovery counters for Blackwell and newer GPUs
357# DCGM_FI_DEV_NVLINK_RECOVERY_SUCCESSFUL_TOTAL, counter, Total number of successful NVLink recovery events across all links.
358# DCGM_FI_DEV_NVLINK_RECOVERY_FAILED_TOTAL, counter, Total number of failed NVLink recovery events across all links.
359# DCGM_FI_DEV_NVLINK_RECOVERY_EVENT_TOTAL, counter, Total number of NVLink recovery events across all links.
360# DCGM_FI_DEV_NVLINK_BANDWIDTH_TOTAL, gauge, Aggregate NVLink throughput across all lanes (in MB/s).
361# DCGM_FI_DEV_NVLINK_BANDWIDTH_L0, gauge, NVLink lane 0 throughput (in MB/s).
364# DCGM_FI_DEV_VGPU_LICENSE_STATUS, gauge, vGPU License status
367# DCGM_FI_DEV_UNCORRECTABLE_REMAPPED_ROWS, counter, Number of remapped rows for uncorrectable errors
368# DCGM_FI_DEV_CORRECTABLE_REMAPPED_ROWS, counter, Number of remapped rows for correctable errors
369# DCGM_FI_DEV_ROW_REMAP_FAILURE, gauge, Whether remapping of rows has failed
372# DCGM_FI_PROF_GR_ENGINE_ACTIVE, gauge, Ratio of time the graphics engine is active.
373# DCGM_FI_PROF_SM_ACTIVE, gauge, The ratio of cycles an SM has at least 1 warp assigned.
374# DCGM_FI_PROF_SM_OCCUPANCY, gauge, The ratio of number of warps resident on an SM.
375# DCGM_FI_PROF_PIPE_TENSOR_ACTIVE, gauge, Ratio of cycles the tensor (HMMA) pipe is active.
376# DCGM_FI_PROF_DRAM_ACTIVE, gauge, Ratio of cycles the device memory interface is active sending or receiving data.
377# DCGM_FI_PROF_PIPE_FP64_ACTIVE, gauge, Ratio of cycles the fp64 pipes are active.
378# DCGM_FI_PROF_PIPE_FP32_ACTIVE, gauge, Ratio of cycles the fp32 pipes are active.
379# DCGM_FI_PROF_PIPE_FP16_ACTIVE, gauge, Ratio of cycles the fp16 pipes are active.
380# DCGM_FI_PROF_PCIE_TX_BYTES, gauge, The rate of data transmitted over the PCIe bus - including both protocol headers and data payloads - in bytes per second.
381# DCGM_FI_PROF_PCIE_RX_BYTES, gauge, The rate of data received over the PCIe bus - including both protocol headers and data payloads - in bytes per second.
382# DCGM_FI_PROF_SM_CYCLES_ELAPSED_TOTAL, counter, Total elapsed SM cycles.
383# DCGM_FI_PROF_SM_CYCLES_ACTIVE_TOTAL, counter, Total SM cycles with active warps.
384# DCGM_FI_PROF_MMA_CYCLES_ACTIVE_TOTAL, counter, Total MMA tensor cycles active.
385# DCGM_FI_PROF_DMMA_CYCLES_ACTIVE_TOTAL, counter, Total DMMA tensor cycles active.
386# DCGM_FI_PROF_HMMA_CYCLES_ACTIVE_TOTAL, counter, Total HMMA tensor cycles active.
387# DCGM_FI_PROF_IMMA_CYCLES_ACTIVE_TOTAL, counter, Total IMMA tensor cycles active.
388# DCGM_FI_PROF_DFMA_CYCLES_ACTIVE_TOTAL, counter, Total DFMA tensor cycles active.
389# DCGM_FI_PROF_PCIE_TX_BYTES_TOTAL, counter, Total PCIe transmitted bytes.
390# DCGM_FI_PROF_PCIE_RX_BYTES_TOTAL, counter, Total PCIe received bytes.
391# DCGM_FI_PROF_INT_CYCLES_ACTIVE_TOTAL, counter, Total integer pipe cycles active.
392# DCGM_FI_PROF_FP64_CYCLES_ACTIVE_TOTAL, counter, Total FP64 pipe cycles active.
393# DCGM_FI_PROF_FP32_CYCLES_ACTIVE_TOTAL, counter, Total FP32 pipe cycles active.
394# DCGM_FI_PROF_FP16_CYCLES_ACTIVE_TOTAL, counter, Total FP16 pipe cycles active.
396 initialDelaySeconds: 45
398 # timeoutSeconds and failureThreshold use the Kubernetes defaults when omitted.
400 # failureThreshold: 3
402 initialDelaySeconds: 45
403 # periodSeconds, timeoutSeconds, and failureThreshold use Kubernetes defaults when omitted.
406 # failureThreshold: 3