diff --git a/examples/enable-operator-and-auto-instrumentation/rendered_manifests/operator/instrumentation.yaml b/examples/enable-operator-and-auto-instrumentation/rendered_manifests/operator/instrumentation.yaml index 915db096bc..2d3be00677 100644 --- a/examples/enable-operator-and-auto-instrumentation/rendered_manifests/operator/instrumentation.yaml +++ b/examples/enable-operator-and-auto-instrumentation/rendered_manifests/operator/instrumentation.yaml @@ -49,10 +49,10 @@ spec: - name: OTEL_RESOURCE_ATTRIBUTES value: splunk.zc.method=autoinstrumentation-go:v0.7.0-alpha java: - image: ghcr.io/signalfx/splunk-otel-java/splunk-otel-java:v1.28.0 + image: ghcr.io/signalfx/splunk-otel-java/splunk-otel-java:v1.29.0 env: - name: OTEL_RESOURCE_ATTRIBUTES - value: splunk.zc.method=splunk-otel-java:v1.28.0 + value: splunk.zc.method=splunk-otel-java:v1.29.0 nodejs: image: ghcr.io/signalfx/splunk-otel-js/splunk-otel-js:v2.4.4 env: diff --git a/helm-charts/splunk-otel-collector/values.yaml b/helm-charts/splunk-otel-collector/values.yaml index b3f09089d1..fe94de1502 100644 --- a/helm-charts/splunk-otel-collector/values.yaml +++ b/helm-charts/splunk-otel-collector/values.yaml @@ -7,15 +7,12 @@ nameOverride: "" # fullnameOverride completely replaces the generated name. fullnameOverride: "" - ################################################################################ # clusterName is a REQUIRED. It can be set to an arbitrary value that identifies # your K8s cluster. The value will be associated with every trace, metric and # log as "k8s.cluster.name" attribute. ################################################################################ - clusterName: "" - ################################################################################ # Splunk Cloud / Splunk Enterprise configuration. ################################################################################ @@ -33,7 +30,6 @@ splunkPlatform: # Refer to https://github.com/signalfx/splunk-otel-collector-chart/blob/main/docs/advanced-configuration.md#provide-tokens-as-a-secret # HTTP Event Collector token. token: "" - # Name of the Splunk event type index targeted. Required when ingesting logs to Splunk Platform. index: "main" # Name of the Splunk metric type index targeted. Required when ingesting metrics to Splunk Platform. @@ -70,7 +66,6 @@ splunkPlatform: # NOTE: The content of the file itself should be used here, not the file path. # The file will be stored as a secret in kubernetes. caFile: "" - # Options to disable or enable particular telemetry data types that will be sent to # Splunk Platform. Only logs collection is enabled by default. logsEnabled: true @@ -84,7 +79,6 @@ splunkPlatform: renameFieldsSck: false # Boolean for keeping Otel convention fields after renaming it keepOtelConvention: true - # Refer to https://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/exporterhelper/README.md#configuration # for detailed examples retryOnFailure: @@ -95,7 +89,6 @@ splunkPlatform: maxInterval: 30s # The maximum amount of time spent trying to send a batch; ignored if enabled is false maxElapsedTime: 300s - sendingQueue: enabled: true # Number of consumers that dequeue batches; ignored if enabled is false @@ -105,7 +98,6 @@ splunkPlatform: # num_seconds is the number of seconds to buffer in case of a backend outage # requests_per_second is the average number of requests per seconds. queueSize: 5000 - # This option enables the persistent queue to store data on the disk instead of memory before sending it to the backend. # It allows setting higher queue limits and preserving the data across restarts of the collector container. # NOTE: The File Storage extension will persist state to the node's local file system. @@ -116,7 +108,6 @@ splunkPlatform: # Specifies whether to persist log/metric/trace data. enabled: false storagePath: "/var/addon/splunk/exporter_queue" - ################################################################################ # Splunk Observability configuration ################################################################################ @@ -133,31 +124,26 @@ splunkObservability: # Refer to https://github.com/signalfx/splunk-otel-collector-chart/blob/main/docs/advanced-configuration.md#provide-tokens-as-a-secret # Observability org access token. accessToken: "" - # Optional. Splunk Observability ingest URL, default: # "https://ingest..signalfx.com". ingestUrl: "" # Optional. Splunk Observability API URL, default: # "https://api..signalfx.com". apiUrl: "" - # Options to disable or enable particular telemetry data types. metricsEnabled: true tracesEnabled: true logsEnabled: false - # Option to send Kubernetes events to Splunk Observability Infrastructure Monitoring as data events: # https://docs.splunk.com/Observability/alerts-detectors-notifications/view-data-events.html # To send Kubernetes events to Splunk Observability Log Observer, configure clusterReceiver.k8sObjects # and set splunkObservability.logsEnabled to true. infrastructureMonitoringEventsEnabled: false - # This option just enables the shared pipeline for logs and profiling data. # There is no active collection of profiling data. # Instrumentation libraries must be configured to send it to the collector. # If you don't use AlwaysOn Profiling for Splunk APM, you can disable it. profilingEnabled: false - ################################################################################ # Logs collection engine: # - `fluentd`: deploy a fluentd sidecar that will collect logs and send them to @@ -166,18 +152,14 @@ splunkObservability: # # `fluentd` will be deprecated soon, so it's recommended to use `otel` instead. ################################################################################ - logsEngine: otel - ################################################################################ # Cloud provider, if any, the collector is running on. Leave empty for none/other. # - "aws" (Amazon Web Services) # - "gcp" (Google Cloud Platform) # - "azure" (Microsoft Azure) ################################################################################ - cloudProvider: "" - ################################################################################ # Kubernetes distribution being run. Leave empty for other. # - "aks" (Azure Kubernetes Service) @@ -187,9 +169,7 @@ cloudProvider: "" # - "gke/autopilot" (Google Kubernetes Engine / Autopilot mode) # - "openshift" (RedHat OpenShift) ################################################################################ - distribution: "" - ################################################################################ # Optional "environment" parameter that will be added to all the telemetry # data (traces/logs/metrics) as an attribute. It will allow Splunk Observability @@ -206,7 +186,6 @@ distribution: "" # "prometheus.io/scrape". # Set autodetect.istio=true in istio environment. ################################################################################ - autodetect: prometheus: false # This option is recommended for istio environments. It does the following things: @@ -214,7 +193,6 @@ autodetect: # - Add a `service.name` resource attribute to logs with the same value as istio generates for # traces to enable correlation between logs and traces usign this attribute. istio: false - ################################################################################ # Optional: Configuration for additional metadata that will be added to all the # telemetry as extra attributes. @@ -222,9 +200,7 @@ autodetect: # `fromAttributes` options are only applied to traces and logs. Pod labels are # always sent to Splunk Observability (if enabled) as metric properties. ################################################################################ - extraAttributes: - # Labels that will be collected from k8s pods (or namespaces) (in case they are set) # and added as extra attributes to the telemetry in the following format: # k8s..labels.: @@ -249,19 +225,16 @@ extraAttributes: # tag_name: "$$1" fromLabels: - key: app - # Annotations that will be collected from k8s pods (or namespaces) (in case they are set) # and added as extra attributes to the telemetry in the following format: # k8s..annotations.: # fromAnnotations uses the same extraction rules as fromLabels option so refer examples from the fromLabels option. fromAnnotations: [] - # List of hardcoded key/value pairs that will be added as attributes to # all the telemetry. custom: [] - # - name: "account_id" - # value: "1234567890" - + # - name: "account_id" + # value: "1234567890" ################################################################################ # OPTIONAL CONFIGURATIONS OF PARTICULAR O11Y COLLECTOR COMPONENTS ################################################################################ @@ -270,10 +243,8 @@ extraAttributes: # OpenTelemetry collector running as an deamonset agent on every node. # It collects metrics and traces and send them to Signalfx backend. ################################################################################ - agent: enabled: true - # Metric collection from k8s control plane components. # For control plane configuration details see: docs/advanced-configuration.md#control-plane-metrics controlPlaneMetrics: @@ -320,7 +291,6 @@ agent: scheduler: # Specifies whether to collect scheduler metrics. enabled: true - # The ports to be exposed by the agent to the host. # Make sure that only necessary ports are exposed, combination must # be unique across all the nodes in k8s cluster. Any port can be disabled, @@ -369,18 +339,15 @@ agent: hostPort: 9943 protocol: TCP enabled_for: [metrics] - resources: limits: cpu: 200m # This value is being used as a source for default memory_limiter processor configurations memory: 500Mi - # To collect container logs and journald logs, it will run the agent as a root user. # To run it as non root user, uncomment below `securityContext` options. # Setting runAsUser and runAsGroup to a non root user enables an init container that patches group # permissions of container logs directories on the host filesystem to make logs readable by this non root user. - securityContext: {} # runAsUser: 20000 # runAsGroup: 20000 @@ -388,41 +355,32 @@ agent: # Specifies DaemonSet update strategy. # Possible values: "OnDelete" and "RollingUpdate". updateStrategy: RollingUpdate - # Specifies the maximum of pods that can be unavailable during update process. # Applicable only when updateStrategy is set to "RollingUpdate". # Can be an absolute number or a percentage. The default is 1. maxUnavailable: 1 - service: # create a service for the agents with a local internalTrafficPolicy # so that agent pods can be discovered via dns etc enabled: false - # OTel agent annotations annotations: {} podAnnotations: {} - # OTel agent extra pod labels podLabels: {} - # Extra enviroment variables to be set in the OTel agent container extraEnvs: [] - # Extra volumes to be mounted to the agent daemonset. # The volumes will be available for both OTel agent and fluentd containers. extraVolumes: [] extraVolumeMounts: [] - # Enable or disable features of the agent. featureGates: "" - # OpenTelemetry Collector configuration for otel-agent daemonset can be overriden in this field. # Default configuration defined in templates/config/_otel-agent.tpl # Any additional fields will be merged into the defaults, # existing fields can be disabled by setting them to null value. config: {} - ################################################################################ # OpenTelemetry Kubernetes cluster receiver # This is an extra 1-replica deployment of Open-temlemetry collector used @@ -431,30 +389,24 @@ agent: # Cluster receiver collects cluster level metrics from the Kubernetes API. # It has to be running on one pod, so it uses its own dedicated deployment with 1 replica. - clusterReceiver: enabled: true - # Need to be adjusted based on size of the monitored cluster resources: limits: cpu: 200m memory: 500Mi - # Scheduling configurations nodeSelector: {} tolerations: [] affinity: {} - # Pod configurations securityContext: {} terminationGracePeriodSeconds: 600 priorityClassName: "" - # k8s cluster receiver collector annotations annotations: {} podAnnotations: {} - # This flag enables Kubernetes events collection using OpenTelemetry Kubernetes Events Receiver # https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/k8seventsreceiver # This option requires `logsEnabled` to be set to `true` for either `splunkObservability` or `splunkPlatform` @@ -462,7 +414,6 @@ clusterReceiver: # The receiver currently is in alpha state which means that events format might change over time. # Once the receiver is stabilized, it'll be enabled by default in this helm chart eventsEnabled: false - # Kubernetes objects collection using OpenTelemetry Kubernetes Object Receiver # https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/k8sobjectsreceiver # This option requires `logsEnabled` to be set to `true` for either `splunkObservability` or `splunkPlatform` @@ -511,26 +462,20 @@ clusterReceiver: # The configuration format in details is described here: # https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/k8sobjectsreceiver k8sObjects: [] - # k8s cluster receiver extra pod labels podLabels: {} - # Extra enviroment variables to be set in the OTel Cluster Receiver container extraEnvs: [] - # Extra volumes to be mounted to the k8s cluster receiver container. extraVolumes: [] extraVolumeMounts: [] - # Enable or disable features of the cluster receiver. featureGates: "" - # OpenTelemetry Collector configuration for K8s Cluster Receiver deployment can be overriden in this field. # Default configuration defined in templates/config/_otel-k8s-cluster-receiver-config.tpl # Any additional fields will be merged into the defaults, # existing fields can be disabled by setting them to null value. config: {} - ################################################################# # Native OpenTelemetry logs collection # Disabled by default in favor of fluentd. @@ -538,9 +483,7 @@ clusterReceiver: # Receiver Documentation: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver # OpenTelemetry Logging Documentation: https://opentelemetry.io/docs/specs/otel/logs ################################################################# - logsCollection: - # Container logs collection containers: enabled: true @@ -556,7 +499,6 @@ logsCollection: # Extra operators for container logs. # https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/pkg/stanza/docs/operators/README.md extraOperators: [] - # Multiline logs processing configuration. Multiline logs that written by containers to stdout # are usually broken down into several one-line logs and can be reconstructed with a regex # expression that matches the first line of each logs batch. The following operator is being @@ -595,8 +537,7 @@ logsCollection: # maxRecombineLogsSize sets the maximum size in bytes of a message recombined from cri-o, containerd and docker log entries. # Set to 0 to remove any size limit. maxRecombineLogSize: 1048576 - -# Configuration for collecting journald logs using otel collector + # Configuration for collecting journald logs using otel collector journald: enabled: false # Please update directory path for journald if it's different from below default value "/var/log/journal" @@ -611,9 +552,7 @@ logsCollection: priority: info # Route journald logs to its own Splunk Index by specifying the index value below, else leave it blank. Please make sure the index exist in Splunk and is configured to receive HEC traffic. Not applicable to Splunk Observability. index: "" - checkpointPath: "/var/addon/splunk/otel_pos" - # Files on k8s nodes to tail. # Make sure to configure volume mounts properly at `agent.extraVolumes` and `agent.extraVolumeMounts`. extraFileLogs: {} @@ -628,13 +567,11 @@ logsCollection: # com.splunk.source: /var/log/kubernetes/apiserver/audit.log # host.name: 'EXPR(env("K8S_NODE_NAME"))' # com.splunk.sourcetype: kube:apiserver-audit - ################################################################################ # Fluentd sidecar configuration for logs collection. # As of now, this is the recommended way to collect k8s logs, # but it will be replaced by the native otel logs collection soon. ################################################################################ - fluentd: resources: limits: @@ -643,13 +580,10 @@ fluentd: requests: cpu: 100m memory: 200Mi - securityContext: runAsUser: 0 - # Extra enviroment variables to be set in the FluentD container extraEnvs: [] - config: # Configurations for container logs containers: @@ -664,10 +598,8 @@ fluentd: # Specify the log format for "cri" logFormatType # It can be "%Y-%m-%dT%H:%M:%S.%N%:z" for openshift and "%Y-%m-%dT%H:%M:%S.%NZ" for IBM IKS criTimeFormat: "%Y-%m-%dT%H:%M:%S.%N%:z" - # Directory where to read journald logs. (docker daemon logs, kubelet logs, and anyother specified serivce logs) journalLogPath: /run/log/journal - # Controls the output buffer for the fluentd daemonset # Note that, for memory buffer, if `resources.limits.memory` is set, # the total buffer size should not bigger than the memory limit, it should also @@ -684,11 +616,9 @@ fluentd: flush_thread_count: 1 overflow_action: block retry_max_times: 3 - # logLevel is to set log level of the Splunk log collector. # Available values are: trace, debug, info, warn, error logLevel: info - # path of logfiles, default /var/log/containers/*.log path: /var/log/containers/*.log # paths of logfiles to exclude. object type is array as per fluentd specification: @@ -701,7 +631,6 @@ fluentd: # Can be used if you want to run multiple instances of fluentd on the same host # https://docs.fluentd.org/input/tail#pos_file-highly-recommended posFilePrefix: /var/log/splunk-fluentd - # `customFilters` defines the custom filters to be used. # This section can be used to define custom filters using plugins like https://github.com/splunk/fluent-plugin-jq # Its also possible to use other filters like https://www.fluentd.org/plugins#filter @@ -738,7 +667,6 @@ fluentd: # body: jq '.record.cluster_name = "my_awesome_cluster" | .record' # ``` customFilters: {} - # `logs` defines the source of logs, multiline support, and their sourcetypes. # # The scheme to define a log is: @@ -851,48 +779,48 @@ fluentd: regexp: (?