From 8b000529fc7ae307ad707d4981fc5d09c0985397 Mon Sep 17 00:00:00 2001 From: Vineeth Pothulapati Date: Thu, 9 Sep 2021 09:28:33 +0530 Subject: [PATCH] Add Splunk Hec receiver (#422) --- pkg/collector/parser/receiver_generic_test.go | 1 + pkg/collector/parser/receiver_splunk-hec.go | 34 +++++++++++++++++++ .../parser/receiver_splunk-hec_test.go | 17 ++++++++++ 3 files changed, 52 insertions(+) create mode 100644 pkg/collector/parser/receiver_splunk-hec.go create mode 100644 pkg/collector/parser/receiver_splunk-hec_test.go diff --git a/pkg/collector/parser/receiver_generic_test.go b/pkg/collector/parser/receiver_generic_test.go index 704fa76d25..0bb6b845b3 100644 --- a/pkg/collector/parser/receiver_generic_test.go +++ b/pkg/collector/parser/receiver_generic_test.go @@ -78,6 +78,7 @@ func TestDownstreamParsers(t *testing.T) { {"fluentforward", "fluentforward", "__fluentforward", 8006, parser.NewFluentForwardReceiverParser}, {"statsd", "statsd", "__statsd", 8125, parser.NewStatsdReceiverParser}, {"influxdb", "influxdb", "__influxdb", 8086, parser.NewInfluxdbReceiverParser}, + {"splunk-hec", "splunk-hec", "__splunk_hec", 8088, parser.NewSplunkHecReceiverParser}, } { t.Run(tt.receiverName, func(t *testing.T) { t.Run("builds successfully", func(t *testing.T) { diff --git a/pkg/collector/parser/receiver_splunk-hec.go b/pkg/collector/parser/receiver_splunk-hec.go new file mode 100644 index 0000000000..09f75a123e --- /dev/null +++ b/pkg/collector/parser/receiver_splunk-hec.go @@ -0,0 +1,34 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package parser + +import "github.com/go-logr/logr" + +const parserNameSplunkHec = "__splunk_hec" + +// NewSplunkHecReceiverParser builds a new parser for Splunk Hec receivers, from the contrib repository. +func NewSplunkHecReceiverParser(logger logr.Logger, name string, config map[interface{}]interface{}) ReceiverParser { + return &GenericReceiver{ + logger: logger, + name: name, + config: config, + defaultPort: 8088, + parserName: parserNameSplunkHec, + } +} + +func init() { + Register("splunk_hec", NewSplunkHecReceiverParser) +} diff --git a/pkg/collector/parser/receiver_splunk-hec_test.go b/pkg/collector/parser/receiver_splunk-hec_test.go new file mode 100644 index 0000000000..3ffc6c0ee0 --- /dev/null +++ b/pkg/collector/parser/receiver_splunk-hec_test.go @@ -0,0 +1,17 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package parser + +// all tests for the Splunk Hec parser are currently part of the test TestDownstreamParsers