Skip to content

Commit

Permalink
bump opentelemetry to v1.0.1 (trickstercache#585)
Browse files Browse the repository at this point in the history
* update otel to 1.0.1 (+vendor)

* update packages for otel 1.x

* fix typos in unrelated doc
  • Loading branch information
jranson authored Oct 9, 2021
1 parent 2c111a5 commit af0deeb
Show file tree
Hide file tree
Showing 310 changed files with 17,582 additions and 36,176 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ Trickster Helm Charts are located at <https://helm.tricksterproxy.io> for instal
### Building from source

To build Trickster from the source code yourself you need to have a working
Go environment with [version 1.16 or greater installed](http://golang.org/doc/install).
Go environment with [version 1.17 or greater installed](http://golang.org/doc/install).

You can directly use the `go` tool to download and install the `trickster`
binary into your `GOPATH`:
Expand Down
2 changes: 1 addition & 1 deletion docs/alb.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ This mechanism is useful in applications such as live internet television. Consi

#### Custom Good Status Codes List

By default, fgr will return the first repsonse with a status code < 400. However, you can optionally provide an explicit list of good status codes using the `fgr_status_codes` configuration settting, as shown in the example below. When set, Trickster will return the first response to be returned that has a status code found in the configured list.
By default, fgr will return the first response with a status code < 400. However, you can optionally provide an explicit list of good status codes using the `fgr_status_codes` configuration setting, as shown in the example below. When set, Trickster will return the first response to be returned that has a status code found in the configured list.

#### First Good Response Configuration Example

Expand Down
25 changes: 7 additions & 18 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ require (
github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a // indirect
github.com/alicebob/miniredis v2.5.0+incompatible
github.com/andybalholm/brotli v1.0.3
github.com/benbjohnson/clock v1.1.0 // indirect
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/dgraph-io/badger v1.6.2
github.com/dgraph-io/ristretto v0.1.0 // indirect
Expand All @@ -27,40 +26,30 @@ require (
github.com/trickstercache/mockster v1.1.2
github.com/yuin/gopher-lua v0.0.0-20210529063254-f4c35e4016d9 // indirect
go.etcd.io/bbolt v1.3.6
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.19.0
go.opentelemetry.io/otel v0.19.0
go.opentelemetry.io/otel/exporters/stdout v0.19.0
go.opentelemetry.io/otel/exporters/trace/jaeger v0.19.0
go.opentelemetry.io/otel/exporters/trace/zipkin v0.19.0
go.opentelemetry.io/otel/sdk v0.19.0
go.opentelemetry.io/otel/trace v0.19.0
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.25.0
go.opentelemetry.io/otel v1.0.1
go.opentelemetry.io/otel/exporters/jaeger v1.0.1
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.0.1
go.opentelemetry.io/otel/exporters/zipkin v1.0.1
go.opentelemetry.io/otel/sdk v1.0.1
go.opentelemetry.io/otel/trace v1.0.1
golang.org/x/net v0.0.0-20210903162142-ad29c8ab022f
golang.org/x/sys v0.0.0-20210903071746-97244b99971b // indirect
google.golang.org/api v0.56.0 // indirect
google.golang.org/protobuf v1.27.1 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.0.0
gopkg.in/yaml.v2 v2.4.0
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
)

require (
github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/dustin/go-humanize v1.0.0 // indirect
github.com/go-logfmt/logfmt v0.5.0 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
github.com/openzipkin/zipkin-go v0.2.5 // indirect
github.com/philhofer/fwd v1.1.1 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/prometheus/client_model v0.2.0 // indirect
github.com/prometheus/procfs v0.6.0 // indirect
github.com/stretchr/testify v1.7.0 // indirect
go.opentelemetry.io/contrib v0.19.0 // indirect
go.opentelemetry.io/otel/metric v0.19.0 // indirect
go.opentelemetry.io/otel/sdk/export/metric v0.19.0 // indirect
go.opentelemetry.io/otel/sdk/metric v0.19.0 // indirect
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
)
162 changes: 15 additions & 147 deletions go.sum

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion pkg/observability/tracing/errors/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,8 @@ package errors

import "errors"

// ErrNoTracerOptions is an error when the user calls GetTracer with nil *Options
// ErrNoTracerOptions is an error for when GetTracer is called with nil *Options
var ErrNoTracerOptions = errors.New("no tracer options provided")

// ErrInvalidEndpointURL is an error for when the endpoint URL is invalid for the provider
var ErrInvalidEndpointURL = errors.New("invalid endpoint url")
45 changes: 26 additions & 19 deletions pkg/observability/tracing/exporters/jaeger/jaeger.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,26 +14,27 @@
* limitations under the License.
*/

// Package jaeger provides a Jager Tracer
// Package jaeger provides a Jaeger Tracer
package jaeger

import (
"strings"

"github.com/trickstercache/trickster/v2/pkg/observability/tracing"
errs "github.com/trickstercache/trickster/v2/pkg/observability/tracing/errors"
"github.com/trickstercache/trickster/v2/pkg/observability/tracing/options"

"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/exporters/trace/jaeger"
"go.opentelemetry.io/otel/exporters/jaeger"
sdktrace "go.opentelemetry.io/otel/sdk/trace"
"go.opentelemetry.io/otel/trace"
)

// NewTracer returns a new Jaeger Tracer based on the provided options
func NewTracer(options *options.Options) (*tracing.Tracer, error) {
// New returns a new Jaeger Tracer based on the provided options
func New(options *options.Options) (*tracing.Tracer, error) {

var tp trace.TracerProvider
var err error
var flusher func()

if options == nil {
return nil, errs.ErrNoTracerOptions
Expand All @@ -53,44 +54,50 @@ func NewTracer(options *options.Options) (*tracing.Tracer, error) {
if options.Tags != nil && len(options.Tags) > 0 {
tags = make([]attribute.KeyValue, len(options.Tags))
for k, v := range options.Tags {
// TODO: just discovered that these aren't actually being used
tags = append(tags, attribute.String(k, v))
}
}

var eo jaeger.EndpointOption
if options.JaegerOptions != nil {
if options.JaegerOptions.EndpointType == "agent" {
eo = jaeger.WithAgentEndpoint(options.CollectorURL)
parts := strings.Split(options.CollectorURL, ":")
if len(parts) != 2 {
return nil, errs.ErrInvalidEndpointURL
}
eo = jaeger.WithAgentEndpoint(jaeger.WithAgentHost(parts[0]), jaeger.WithAgentPort(parts[1]))
}
}
if eo == nil {
ceo := make([]jaeger.CollectorEndpointOption, 0)
if eo == nil { // by default assume a "collector" config
ceo := make([]jaeger.CollectorEndpointOption, 1, 3)
ceo[0] = jaeger.WithEndpoint(options.CollectorURL)
if options.CollectorUser != "" {
ceo = append(ceo, jaeger.WithUsername(options.CollectorUser))
}
if options.CollectorPass != "" {
ceo = append(ceo, jaeger.WithPassword(options.CollectorPass))
}
eo = jaeger.WithCollectorEndpoint(options.CollectorURL, ceo...)
eo = jaeger.WithCollectorEndpoint(ceo...)
}

// Create Tracing Provider
tp, flusher, err = jaeger.NewExportPipeline(eo,
jaeger.WithSDKOptions(
sdktrace.WithSampler(sampler),
),
)
exporter, err := jaeger.New(eo)
if err != nil {
return nil, err
}

tp = sdktrace.NewTracerProvider(
sdktrace.WithBatcher(exporter),
sdktrace.WithSampler(sampler),
)

tracer := tp.Tracer(options.Name)

return &tracing.Tracer{
Name: options.Name,
Tracer: tracer,
Options: options,
Flusher: flusher,
Name: options.Name,
Tracer: tracer,
Options: options,
ShutdownFunc: exporter.Shutdown,
}, nil

}
12 changes: 6 additions & 6 deletions pkg/observability/tracing/exporters/jaeger/jaeger_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ import (
"github.com/trickstercache/trickster/v2/pkg/observability/tracing/options"
)

func TestNewTracer(t *testing.T) {
func TestNew(t *testing.T) {

_, err := NewTracer(nil)
_, err := New(nil)
if err != errs.ErrNoTracerOptions {
t.Error("expected error for no tracer options")
}
Expand All @@ -37,25 +37,25 @@ func TestNewTracer(t *testing.T) {
opt.CollectorUser = "abc"
opt.CollectorPass = "123"

_, err = NewTracer(opt)
_, err = New(opt)
if err != nil {
t.Error(err)
}

opt.SampleRate = 1
_, err = NewTracer(opt)
_, err = New(opt)
if err != nil {
t.Error(err)
}

opt.SampleRate = 0.5
_, err = NewTracer(opt)
_, err = New(opt)
if err != nil {
t.Error(err)
}

opt.JaegerOptions.EndpointType = "agent"
_, err = NewTracer(opt)
_, err = New(opt)
if err != nil {
t.Error(err)
}
Expand Down
4 changes: 2 additions & 2 deletions pkg/observability/tracing/exporters/noop/noop.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import (
"github.com/trickstercache/trickster/v2/pkg/observability/tracing/options"
)

// NewTracer returns a new Noop Tracer
func NewTracer(options *options.Options) (*tracing.Tracer, error) {
// New returns a new Noop Tracer
func New(options *options.Options) (*tracing.Tracer, error) {
return nil, nil
}
4 changes: 2 additions & 2 deletions pkg/observability/tracing/exporters/noop/noop_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ import (
"github.com/trickstercache/trickster/v2/pkg/observability/tracing/options"
)

func TestNewTracer(t *testing.T) {
func TestNew(t *testing.T) {

o := options.New()
_, err := NewTracer(o)
_, err := New(o)
if err != nil {
t.Error(err)
}
Expand Down
10 changes: 5 additions & 5 deletions pkg/observability/tracing/exporters/stdout/stdout.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ import (
"github.com/trickstercache/trickster/v2/pkg/observability/tracing/options"

"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/exporters/stdout"
stdout "go.opentelemetry.io/otel/exporters/stdout/stdouttrace"
"go.opentelemetry.io/otel/sdk/resource"
sdktrace "go.opentelemetry.io/otel/sdk/trace"
)

// NewTracer returns a new Stdout Tracer
func NewTracer(opts *options.Options) (*tracing.Tracer, error) {
// New returns a new Stdout Tracer
func New(opts *options.Options) (*tracing.Tracer, error) {

var exp *stdout.Exporter
var err error
Expand All @@ -50,7 +50,7 @@ func NewTracer(opts *options.Options) (*tracing.Tracer, error) {
}

// Create Basic Stdout Exporter
exp, err = stdout.NewExporter(o...)
exp, err = stdout.New(o...)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -81,7 +81,7 @@ func NewTracer(opts *options.Options) (*tracing.Tracer, error) {

tp := sdktrace.NewTracerProvider(sdktrace.WithSyncer(exp),
sdktrace.WithSampler(sampler),
sdktrace.WithResource(resource.NewWithAttributes(tags...)),
sdktrace.WithResource(resource.NewWithAttributes("", tags...)),
)

tracer := tp.Tracer(opts.Name)
Expand Down
12 changes: 6 additions & 6 deletions pkg/observability/tracing/exporters/stdout/stdout_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ import (
"github.com/trickstercache/trickster/v2/pkg/observability/tracing/options"
)

func TestNewTracer(t *testing.T) {
func TestNew(t *testing.T) {

_, err := NewTracer(nil)
_, err := New(nil)
if err != nil {
t.Error(err)
}
Expand All @@ -37,25 +37,25 @@ func TestNewTracer(t *testing.T) {
opt.CollectorPass = "123"
opt.StdOutOptions.PrettyPrint = true

_, err = NewTracer(opt)
_, err = New(opt)
if err != nil {
t.Error(err)
}

opt.SampleRate = 1
_, err = NewTracer(opt)
_, err = New(opt)
if err != nil {
t.Error(err)
}

opt.SampleRate = 0.5
_, err = NewTracer(opt)
_, err = New(opt)
if err != nil {
t.Error(err)
}

opt.JaegerOptions.EndpointType = "agent"
_, err = NewTracer(opt)
_, err = New(opt)
if err != nil {
t.Error(err)
}
Expand Down
11 changes: 5 additions & 6 deletions pkg/observability/tracing/exporters/zipkin/zipkin.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ import (
errs "github.com/trickstercache/trickster/v2/pkg/observability/tracing/errors"
"github.com/trickstercache/trickster/v2/pkg/observability/tracing/options"

"go.opentelemetry.io/otel/exporters/trace/zipkin"
"go.opentelemetry.io/otel/exporters/zipkin"
sdktrace "go.opentelemetry.io/otel/sdk/trace"
)

// NewTracer returns a new Zipkin Tracer
func NewTracer(options *options.Options) (*tracing.Tracer, error) {
// New returns a new Zipkin Tracer
func New(options *options.Options) (*tracing.Tracer, error) {

var tp *sdktrace.TracerProvider
var err error
Expand All @@ -46,9 +46,8 @@ func NewTracer(options *options.Options) (*tracing.Tracer, error) {
sampler = sdktrace.TraceIDRatioBased(options.SampleRate)
}

exporter, err := zipkin.NewRawExporter(
exporter, err := zipkin.New(
options.CollectorURL,
zipkin.WithSDKOptions(sdktrace.WithSampler(sampler)),
)
if err != nil {
return nil, err
Expand All @@ -59,6 +58,7 @@ func NewTracer(options *options.Options) (*tracing.Tracer, error) {
sdktrace.WithBatchTimeout(5),
sdktrace.WithMaxExportBatchSize(10),
),
sdktrace.WithSampler(sampler),
)

tracer := tp.Tracer(options.Name)
Expand All @@ -67,7 +67,6 @@ func NewTracer(options *options.Options) (*tracing.Tracer, error) {
Name: options.Name,
Tracer: tracer,
Options: options,
Flusher: nil,
}, nil

}
Loading

0 comments on commit af0deeb

Please sign in to comment.