# This collector config file is designed for use within an ECS task. # The collector should run in a sidecar container within an ECS task. config_sources: env: defaults: METRICS_TO_EXCLUDE: [] ECS_METADATA_EXCLUDED_IMAGES: [] ECS_TASK_METADATA_ENDPOINT: "${ECS_CONTAINER_METADATA_URI_V4}/task" ECS_TASK_STATS_ENDPOINT: "${ECS_CONTAINER_METADATA_URI_V4}/task/stats" extensions: health_check: endpoint: 0.0.0.0:12001 http_forwarder: ingress: endpoint: 0.0.0.0:12002 egress: endpoint: "https://api.${SPLUNK_REALM}.signalfx.com" zpages: endpoint: 0.0.0.0:12003 memory_ballast: # In general, the ballast should be set to 1/3 of the collector's memory, the limit # should be 90% of the collector's memory. # The simplest way to specify the ballast size is set the value of SPLUNK_BALLAST_SIZE_MIB env variable. size_mib: ${SPLUNK_BALLAST_SIZE_MIB} receivers: # The fluentforward receiver can be used to forward logs from the Docker fluentd logging driver. # fluentforward: # endpoint: 0.0.0.0:12004 hostmetrics: collection_interval: 1s scrapers: cpu: disk: filesystem: memory: network: # System load average metrics https://en.wikipedia.org/wiki/Load_(computing) load: # Paging/Swap space utilization and I/O metrics paging: # Aggregated system process count metrics processes: # System processes metrics, disabled by default # process: jaeger: protocols: grpc: endpoint: 0.0.0.0:12005 thrift_http: endpoint: 0.0.0.0:12006 otlp: protocols: grpc: endpoint: 0.0.0.0:4317 http: endpoint: 0.0.0.0:4318 # This section is used to collect the OpenTelemetry Collector metrics # Even if just a Splunk APM customer, these metrics are included prometheus/internal: config: scrape_configs: - job_name: 'otel-collector' scrape_interval: 1s static_configs: - targets: ['0.0.0.0:8888'] metric_relabel_configs: - source_labels: [ __name__ ] regex: 'otelcol_rpc_.*' action: drop - source_labels: [ __name__ ] regex: 'otelcol_http_.*' action: drop - source_labels: [ __name__ ] regex: 'otelcol_processor_batch_.*' action: drop signalfx: endpoint: 0.0.0.0:9943 # Whether to preserve incoming access token and use instead of exporter token # default = false #access_token_passthrough: true # zipkin: # endpoint: 0.0.0.0:12011 smartagent/signalfx-forwarder: type: signalfx-forwarder listenAddress: 0.0.0.0:12012 smartagent/ecs-metadata: type: ecs-metadata metadataEndpoint: "${env:ECS_TASK_METADATA_ENDPOINT}" statsEndpoint: "${env:ECS_TASK_STATS_ENDPOINT}" excludedImages: ${env:ECS_METADATA_EXCLUDED_IMAGES} processors: batch: # Enabling the memory_limiter is strongly recommended for every pipeline. # Configuration is based on the amount of memory allocated to the collector. # For more information about memory limiter, see # https://github.com/open-telemetry/opentelemetry-collector/blob/main/processor/memorylimiter/README.md memory_limiter: check_interval: 2s limit_mib: ${SPLUNK_MEMORY_LIMIT_MIB} # detect if the collector is running on a cloud system # important for creating unique cloud provider dimensions resourcedetection: detectors: [ecs] override: false # Same as above but overrides resource attributes set by receivers resourcedetection/internal: detectors: [ecs] override: true # Defines the filter processor with example settings # Full configuration here: https://github.com/open-telemetry/opentelemetry-collector/tree/main/processor/filterprocessor filter: metrics: exclude: match_type: regexp metric_names: ${env:METRICS_TO_EXCLUDE} # # Optional: The following processor can be used to add a default "deployment.environment" attribute to the logs and # # traces when it's not populated by instrumentation libraries. # # If enabled, make sure to enable this processor in the pipeline below. # resource/add_environment: # attributes: # - action: insert # value: staging/production/... # key: deployment.environment exporters: # Traces sapm: access_token: "${SPLUNK_ACCESS_TOKEN}" endpoint: "https://ingest.${SPLUNK_REALM}.signalfx.com/v2/trace" # Metrics + Events signalfx: access_token: "${SPLUNK_ACCESS_TOKEN}" realm: "${SPLUNK_REALM}" correlation: # Logs splunk_hec: token: "${SPLUNK_HEC_TOKEN}" endpoint: "${SPLUNK_HEC_URL}" source: "otel" sourcetype: "otel" profiling_data_enabled: false # Profiling splunk_hec/profiling: token: "${SPLUNK_ACCESS_TOKEN}" endpoint: "${SPLUNK_INGEST_URL}/v1/log" log_data_enabled: false service: extensions: [health_check, http_forwarder, zpages, memory_ballast] pipelines: traces: #receivers: [jaeger, otlp, zipkin, smartagent/signalfx-forwarder] receivers: [jaeger, otlp, smartagent/signalfx-forwarder] processors: - memory_limiter - batch - resourcedetection #- resource/add_environment exporters: [sapm, signalfx] metrics: receivers: [hostmetrics, otlp, signalfx, smartagent/signalfx-forwarder, smartagent/ecs-metadata] processors: [memory_limiter, batch, filter, resourcedetection] exporters: [signalfx] metrics/internal: receivers: [prometheus/internal] processors: [memory_limiter, batch, filter, resourcedetection/internal] exporters: [signalfx] logs: #receivers: [otlp, fluentforward] receivers: [otlp] processors: - memory_limiter - batch - resourcedetection #- resource/add_environment exporters: [splunk_hec, splunk_hec/profiling]