• Stars
    star
    191
  • Rank 202,877 (Top 4 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created about 4 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details


Getting Started   •   Getting Involved   •   Migrating from Smart Agent

Go Report Card Build Status Codecov Status GitHub release (latest by date including pre-releases) Beta

Architecture   •   Components   •   Monitoring   •   Security   •   Sizing   •   Troubleshooting


Splunk OpenTelemetry Collector

Splunk OpenTelemetry Collector is a distribution of the OpenTelemetry Collector. It provides a unified way to receive, process, and export metric, trace, and log data for Splunk Observability Cloud:

While it is recommended to use Splunk Forwarders to send data to Splunk Cloud or Splunk Enterprise, Splunk OpenTelemetry Collector can be configured to send data to them via the splunk_hec exporter.

Current Status

  • The Splunk Distribution of the OpenTelemetry Collector is production tested; it is in use by a number of customers in their production environments
  • Customers that use our distribution can receive direct help from official Splunk support within SLA's
  • Customers can use or migrate to the Splunk Distribution of the OpenTelemetry Collector without worrying about future breaking changes to its core configuration experience for metrics and traces collection (OpenTelemetry logs collection configuration is in beta). There may be breaking changes to the Collector's own metrics.

Getting Started

The following resources are available:

  • Architecture: How the Collector can be deployed
  • Components: What the Collector supports with links to documentation
  • Monitoring: How to ensure the Collector is healthy
  • Security: How to ensure the Collector is secure
  • Sizing: How to ensure the Collector is properly sized
  • Troubleshooting: How to resolve common issues

All you need to get started is:

This distribution is supported on and packaged for a variety of platforms including:

You can consult additional use cases in the examples directory.

Advanced Configuration

A variety of default configuration files are provided:

  • OpenTelemetry Collector see full_config_linux.yaml for a commented configuration with links to full documentation. agent_config.yaml is the recommended starting configuration for most environments.
  • Fluentd applicable to Helm or installer script installations only. See the *.conf files as well as the conf.d directory. Common sources including filelog, journald, and Windows event viewer are included.

In addition, the following components can be configured:

By default the Splunk OpenTelemetry Collector provides a sensitive value-redacting, local config server listening at http://localhost:55554/debug/configz/effective that is helpful in troubleshooting. To disable this feature please set the SPLUNK_DEBUG_CONFIG_SERVER environment variable to any value other than true. To set the desired port to listen to configure the SPLUNK_DEBUG_CONFIG_SERVER_PORT environment variable.

You can use the environment variable SPLUNK_LISTEN_INTERFACE and associated installer option to configure the network interface on which the collector's receivers and telemetry endpoints will listen. The default value of SPLUNK_LISTEN_INTERFACE is set to 0.0.0.0.

Upgrade guidelines

The following changes need to be done to configuration files for Splunk OTel Collector for specific version upgrades. We provide automated scripts included in the bundle that cover backward compatibility on the fly, but configuration files will not be overridden, so you need to update them manually before the backward compatibility is dropped. For every configuration update use the default agent config as a reference.

From 0.68.0 to 0.69.0

  • gke and gce resource detectors in resourcedetection processor are replaced with gcp resource detector. If you have gke and gce detectors configured in the resourcedetection processor, please update your configuration accordingly. More details: open-telemetry/opentelemetry-collector-contrib#10347

From 0.41.0 to 0.42.0

  • The Splunk OpenTelemetry Collector used to evaluate user configuration twice and this required escaping of each $ symbol with $$ to prevent unwanted environment variable expansion. The issue was fixed in 0.42.0 version. Any occurrences of $$ in your configuration should be replaced with $.

From 0.35.0 to 0.36.0

  • Configuration parameter "exporters -> otlp -> insecure" is moved to "exporters -> otlp -> tls -> insecure".

    More details: open-telemetry/opentelemetry-collector#4063.

    Configuration part for otlp exporter should look like this:

    exporters:
      otlp:
        endpoint: "${SPLUNK_GATEWAY_URL}:4317"
        tls:
          insecure: true

From 0.34.0 to 0.35.0

  • ballast_size_mib parameter moved from memory_limiter processor to memory_ballast extension as size_mib.

    More details: #567.

    Remove ballast_size_mib parameter from memory_limiter and make sure that it's added to memory_ballast extension as size_mib parameter instead:

    extensions:
      memory_ballast:
        size_mib: ${SPLUNK_BALLAST_SIZE_MIB}

Using Upstream OpenTelemetry Collector

It is possible to use the upstream OpenTelemetry Collector instead of this distribution. The following features are not available upstream at this time:

  • Packaging
    • Installer scripts for Linux and Windows
    • Configuration management via Ansible or Puppet
  • Configuration sources
  • Several SignalFx Smart Agent capabilities

⚠️ Splunk only provides best-effort support for upstream OpenTelemetry

In order to use the upstream OpenTelemetry Collector:

  • Use the contrib distribution as commercial exporters must reside in contrib
  • Properly configure the Collector for your particular metrics, traces, and logs use cases, as only a minimal default configuration is provided by the contrib release.

An example configuration for upstream, that ensures infrastructure correlation is properly configured, is available here.

License

Apache Software License version 2.0.

ℹ️  SignalFx was acquired by Splunk in October 2019. See Splunk SignalFx for more information.

More Repositories

1

maestro-ng

Orchestration of Docker-based, multi-host environments
Python
682
star
2

integrations

SignalFx integrations metadata
Python
144
star
3

signalfx-agent

The SignalFx Smart Agent
Go
120
star
4

splunk-otel-collector-chart

Splunk OpenTelemetry Collector for Kubernetes
Smarty
119
star
5

gateway

A proxy to buffer and forward metrics, events, and traces.
Go
97
star
6

swagger-angular-client

AngularJS service for communicating with endpoints described by swagger.
JavaScript
78
star
7

docker-zookeeper

Docker image for ZooKeeper (Maestro orchestration)
Python
69
star
8

golib

Golib contains various useful golang libraries
Go
66
star
9

splunk-otel-java

Splunk Distribution of OpenTelemetry Java
Java
63
star
10

docker-collectd

Collectd within a Docker image
Shell
58
star
11

tracing-examples

Examples of using third-party tracers with SignalFx
PHP
53
star
12

splunk-otel-js-web

Splunk distribution of Open Telemetry for browser environment.
TypeScript
49
star
13

splunk-otel-go

Splunk Distribution of OpenTelemetry Go
Go
47
star
14

signalfx-python

Python client library and instrumentation bindings for SignalFx
Python
43
star
15

splunk-otel-python

Splunk distribution of OpenTelemetry Python
Python
39
star
16

signalfx-java

Java client libraries for SignalFx
Java
37
star
17

splunk-otel-android

Android RUM library and instrumentation
Java
37
star
18

swagger-cli-client

Generates a command-line interface for any Swagger Specification
JavaScript
36
star
19

swagger-client-generator

Automatically generate an api object from a given swagger 1.2 schema
JavaScript
35
star
20

signalflow-library

Modules and Examples of SignalFlow usage
Shell
32
star
21

signalfx-dotnet-tracing

Automatic instrumentations for popular .NET libraries and frameworks. (Deprecated)
C#
32
star
22

fetch-swagger-schema

Given a url to a swagger api-docs spec, loads it and all related resource declarations as one JSON object.
JavaScript
30
star
23

splunk-otel-ios

iOS RUM library and instrumentation
Swift
23
star
24

swagger-validate

Detailed validation of objects against a given swagger model
JavaScript
22
star
25

signalfx-nodejs-tracing

OpenTracing-compatible Auto-Instrumentor for Node.js
JavaScript
21
star
26

splunk-otel-js

Splunk Distribution of OpenTelemetry JavaScript
TypeScript
21
star
27

signalfx-nodejs

Node.js client library for SignalFx
JavaScript
21
star
28

signalfx-python-tracing

OpenTracing-compatible Auto-Instrumentor for Python
Python
20
star
29

apmworkshop

19
star
30

signalfx-php-tracing

OpenTracing-compatible Auto-Instrumentor for PHP (Deprecated)
PHP
18
star
31

splunk-otel-react-native

Java
17
star
32

signalfx-jumpstart

POC in a Box
HCL
17
star
33

swagger-ajax-client

Create XHR clients for Swagger API Specifications
JavaScript
16
star
34

terraform-signalfx-slx

Best practices SLI, SLO and error budget monitoring, visualization and more for organizations using SignalFx
HCL
16
star
35

lambda-python

SignalFx AWS Lambda Python Wrapper
Python
15
star
36

signalflow-cli

Python command-line client for SignalFx SignalFlow™ Analytics
Python
14
star
37

signalfx-go

Go client library and instrumentation bindings for SignalFx
Go
14
star
38

signalfx-go-tracing

Go
13
star
39

collectd-zookeeper

CollectD plugin for ZooKeeper metrics
Python
13
star
40

otelworkshop

Shell
13
star
41

swagger-node-client

Create clients for Swagger API Specifications.
JavaScript
10
star
42

lambda-nodejs

SignalFx AWS Lambda Node.js Wrapper
JavaScript
10
star
43

ruby-rails-instrumentation

OpenTracing instrumentation for Rails
Ruby
10
star
44

signalfx-k8s-metrics-adapter

Horizontal Pod Autoscaler custom/external metrics provider for Kubernetes that uses SignalFx as the backend
Go
10
star
45

splunk-otel-collector-operator

Kubernetes Operator for OpenTelemetry Collector
Go
10
star
46

python-celery

OpenTracing instrumentation for Celery
Python
9
star
47

splunk-forwarder

a custom search command to metricize Splunk logs
Python
9
star
48

signalfx-java-tracing

The SignalFx Java Agent
Java
9
star
49

lambda-layer-versions

8
star
50

app-dev-workshop

Files used for creation of workshop instances, useful tools and anything else!
8
star
51

grafana-signalfx-datasource

JavaScript
7
star
52

signalfx-istio-adapter

An Istio Mixer adapter for sending metrics and trace spans to SignalFx
Go
7
star
53

signalfx-collectd-plugin

SignalFx CollectD plugin
Python
7
star
54

splunk-otel-dotnet

Splunk Distribution of OpenTelemetry .NET
C#
7
star
55

enhanced-rds-monitoring

Lambda for enhanced AWS/RDS monitoring
Python
6
star
56

splunk-otel-collector-heroku

Shell
6
star
57

signalfx-ruby

Ruby client library for SignalFx
Ruby
6
star
58

collectd-build-ubuntu

Shell
5
star
59

splunk-otel-java-lambda

Splunk custom OTEL Java wrapper for AWS lambdas
Java
5
star
60

collectd-rabbitmq

collectd plugin for integration with rabbitmq
Python
5
star
61

splunk-otel-lambda

Splunk distribution of OpenTelemetry Lambda
Shell
5
star
62

s3-util

High-level S3 utilities
JavaScript
5
star
63

pyfilewatch

Watch files and directories in python. Also supports tailing and glob file patterns.
Python
4
star
64

terraform-workshop

Monitoring as code workshop
HCL
4
star
65

maestro-base

Base Docker image for Maestro-enabled components
Shell
4
star
66

signalfx-ruby-tracing

Automatic OpenTracing instrumentation for Ruby
Ruby
4
star
67

circleutil

Utility scripts for circleci
Go
4
star
68

kubectl-splunk

kubectl plugin for interacting with OpenTelemetry deployments
Go
4
star
69

collectd-jenkins

collectd based plugin for Jenkins
Python
3
star
70

aws-log-collector

AWS Lambda function which forwards AWS logs to Splunk Observability.
Python
3
star
71

kong-plugin-signalfx

Kong API Gateway metric aggregator for SignalFx
Lua
3
star
72

call-conduit

Programmatically call phabricator/conduit
JavaScript
3
star
73

signalfx-nodejs-collect

JavaScript
3
star
74

splunk-otel-java-overhead-test

Test tools to help quantify the overhead of the Java instrumentation agents.
Java
3
star
75

gdi-specification

Splunk GDI specification for cross-repository compatibility
Makefile
3
star
76

signalflow-grammar

SignalFx SignalFlow language grammar
ANTLR
3
star
77

sapm-proto

SAPM ProtoBuf
Go
3
star
78

collectd-kong

CollectD plugin for Kong API Gateway
Python
3
star
79

ruby-sequel-instrumentation

Ruby
3
star
80

PerfCounterReporter

Windows service for reporting Windows Performance Counters to SignalFx
C#
3
star
81

alert-assessor

SignalFx Alert Evaluation Tool
Python
3
star
82

puppet_collectd

A Puppet module to install collectd, configure plugins and send metrics
Python
2
star
83

ansible-signalfx-agent

Install and Configure the SignalFx Smart Agent. (Partial mirror of https://github.com/signalfx/signalfx-agent. Do not edit manually.)
2
star
84

aws-cloudformation-templates

CloudFormation templates describing AWS resources to deploy in user's AWS account when setting up AWS integration
Makefile
2
star
85

victorops-field-scripts

Scripts created by the field team utilizing the VictorOps API
Python
2
star
86

collectd-example

Python
2
star
87

Metrics.NET.SignalFx

SignalFx Reporter for Metrics.NET
C#
2
star
88

splunk-otel-ios-crashreporting

Swift
2
star
89

collectd-openstack

CollectdD plugin to monitor OpenStack cloud infrastructure
Python
2
star
90

cadvisor-integration

The SignalFx Metric Data Collector for Kubernetes
Go
2
star
91

replay

Python
2
star
92

splunk-extension-wrapper

Splunk Lambda Extension for Metrics
Go
2
star
93

collectd-couchbase

CollectD plugin for Couchbase metrics
Python
2
star
94

collectd-spark

collectd plugin for monitoring apache spark
Python
2
star
95

catchpoint-integration

How to integrate SignalFx and Catchpoint systems with regards to Synthetic Monitoring and RUM.
2
star
96

opentracing-python-patches

Python
2
star
97

lambda-java

SignalFx AWS Lambda Java Wrapper
Java
2
star
98

lambda-csharp

SignalFx AWS Lambda C# Wrapper
C#
2
star
99

signalfx-cloudfoundry-bridge-boshrelease

A BOSH release of our Cloud Foundry Metric Bridge
Makefile
2
star
100

splunk-otel-ruby

Splunk Distribution of OpenTelemetry Ruby [Deprecated]
Ruby
2
star