fix(build): update go version to 1.16 and dependencies (#2136)

* chore(deps): bump k8s.io/apiextensions-apiserver from 0.19.2 to 0.21.3

Bumps [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) from 0.19.2 to 0.21.3.
- [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases)
- [Commits](https://github.com/kubernetes/apiextensions-apiserver/compare/v0.19.2...v0.21.3)

---
updated-dependencies:
- dependency-name: k8s.io/apiextensions-apiserver
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): bump google.golang.org/api from 0.34.0 to 0.52.0

Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.34.0 to 0.52.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/master/CHANGES.md)
- [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.34.0...v0.52.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* start update dependencies

* update mods and otlp

* fix(build): update to go 1.16

* old version for k8s mods

* update k8s versions

* update orbos

* with batcher

* add batch span processor

* try with older otel version 0.20

* remove syncer

* otel rc2

* fix config

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Stefan Benz <stefan@caos.ch>
This commit is contained in:
Silvan
2021-08-10 07:27:27 +02:00
committed by GitHub
parent 270d1fcf65
commit 8609ced24b
13 changed files with 562 additions and 439 deletions

View File

@@ -2,8 +2,9 @@ package metrics
import (
"context"
"go.opentelemetry.io/otel/api/metric"
"net/http"
"go.opentelemetry.io/otel/metric"
)
const (

View File

@@ -2,13 +2,19 @@ package otel
import (
"context"
caos_errs "github.com/caos/zitadel/internal/errors"
"github.com/caos/zitadel/internal/telemetry/metrics"
"go.opentelemetry.io/otel/api/metric"
"go.opentelemetry.io/otel/exporters/metric/prometheus"
"go.opentelemetry.io/otel/label"
"net/http"
"sync"
label "go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/exporters/metric/prometheus"
"go.opentelemetry.io/otel/metric"
export "go.opentelemetry.io/otel/sdk/export/metric"
controller "go.opentelemetry.io/otel/sdk/metric/controller/basic"
processor "go.opentelemetry.io/otel/sdk/metric/processor/basic"
selector "go.opentelemetry.io/otel/sdk/metric/selector/simple"
caos_errs "github.com/caos/zitadel/internal/errors"
"github.com/caos/zitadel/internal/telemetry/metrics"
)
type Metrics struct {
@@ -20,8 +26,15 @@ type Metrics struct {
}
func NewMetrics(meterName string) (metrics.Metrics, error) {
exporter, err := prometheus.NewExportPipeline(
exporter, err := prometheus.New(
prometheus.Config{},
controller.New(
processor.New(
selector.NewWithHistogramDistribution(),
export.CumulativeExportKindSelector(),
processor.WithMemory(true),
),
),
)
if err != nil {
return &Metrics{}, err

View File

@@ -5,10 +5,11 @@ import (
"strings"
texporter "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace"
sdk_trace "go.opentelemetry.io/otel/sdk/trace"
"github.com/caos/zitadel/internal/errors"
"github.com/caos/zitadel/internal/telemetry/tracing"
"github.com/caos/zitadel/internal/telemetry/tracing/otel"
sdk_trace "go.opentelemetry.io/otel/sdk/trace"
)
type Config struct {
@@ -27,7 +28,7 @@ func (c *Config) NewTracer() error {
}
sampler := sdk_trace.ParentBased(sdk_trace.TraceIDRatioBased(c.Fraction))
exporter, err := texporter.NewExporter(texporter.WithProjectID(c.ProjectID))
exporter, err := texporter.New(texporter.WithProjectID(c.ProjectID))
if err != nil {
return err
}

View File

@@ -3,7 +3,7 @@ package log
import (
"github.com/caos/zitadel/internal/telemetry/tracing"
"github.com/caos/zitadel/internal/telemetry/tracing/otel"
"go.opentelemetry.io/otel/exporters/stdout"
stdout "go.opentelemetry.io/otel/exporters/stdout/stdouttrace"
sdk_trace "go.opentelemetry.io/otel/sdk/trace"
)
@@ -18,7 +18,7 @@ type Tracer struct {
func (c *Config) NewTracer() error {
sampler := sdk_trace.ParentBased(sdk_trace.TraceIDRatioBased(c.Fraction))
exporter, err := stdout.NewExporter(stdout.WithPrettyPrint())
exporter, err := stdout.New(stdout.WithPrettyPrint())
if err != nil {
return err
}

View File

@@ -1,8 +1,10 @@
package otel
import (
"context"
"github.com/caos/zitadel/internal/telemetry/tracing"
"go.opentelemetry.io/otel/exporters/otlp"
otlpgrpc "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
sdk_trace "go.opentelemetry.io/otel/sdk/trace"
)
@@ -14,7 +16,7 @@ type Config struct {
func (c *Config) NewTracer() error {
sampler := sdk_trace.ParentBased(sdk_trace.TraceIDRatioBased(c.Fraction))
exporter, err := otlp.NewExporter(otlp.WithAddress(c.Endpoint), otlp.WithInsecure())
exporter, err := otlpgrpc.New(context.Background(), otlpgrpc.WithEndpoint(c.Endpoint), otlpgrpc.WithInsecure())
if err != nil {
return err
}

View File

@@ -4,12 +4,12 @@ import (
"context"
"net/http"
"github.com/caos/zitadel/internal/telemetry/tracing"
"go.opentelemetry.io/otel/api/global"
api_trace "go.opentelemetry.io/otel/api/trace"
"go.opentelemetry.io/otel/propagators"
"go.opentelemetry.io/otel/sdk/export/trace"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/propagation"
sdk_trace "go.opentelemetry.io/otel/sdk/trace"
api_trace "go.opentelemetry.io/otel/trace"
"github.com/caos/zitadel/internal/telemetry/tracing"
)
type Tracer struct {
@@ -17,15 +17,17 @@ type Tracer struct {
sampler sdk_trace.Sampler
}
func NewTracer(name string, sampler sdk_trace.Sampler, exporter trace.SpanExporter) *Tracer {
func NewTracer(name string, sampler sdk_trace.Sampler, exporter sdk_trace.SpanExporter) *Tracer {
spanProcessor := sdk_trace.NewBatchSpanProcessor(exporter)
tp := sdk_trace.NewTracerProvider(
sdk_trace.WithConfig(sdk_trace.Config{DefaultSampler: sampler}),
sdk_trace.WithSyncer(exporter),
sdk_trace.WithSampler(sampler),
sdk_trace.WithBatcher(exporter),
sdk_trace.WithSpanProcessor(spanProcessor),
)
global.SetTracerProvider(tp)
tc := propagators.TraceContext{}
global.SetTextMapPropagator(tc)
otel.SetTracerProvider(tp)
tc := propagation.TraceContext{}
otel.SetTextMapPropagator(tc)
return &Tracer{Exporter: tp.Tracer(name), sampler: sampler}
}
@@ -54,11 +56,11 @@ func (t *Tracer) NewSpan(ctx context.Context, caller string) (context.Context, *
return t.newSpan(ctx, caller)
}
func (t *Tracer) newSpan(ctx context.Context, caller string, options ...api_trace.SpanOption) (context.Context, *tracing.Span) {
func (t *Tracer) newSpan(ctx context.Context, caller string, options ...api_trace.SpanStartOption) (context.Context, *tracing.Span) {
return t.newSpanFromName(ctx, caller, options...)
}
func (t *Tracer) newSpanFromName(ctx context.Context, name string, options ...api_trace.SpanOption) (context.Context, *tracing.Span) {
func (t *Tracer) newSpanFromName(ctx context.Context, name string, options ...api_trace.SpanStartOption) (context.Context, *tracing.Span) {
ctx, span := t.Exporter.Start(ctx, name, options...)
return ctx, tracing.CreateSpan(span)
}

View File

@@ -1,21 +1,18 @@
package tracing
import (
"context"
grpc_errs "github.com/caos/zitadel/internal/api/grpc/errors"
api_trace "go.opentelemetry.io/otel/api/trace"
"go.opentelemetry.io/otel/codes"
"go.opentelemetry.io/otel/label"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/trace"
)
type Span struct {
span api_trace.Span
opts []api_trace.SpanOption
span trace.Span
opts []trace.SpanEndOption
}
func CreateSpan(span api_trace.Span) *Span {
return &Span{span: span, opts: []api_trace.SpanOption{}}
func CreateSpan(span trace.Span) *Span {
return &Span{span: span, opts: []trace.SpanEndOption{}}
}
func (s *Span) End() {
@@ -36,9 +33,13 @@ func (s *Span) SetStatusByError(err error) {
return
}
if err != nil {
s.span.RecordError(context.TODO(), err, api_trace.WithErrorStatus(codes.Error))
// trace.WithErrorStatus(codes.Error)
s.span.RecordError(err)
s.span.SetAttributes(
attribute.KeyValue{},
)
}
code, msg, id, _ := grpc_errs.ExtractCaosError(err)
s.span.SetAttributes(label.Uint32("grpc_code", uint32(code)), label.String("grpc_msg", msg), label.String("error_id", id))
s.span.SetAttributes(attribute.Int("grpc_code", int(code)), attribute.String("grpc_msg", msg), attribute.String("error_id", id))
}

View File

@@ -4,8 +4,8 @@ import (
"context"
"net/http"
api_trace "go.opentelemetry.io/otel/api/trace"
sdk_trace "go.opentelemetry.io/otel/sdk/trace"
api_trace "go.opentelemetry.io/otel/trace"
)
type Tracer interface {
@@ -81,5 +81,5 @@ func NewSpanHTTP(r *http.Request) (*http.Request, *Span) {
}
func TraceIDFromCtx(ctx context.Context) string {
return api_trace.SpanFromContext(ctx).SpanContext().TraceID.String()
return api_trace.SpanFromContext(ctx).SpanContext().TraceID().String()
}