Skip to content

Commit

Permalink
Logzio exporter final (#1372)
Browse files Browse the repository at this point in the history
Added a logz.io traces exporter

**Link to tracking Issue**: open-telemetry#686

**Testing**: Added test for each of the components in the new exporter

**Documentation**: Added a readme specifying how to use the exporter and its parameters with an example.
  • Loading branch information
yyyogev committed Oct 26, 2020
1 parent 4a580a2 commit 98d4852
Show file tree
Hide file tree
Showing 9 changed files with 52 additions and 16 deletions.
2 changes: 2 additions & 0 deletions cmd/otelcontribcol/components.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/honeycombexporter"
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/jaegerthrifthttpexporter"
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kinesisexporter"
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/logzioexporter"
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/newrelicexporter"
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter"
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sentryexporter"
Expand Down Expand Up @@ -123,6 +124,7 @@ func components() (component.Factories, error) {
honeycombexporter.NewFactory(),
jaegerthrifthttpexporter.NewFactory(),
kinesisexporter.NewFactory(),
logzioexporter.NewFactory(),
newrelicexporter.NewFactory(),
sapmexporter.NewFactory(),
sentryexporter.NewFactory(),
Expand Down
2 changes: 1 addition & 1 deletion exporter/logzioexporter/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func TestLoadConfig(tester *testing.T) {

config := cfg.Exporters["logzio/2"].(*Config)
assert.Equal(tester, &Config{
ExporterSettings: configmodels.ExporterSettings{NameVal: "logzio/2"},
ExporterSettings: configmodels.ExporterSettings{TypeVal: typeStr, NameVal: "logzio/2"},
Token: "logzioTESTtoken",
Region: "eu",
CustomEndpoint: "https://some-url.com:8888",
Expand Down
31 changes: 31 additions & 0 deletions exporter/logzioexporter/example/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
receivers:
opencensus:
zipkin:
endpoint: :9411
jaeger:
protocols:
thrift_http:


exporters:
logzio:
account_token: "<<LOGZIO_ACCOUNT_TOKEN>>"

processors:
batch:
queued_retry:

extensions:
pprof:
endpoint: :1777
zpages:
endpoint: :55679
health_check:

service:
extensions: [health_check, pprof, zpages]
pipelines:
traces:
receivers: [opencensus, jaeger, zipkin]
processors: [batch, queued_retry]
exporters: [logzio]
7 changes: 2 additions & 5 deletions exporter/logzioexporter/exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,10 @@ type logzioExporter struct {
accountToken string
writer *store.LogzioSpanWriter
logger hclog.Logger
WriteSpanFunc func(span *model.Span) error
WriteSpanFunc func(ctx context.Context, span *model.Span) error
InternalTracesToJaegerTraces func(td pdata.Traces) ([]*model.Batch, error)
}

//var WriteSpanFunc func(span *model.Span) error
//var InternalTracesToJaegerTraces = jaeger.InternalTracesToJaegerProto

func newLogzioExporter(config *Config, params component.ExporterCreateParams) (*logzioExporter, error) {
logger := Hclog2ZapLogger{
Zap: params.Logger,
Expand Down Expand Up @@ -97,7 +94,7 @@ func (exporter *logzioExporter) pushTraceData(ctx context.Context, traces pdata.
for _, batch := range batches {
for _, span := range batch.Spans {
span.Process = batch.Process
if err := exporter.WriteSpanFunc(span); err != nil {
if err := exporter.WriteSpanFunc(ctx, span); err != nil {
exporter.logger.Debug(fmt.Sprintf("dropped bad span: %s", span.String()))
droppedSpans++
}
Expand Down
2 changes: 1 addition & 1 deletion exporter/logzioexporter/exporter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ func TestWriteSpanError(tester *testing.T) {
exporter, _ := newLogzioExporter(&cfg, params)
oldFunc := exporter.WriteSpanFunc
defer func() { exporter.WriteSpanFunc = oldFunc }()
exporter.WriteSpanFunc = func(*model.Span) error {
exporter.WriteSpanFunc = func(context.Context, *model.Span) error {
return errors.New("fail")
}
droppedSpans, _ := exporter.pushTraceData(context.Background(), internaldata.OCToTraceData(td))
Expand Down
4 changes: 4 additions & 0 deletions exporter/logzioexporter/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ func NewFactory() component.ExporterFactory {

func createDefaultConfig() configmodels.Exporter {
return &Config{
ExporterSettings: configmodels.ExporterSettings{
TypeVal: configmodels.Type(typeStr),
NameVal: typeStr,
},
Region: "",
Token: "",
}
Expand Down
5 changes: 3 additions & 2 deletions exporter/logzioexporter/go.mod
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
module github.com/open-telemetry/opentelemetry-collector-contrib/exporter/logzioexporter

go 1.14

require (
github.com/census-instrumentation/opencensus-proto v0.3.0
github.com/hashicorp/go-hclog v0.14.0
github.com/jaegertracing/jaeger v1.19.2
github.com/logzio/jaeger-logzio v0.0.0-20200826115713-de8961d427e3
github.com/jaegertracing/jaeger v1.20.0
github.com/logzio/jaeger-logzio v0.0.0-20201026090333-8336e3e13ec6
github.com/stretchr/testify v1.6.1
go.opentelemetry.io/collector v0.11.1-0.20201001213035-035aa5cf6c92
go.uber.org/zap v1.16.0
Expand Down
12 changes: 5 additions & 7 deletions exporter/logzioexporter/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -719,8 +719,10 @@ github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
github.com/logzio/jaeger-logzio v0.0.0-20200826115713-de8961d427e3 h1:iSTxZpL5OrJ4EFn4UBdqR86H3LZsQjB1V6j/PRvRJi8=
github.com/logzio/jaeger-logzio v0.0.0-20200826115713-de8961d427e3/go.mod h1:IJNFQXhcR8k/FmkCcs44NZ4lB2cIOZqp5WePihH6kPQ=
github.com/logzio/jaeger-logzio v0.0.0-20201022141315-1444d8800b9d h1:hJ091LeclzEl4ZCWH23FPgagCk+GRLAgE7Gv/FnOyT8=
github.com/logzio/jaeger-logzio v0.0.0-20201022141315-1444d8800b9d/go.mod h1:IJNFQXhcR8k/FmkCcs44NZ4lB2cIOZqp5WePihH6kPQ=
github.com/logzio/jaeger-logzio v0.0.0-20201026090333-8336e3e13ec6 h1:VyYJFZWRUgpUnHlx7lCHyHQH6+JBZU7QI46KehsMI28=
github.com/logzio/jaeger-logzio v0.0.0-20201026090333-8336e3e13ec6/go.mod h1:2WsHadygpe1LFwMGwWstmqGHMMY5JgvxjtdlGR8Mxyw=
github.com/logzio/logzio-go v0.0.0-20190421083739-334c774b7aeb h1:PflbncrX+y6QoLgeSnX+2NonVJeQL/gM9wcnAQcQdto=
github.com/logzio/logzio-go v0.0.0-20190421083739-334c774b7aeb/go.mod h1:OBprCVuGvtyYcaCmYjE32bF12d5AAHeXS5xI0QbIXMI=
github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
Expand Down Expand Up @@ -869,8 +871,8 @@ github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnh
github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
github.com/openzipkin/zipkin-go v0.2.4-0.20200818204336-dc18516bbb4c h1:r2TNN46RxW319R/erz4ZBF2R0U2hbGQejvSMo8vecAw=
github.com/openzipkin/zipkin-go v0.2.4-0.20200818204336-dc18516bbb4c/go.mod h1:KpXfKdgRDnnhsxw4pNIH9Md5lyFqKUa4YDFlwRYAMyE=
github.com/orijtech/prometheus-go-metrics-exporter v0.0.5 h1:76JFgRIgNDA3pW1fUhmqinU2u5ndHv1gvapDfGG+7/c=
github.com/orijtech/prometheus-go-metrics-exporter v0.0.5/go.mod h1:BiTx/ugZex8LheBk3j53tktWaRdFjV5FCfT2o0P7msE=
github.com/orijtech/prometheus-go-metrics-exporter v0.0.6/go.mod h1:BiTx/ugZex8LheBk3j53tktWaRdFjV5FCfT2o0P7msE=
github.com/ory/go-acc v0.2.6 h1:YfI+L9dxI7QCtWn2RbawqO0vXhiThdXu/RgizJBbaq0=
github.com/ory/go-acc v0.2.6/go.mod h1:4Kb/UnPcT8qRAk3IAxta+hvVapdxTLWtrr7bFLlEgpw=
github.com/ory/viper v1.7.5 h1:+xVdq7SU3e1vNaCsk/ixsfxE4zylk1TJUiJrY647jUE=
Expand Down Expand Up @@ -1115,8 +1117,6 @@ github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMW
github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
github.com/uber/jaeger-lib v2.3.0+incompatible h1:B/kUIXcj6kIU3WSXgeJ7/uYj94I/r0LDa//JKgN/Sf0=
github.com/uber/jaeger-lib v2.3.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
github.com/uber/jaeger-lib v2.4.0+incompatible h1:fY7QsGQWiCt8pajv4r7JEvmATdCVaWxXbjwyYwsNaLQ=
github.com/uber/jaeger-lib v2.4.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
github.com/uber/tchannel-go v1.16.0/go.mod h1:Rrgz1eL8kMjW/nEzZos0t+Heq0O4LhnUJVA32OvWKHo=
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
Expand Down Expand Up @@ -1164,8 +1164,6 @@ go.opencensus.io v0.22.4 h1:LYy1Hy3MJdrCdMwwzxA/dRok4ejH+RwNGbuoD9fCjto=
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opentelemetry.io/collector v0.11.1-0.20201001213035-035aa5cf6c92 h1:z5AXsWmDtjIxqzXEwJ1x3h9O0rULfDsOyQSjLVhbCYs=
go.opentelemetry.io/collector v0.11.1-0.20201001213035-035aa5cf6c92/go.mod h1:0ZWvtVt93b6eP5KMtVP3XGch07aqtU8YNKWFUJkgGR0=
go.opentelemetry.io/collector v0.11.1-0.20201006165100-07236c11fb27 h1:FflsmcoJxW74nE/AlTfxkD3dKZOJcfTyjfkWJ80Oe/M=
go.opentelemetry.io/collector v0.11.1-0.20201006165100-07236c11fb27/go.mod h1:mKQha2MeRhJi0rHS8yvZlzFk28ZVBCf6qMTsjGX0n1Y=
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
Expand Down
3 changes: 3 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ require (
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/honeycombexporter v0.0.0-00010101000000-000000000000
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/jaegerthrifthttpexporter v0.0.0-00010101000000-000000000000
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kinesisexporter v0.0.0-00010101000000-000000000000
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/logzioexporter v0.0.0-00010101000000-000000000000
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/newrelicexporter v0.0.0-00010101000000-000000000000
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.0.0-00010101000000-000000000000
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sentryexporter v0.0.0-00010101000000-000000000000
Expand Down Expand Up @@ -85,6 +86,8 @@ replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/newre

replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kinesisexporter => ./exporter/kinesisexporter

replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/logzioexporter => ./exporter/logzioexporter

replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter => ./exporter/sapmexporter

replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sentryexporter => ./exporter/sentryexporter
Expand Down

0 comments on commit 98d4852

Please sign in to comment.