1# IMPORTANT: Specify your New Relic API key here.
4# Optionally, specify a cluster name and log records can
5# be filtered by cluster.
6# Cluster name is required to be set in order to create relationship with Daemonset entity in NR platform.
9# or Specify secret which contains New Relic API key
10# customSecretName: secret_name
11# customSecretLicenseKey: secret_key
13# The previous values can also be set as global so that they
14# can be shared by other newrelic product's charts
20# customSecretLicenseKey:
22# IMPORTANT: if you use a kubernetes secret to specify the license,
23# you have to manually provide the correct endpoint depending on
24# whether your account is for the EU or JP region.
26# endpoint: https://log-api.newrelic.com/log/v1
27# metricsEndpoint: metric-api.newrelic.com
30 path: "/var/log/containers/*.log"
32 windowsPath: "C:\\var\\log\\containers\\*.log"
33 db: "/var/log/flb_kube.db"
34 windowsDb: "C:\\var\\log\\flb_kube.db"
37 k8sLoggingExclude: "false"
39 # Configuration for sending custom metrics of New relic Fluent Bit output plugin.
40 # Note: Fluent Bit's internal metrics are sent automatically and are not affected by this setting from newrelic-logging chart version 1.24.0.
41 # For more information on Fluent Bit monitoring, visit:
42 # https://docs.fluentbit.io/manual/administration/monitoring
44 # Configuration for sending metrics of Fluentbit to NewRelic
45 # Allowed values are: `none`, `basic`, `advanced`
46 # none: No metrics are sent
47 # basic: Only the build info metric is sent
48 # advanced: All the metrics are sent to New Relic at 1 minute scrape interval
49 # Note: By default, the `basic` option is used.
50 fluentBitMetrics: "basic"
54 # value: http://example.com:3128
55 # - name: METADATA_NAME
58 # fieldPath: metadata.name
59 # Helm templating is also supported
60 # - name: MY_TEMPLATIZED_ENV
61 # value: "templatization example {{ .Values.someValue }}"
63 # Indicates how fluent-bit database is persisted
65 # Define the persistent mode for fluent-bit db, allowed options are `hostPath` (default), `none`, `persistentVolume`.
66 # - `hostPath` will use hostPath to store the db file on the node disk.
67 # - `none` will disable the fluent-bit db file, this could cause log duplication or data loss in case fluent-bit gets restarted.
68 # - `persistentVolume` will use a ReadWriteMany persistent volume to store the db file. This will override `fluentBit.db` path and use `/db/${NODE_NAME}-fb.db` file instead.
70 # In case persistence.mode is set to persistentVolume this will be needed
72 # The storage class should allow ReadWriteMany mode
74 # Volume and claim size.
76 # If dynamicProvisioning is enabled the chart will create only the PersistentVolumeClaim
77 dynamicProvisioning: true
78 # If an existingVolume is provided, we'll use it instead creating a new one
80 # If an existingVolumeClaim is provided, we'll use it instead creating a new one
82 # In case you need to add annotations to the created volume or claim
86 # In case you need to specify any other option to your volume or claim
93 # New Relic default configuration for fluent-bit.conf (service, inputs, filters, outputs)
94 # and parsers.conf (parsers). The configuration below is not configured for lowDataMode and will
95 # send all attributes. If custom configuration is required, update these variables.
97 # Note that Prometheus metric collection needs the HTTP server to be online at port 2020 (see fluentBit.config.metricInstrumentation)
101 Log_Level ${LOG_LEVEL}
103 Parsers_File parsers.conf
111 Alias pod-logs-tailer
114 multiline.parser ${LOG_PARSER}
126 Alias kubernetes-enricher
128 # We need the full DNS suffix as Windows only supports resolving names with this suffix
129 # See: https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#dns-limitations
130 Kube_URL https://kubernetes.default.svc.cluster.local:443
131 Buffer_Size ${K8S_BUFFER_SIZE}
132 K8S-Logging.Exclude ${K8S_LOGGING_EXCLUDE}
136 Alias node-attributes-enricher
138 Record cluster_name "${CLUSTER_NAME}"
143 # Exclude log lvl=debug*
144 lowDataModeFilters: |
148 Alias kubernetes-enricher
149 # We need the full DNS suffix as Windows only supports resolving names with this suffix
150 # See: https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#dns-limitations
151 Kube_URL https://kubernetes.default.svc.cluster.local:443
152 Buffer_Size ${K8S_BUFFER_SIZE}
153 K8S-Logging.Exclude ${K8S_LOGGING_EXCLUDE}
160 Alias kubernetes-attribute-lifter
162 Nested_under kubernetes
167 Alias node-attributes-enricher-filter
168 Record cluster_name "${CLUSTER_NAME}"
169 Allowlist_key container_name
170 Allowlist_key namespace_name
171 Allowlist_key pod_name
173 Allowlist_key message
179 Alias newrelic-logs-forwarder
180 licenseKey ${LICENSE_KEY}
182 lowDataMode ${LOW_DATA_MODE}
183 sendMetrics ${SEND_OUTPUT_PLUGIN_METRICS}
184 Retry_Limit ${RETRY_LIMIT}
192# Name my_custom_parser
195# Time_Format %Y-%m-%dT%H:%M:%S.%L
198 repository: chainguard-private/newrelic-fluent-bit-output
199 # registry: my_registry
200 tag: latest@sha256:d60f5875c7c61a42975db277765ab18923712dab852570d9c0279a0305d755f8
201 pullPolicy: IfNotPresent
202 ## See https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
204 registry: chainreg.biz
207# By default, the Linux DaemonSet will always be deployed, while the Windows DaemonSet(s) won't.
210# For every entry in this Windows OS list, we will create an independent DaemonSet which will get deployed
211# on Windows nodes running each specific Windows version and build number. Note that
212# Windows containers can only be executed on hosts running the exact same Windows version and build number,
213# because Kubernetes only supports process isolation and not Hyper-V isolation (as of September 2021)
215 # We aim to support (limited to LTSC2019/LTSC2022 using GitHub actions, see https://github.com/actions/runner-images/tree/main/images/win):
216 # https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#windows-os-version-support
218 imageTagSuffix: windows-ltsc-2019
219 buildNumber: 10.0.17763
221 imageTagSuffix: windows-ltsc-2022
222 buildNumber: 10.0.20348
223# Default set of resources assigned to the DaemonSet pods
232 # Specifies whether RBAC resources should be created
236 # Specifies whether a ServiceAccount should be created
238 # The name of the ServiceAccount to use.
239 # If not set and create is true, a name is generated using the fullname template
241 # Specify any annotations to add to the ServiceAccount
243# Optionally configure ports to expose metrics on /api/v1/metrics/prometheus
244# See - https://docs.fluentbit.io/manual/administration/monitoring
246# - containerPort: 2020
251# If you wish to provide additional labels to apply to the pod(s), specify
255# Pod scheduling priority
256# Ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
257# priorityClassName: high-priority
260# Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
264# When .Values.global.fargate == true, the chart will automatically add the required affinity rules to exclude
265# the DaemonSet from Fargate nodes. There is no need to manually touch this property achieve this.
266# This automatic exclusion will, however, not take place if this value is overridden: Setting this to a
267# non-empty value WHEN deploying in EKS Fargate (global.fargate == true) requires the user to manually
268# include in their custom ruleset an exclusion for nodes with "eks.amazonaws.com/compute-type: fargate", as
269# the New Relic DaemonSet MUST NOT be deployed on fargate nodes, as the operator takes care of injecting it
270# as a sidecar instead.
271# Please refer to the daemonset.yaml template for more details on how to achieve this.
273# Node labels for pod assignment
274# Ref: https://kubernetes.io/docs/user-guide/node-selection/
275# Note that the Linux DaemonSet already contains a node selector label based on their OS (kubernetes.io/os: linux).
277# Note that the Windows DaemonSet already contains a node selector label based on their OS (kubernetes.io/os: windows).
278# and build number (node.kubernetes.io/windows-build: {{ .buildNumber }}, to ensure that each version of the DaemonSet
279# gets deployed only on those Windows nodes running the exact same Windows version and build number. Note that
280# Windows containers can only be executed on hosts running the exact same Windows version and build number.
281windowsNodeSelector: {}
282# These are default tolerations to be able to run the New Relic Kubernetes integration.
288updateStrategy: RollingUpdate
289# Sends data to staging, can be set as a global.
293 # Annotations to add to the DaemonSet.
295# Annotations to add to the resulting Pods of the DaemonSet.
297# If host network should be enabled for fluentbit pods.
298# There are some inputs like UDP which will require this setting to be true as they need to bind to the host network.
300# When low data mode is enabled only minimal attributes are added to the logs. Kubernetes labels and
301# annotations are not included. The plugin.type, plugin.version and plugin.source attributes are minified
302# into the plugin.source attribute.
303# Can be set as a global: global.lowDataMode
308# path: /run/log/journal
312# mountPath: /run/log/journal
317# command: ["sh", "-c", 'echo "hello world"']
324# -- Sets pod dnsConfig. Can also be configured with `global.dnsConfig`
326# Sets the pod liveness probe.
327# This is useful to ensure that the pod is restarted in case of issues.
330 initialDelaySeconds: 10