1# -- Override the name of the chart
3# -- Override the full name of the release
5# -- Name of the Kubernetes cluster monitored. Can be configured also with `global.cluster`.
6# Note it will be set as an external label in prometheus configuration, it will have precedence over `config.common.external_labels.cluster_name`
7# and `customAttributes.cluster_name``.
9# -- This set this license key to use. Can be configured also with `global.licenseKey`
11# -- In case you don't want to have the license key in you values, this allows you to point to a user created secret to get the key from there. Can be configured also with `global.customSecretName`
13# -- In case you don't want to have the license key in you values, this allows you to point to which secret key is the license key located. Can be configured also with `global.customSecretLicenseKey`
14customSecretLicenseKey: ""
15# -- Adds extra attributes to prometheus external labels. Can be configured also with `global.customAttributes`. Please note, values defined
16# in `common.config.externar_labels` will have precedence over `customAttributes`.
18# Images used by the chart for prometheus and New Relic configurator.
19# @default See `values.yaml`
21 # -- The secrets that are needed to pull images from a custom registry.
23 # -- Image for New Relic configurator.
24 # @default -- See `values.yaml`
26 registry: chainreg.biz
27 repository: chainguard-private/newrelic-prometheus-configurator
28 pullPolicy: IfNotPresent
29 # @default It defaults to `annotation.configuratorVersion` in `Chart.yaml`.
30 tag: latest@sha256:3da58b17d2c9b0cef9f078fb1682daeffbab1753758b76b28224835ab8f08ad9
31 # -- Image for prometheus which is executed in agent mode.
32 # @default -- See `values.yaml`
34 registry: chainreg.biz
35 repository: chainguard-private/prometheus
36 pullPolicy: IfNotPresent
37 # @default It defaults to `appVersion` in `Chart.yaml`.
38 tag: latest@sha256:65566f4c02f472ac3cfd770e38564ba6a75b260a2d0aefcc91875edea87ddf72
39# -- Volumes to mount in the containers
41# -- Defines where to mount volumes specified with `extraVolumes`
43# -- Settings controlling ServiceAccount creation.
44# @default -- See `values.yaml`
46 # -- Whether the chart should automatically create the ServiceAccount objects required to run.
49 # If not set and create is true, a name is generated using the full name template
51# -- Additional labels for chart objects. Can be configured also with `global.labels`
53# -- Annotations to be added to all pods created by the integration.
55# -- Additional labels for chart pods. Can be configured also with `global.podLabels`
57# -- Resource limits to be added to all pods created by the integration.
62# -- Sets pod's priorityClassName. Can be configured also with `global.priorityClassName`
64# -- (bool) Sets pod's hostNetwork. Can be configured also with `global.hostNetwork`
67# -- Sets security context (at pod level). Can be configured also with `global.podSecurityContext`
69# -- Sets security context (at container level). Can be configured also with `global.containerSecurityContext`
70containerSecurityContext: {}
71# -- Sets pod's dnsConfig. Can be configured also with `global.dnsConfig`
73# Settings controlling RBAC objects creation.
75 # -- Whether the chart should automatically create the RBAC objects required to run.
77 # -- Whether the chart should create Pod Security Policy objects.
79# -- Sets pod/node affinities set almost globally. (See [Affinities and tolerations](README.md#affinities-and-tolerations))
81# -- Sets pod's node selector almost globally. (See [Affinities and tolerations](README.md#affinities-and-tolerations))
83# -- Sets pod's tolerations to node taints almost globally. (See [Affinities and tolerations](README.md#affinities-and-tolerations))
85# -- (bool) Send the metrics to the staging backend. Requires a valid staging license key. Can be configured also with `global.nrStaging`
88# -- (bool) Reduces the number of metrics sent in order to reduce costs. It can be configured also with `global.lowDataMode`.
89# Specifically, it makes Prometheus stop reporting some Kubernetes cluster-specific metrics, you can see details in `static/lowdatamodedefaults.yaml`.
92# -- It holds the configuration for metric type override. If enabled, a series of metric relabel configs will be added to
93# `config.newrelic_remote_write.extra_write_relabel_configs`, you can check the whole list in `static/metrictyperelabeldefaults.yaml`
96# -- Set up Prometheus replicas to allow horizontal scalability.
97# @default -- See `values.yaml`
99# -- Sets the number of Prometheus instances running on sharding mode.
103# -- (bool) Sets the debug log to Prometheus and prometheus-configurator or all integrations if it is set globally. Can be configured also with `global.verboseLog`
106# -- It holds the New Relic Prometheus configuration. Here you can easily set up Prometheus to get set metrics, discover
107# ponds and endpoints Kubernetes and send metrics to New Relic using remote-write.
108# @default -- See `values.yaml`
110 # -- Include global configuration for Prometheus agent.
111 # @default -- See `values.yaml`
113 # -- The labels to add to any timeseries that this Prometheus instance scrapes.
116 # label_key_example: foo-bar
117 # -- How frequently to scrape targets by default, unless a different value is specified on the job.
119 # -- The default timeout when scraping targets.
122 # -- (object) Newrelic remote-write configuration settings.
123 # @default -- See `values.yaml`
124 newrelic_remote_write:
125 # # -- Includes additional [relabel configs](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config)
126 # # for the New Relic remote write.
128 # extra_write_relabel_configs: []
130 # # Enable the extra_write_relabel_configs below for backwards compatibility with legacy POMI labels.
131 # # This helpful when migrating from POMI to ensure that Prometheus metrics will contain both labels (e.g. cluster_name and clusterName).
132 # # For more migration info, please visit the [migration guide](https://docs.newrelic.com/docs/infrastructure/prometheus-integrations/install-configure-prometheus-agent/migration-guide/).
133 # - source_labels: [namespace]
135 # target_label: namespaceName
136 # - source_labels: [node]
138 # target_label: nodeName
139 # - source_labels: [pod]
141 # target_label: podName
142 # - source_labels: [service]
144 # target_label: serviceName
145 # - source_labels: [cluster_name]
147 # target_label: clusterName
148 # - source_labels: [job]
150 # target_label: scrapedTargetKind
151 # - source_labels: [instance]
153 # target_label: scrapedTargetInstance
155 # -- Set up the proxy used to send metrics to New Relic.
159 # -- Use proxy URL indicated by environment variables (HTTP_PROXY, http_proxy, HTTPS_PROXY, https_proxy, and no_proxy) can be configured via config.extraEnvs
161 # proxy_from_environment:
163 # -- # Timeout for requests to the remote write endpoint.
167 # -- Fine-tune remote-write behavior: <https://prometheus.io/docs/practices/remote_write/#remote-write-tuning>.
169 # -- Remote Write shard capacity.
172 # -- Maximum number of shards.
175 # -- Minimum number of shards.
178 # -- Maximum number of samples per send.
180 # max_samples_per_send:
181 # -- Maximum time a sample will wait in the buffer.
183 # batch_send_deadline:
184 # -- Initial retry delay. Gets doubled for every retry.
187 # -- Maximum retry delay.
190 # -- Retry upon receiving a 429 status code from the remote-write storage.
191 # @default -- `false`
193 # -- Maximum sample age before dropping.
197 # -- Retrieve proxy_url from a secret.
198 # If set will overwrite the proxy_url if set by newrelic_remote_write.proxy_url.
199 # Ensure secret to use exists before setting this to true.
200 # @default -- `false`
203 # -- The name of the secret containing the proxy URL.
205 # -- The key in the secret containing the proxy URL.
207 # -- (object) It includes additional remote-write configuration. Note this configuration is not parsed, so valid
208 # [prometheus remote_write configuration](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write)
209 # should be provided.
211 # -- It allows defining scrape jobs for Kubernetes in a simple way.
212 # @default -- See `values.yaml`
214 # NewRelic provides a list of Dashboards, alerts and entities for several Services. The integrations_filter configuration
215 # allows to scrape only the targets having this experience out of the box.
216 # If integrations_filter is enabled, then the jobs scrape merely the targets having one of the specified labels matching
217 # one of the values of app_values.
218 # Under the hood, a relabel_configs with 'action=keep' are generated, consider it in case any custom extra_relabel_config is needed.
220 # -- enabling the integration filters, merely the targets having one of the specified labels matching
221 # one of the values of app_values are scraped. Each job configuration can override this default.
223 # -- source_labels used to fetch label values in the relabel config added by the integration filters configuration
224 source_labels: ["app.kubernetes.io/name", "app.newrelic.io/name", "k8s-app"]
225 # -- app_values used to create the regex used in the relabel config added by the integration filters configuration.
226 # Note that a single regex will be created from this list, example: '.*(?i)(app1|app2|app3).*'
227 app_values: ["redis", "traefik", "calico", "nginx", "coredns", "kube-dns", "etcd", "cockroachdb", "velero", "harbor", "argocd"]
228 # Kubernetes jobs define [kubernetes_sd_configs](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config)
229 # to discover and scrape Kubernetes objects. Besides, a set of relabel_configs are included in order to include some Kubernetes metadata as
230 # Labels. For example, address, metrics_path, URL scheme, prometheus_io_parameters, namespace, pod name, service name and labels are taken
231 # to set the corresponding labels.
232 # Please note, the relabeling allows configuring the pod/endpoints scrape using the following annotations:
233 # - `prometheus.io/scheme`: If the metrics endpoint is secured then you will need to set this to `https`
234 # - `prometheus.io/path`: If the metrics path is not `/metrics` override this.
235 # - `prometheus.io/port`: If the metrics are exposed on a different port to the service for service endpoints or to
236 # the default 9102 for pods.
237 # - `prometheus.io/param_<param-name>`: To include additional parameters in the scrape URL.
239 # 'default' scrapes all targets having 'prometheus.io/scrape: true'.
240 # Out of the box, since kubernetes.integrations_filter.enabled=true then only targets selected by the integration filters are considered.
241 - job_name_prefix: default
242 fallback_scrape_protocol: "PrometheusText0.0.4"
248 prometheus.io/scrape: true
249 # -- integrations_filter configuration for this specific job. It overrides kubernetes.integrations_filter configuration
250 # integrations_filter:
251 - job_name_prefix: newrelic
252 # 'newrelic' scrapes all targets having 'newrelic.io/scrape: true'.
253 # This is useful to extend the targets scraped by the 'default' job allowlisting services leveraging `newrelic.io/scrape` annotation
255 fallback_scrape_protocol: "PrometheusText0.0.4"
263 newrelic.io/scrape: true
264 # -- Set up the job name prefix. The final Prometheus `job` name will be composed of <job_name_prefix> + the target discovery kind. ie: `default-pod`
267 # -- The target discovery field allows customizing how Kubernetes discovery works.
270 # -- Whether pods should be discovered.
271 # @default -- `false`
274 # -- Whether endpoints should be discovered.
275 # @default -- `false`
278 # -- Defines filtering criteria, it is possible to set labels and/or annotations. All filters will apply (defined
279 # filters are taken into account as an "AND operation").
282 # -- Map of annotations that the targets should have. If only the annotation name is defined, the filter only checks if exists.
286 # -- Map of labels that the targets should have. If only the label name is defined, the filter only checks if exists.
289 # -- Set up the proxy used to send metrics to New Relic.
293 # -- Use proxy URL indicated by environment variables (HTTP_PROXY, http_proxy, HTTPS_PROXY, https_proxy, and no_proxy) can be configured via config.extraEnvs
295 # proxy_from_environment:
297 # -- Advanced configs of the Kubernetes service discovery `kuberentes_sd_config` options,
298 # check [prometheus documentation](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config) for details.
299 # Notice that using `filter` is the recommended way to filter targets to avoid adding load to the API Server.
301 # kubeconfig_file: ""
304 # attach_metadata: {}
306 # -- The HTTP resource path on which to fetch metrics from targets.
307 # Use `prometheus.io/path` pod/service annotation to override this or modify it here.
308 # @default -- `/metrics`
311 # -- Optional HTTP URL parameters.
312 # Use `prometheus.io/param_<param-name>` pod/service annotation to include additional parameters in the scrape url or modify it here.
316 # -- Configures the protocol scheme used for requests.
317 # Annotate the service/pod with `prometheus.io/scheme=https` if the secured port is used or modify it here.
321 # -- How frequently to scrape targets from this job.
322 # @default -- defined in `common.scrape_interval`
325 # -- Per-scrape timeout when scraping this job.
326 # @default -- defined in `common.scrape_timeout`
329 # -- Configures the scrape request's TLS settings.
332 # -- CA certificate file path to validate API server certificate with.
336 # -- Certificate and key files path for client cert authentication to the server.
341 # Disable validation of the server certificate.
342 # @default -- `false`
343 # insecure_skip_verify:
345 # -- Sets the `Authorization` Bearer token header on every scrape request
348 # Sets the credentials to the credentials read from the configured file.
352 # -- Sets the `Authorization` header on every scrape request with the configured username and password.
358 # -- List of relabeling configurations. Used if needed to add any special filter or label manipulation before the scrape takes place.
360 # extra_relabel_config:
362 # -- List of metric relabel configurations. Used it to filter metrics and labels after scrape.
364 # extra_metric_relabel_config:
366 # -- It allows defining scrape jobs for targets with static URLs.
367 # @default -- See `values.yaml`.
369 # -- List of static target jobs. By default, it defines a job to get self-metrics. Please note, if you define `static_target.jobs` and would like to keep
370 # self-metrics you need to include a job like the one defined by default.
371 # @default -- See `values.yaml`.
373 - job_name: self-metrics
374 skip_sharding: true # sharding is skipped to obtain self-metrics from all Prometheus servers.
377 extra_metric_relabel_config:
378 - source_labels: [__name__]
379 regex: "prometheus_agent_active_series|prometheus_target_interval_length_seconds|prometheus_target_scrape_pool_targets|prometheus_remote_storage_samples_pending|prometheus_remote_storage_samples_in_total|prometheus_remote_storage_samples_retried_total|prometheus_agent_corruptions_total|prometheus_remote_storage_shards|prometheus_sd_kubernetes_events_total|prometheus_agent_checkpoint_creations_failed_total|prometheus_agent_checkpoint_deletions_failed_total|prometheus_remote_storage_samples_dropped_total|prometheus_remote_storage_samples_failed_total|prometheus_sd_kubernetes_http_request_total|prometheus_agent_truncate_duration_seconds_sum|prometheus_build_info|process_resident_memory_bytes|process_virtual_memory_bytes|process_cpu_seconds_total|prometheus_remote_storage_bytes_total"
381 # -- The job name assigned to scraped metrics by default.
384 # -- List of target URLs to be scraped by this job.
388 # -- Labels assigned to all metrics scraped from the targets.
392 # -- The HTTP resource path on which to fetch metrics from targets.
393 # @default -- `/metrics`
396 # -- Optional HTTP URL parameters.
400 # -- Configures the protocol scheme used for requests.
404 # -- How frequently to scrape targets from this job.
405 # @default -- defined in `common.scrape_interval`
408 # -- Per-scrape timeout when scraping this job.
409 # @default -- defined in `common.scrape_timeout`
412 # -- Set up the proxy used to send metrics to New Relic.
416 # -- Use proxy URL indicated by environment variables (HTTP_PROXY, http_proxy, HTTPS_PROXY, https_proxy, and no_proxy) can be configured via config.extraEnvs
418 # proxy_from_environment:
420 # -- Configures the scrape request's TLS settings.
423 # -- CA certificate file path to validate API server certificate with.
427 # -- Certificate and key files path for client cert authentication to the server.
432 # Disable validation of the server certificate.
433 # @default -- `false`
434 # insecure_skip_verify:
435 # -- Sets the `Authorization` Bearer token header on every scrape request
438 # Sets the credentials to the credentials read from the configured file.
442 # -- Sets the `Authorization` header on every scrape request with the configured username and password.
448 # -- List of relabeling configurations. Used if needed to add any special filter or label manipulation before the scrape takes place.
450 # extra_relabel_config:
452 # -- List of metric relabel configurations. Used it to filter metrics and labels after scrape.
454 # extra_metric_relabel_config:
456 # If configuring environment variables from configmaps or secrets, ensure the configmap or secret exists before enabling this
458 # - name: HTTPS_PROXY
459 # value: "http://example.com" # Direct value
460 # - name: HTTPS_PROXY
465 # - name: HTTPS_PROXY
471 # -- It is possible to include extra scrape configuration in [prometheus format](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config).
472 # Please note, it should be a valid Prometheus configuration which will not be parsed by the chart.
473 # WARNING extra_scrape_configs is a raw Prometheus config. Therefore, the metrics collected thanks to it will not have by default the metadata (pod_name, service_name, ...) added by the configurator for the static or kubernetes jobs.
474 # This configuration should be used as a workaround whenever kubernetes and static job do not cover a particular use-case.
476 extra_scrape_configs: []