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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 562 additions and 439 deletions

View File

@ -6,7 +6,7 @@ ARG ENV=prod
## Go base build ## Go base build
## Speed up this step by mounting your local go mod pkg directory ## Speed up this step by mounting your local go mod pkg directory
####################### #######################
FROM golang:1.15 as go-base FROM golang:1.16 as go-base
WORKDIR src/github.com/caos/zitadel/ WORKDIR src/github.com/caos/zitadel/
COPY go.mod go.sum ./ COPY go.mod go.sum ./

View File

@ -1,4 +1,4 @@
ARG GO_VERSION=1.15 ARG GO_VERSION=1.16
####################### #######################
## These steps set platform / arch type specific variables ## These steps set platform / arch type specific variables

102
go.mod
View File

@ -1,92 +1,86 @@
module github.com/caos/zitadel module github.com/caos/zitadel
go 1.15 go 1.16
require ( require (
cloud.google.com/go v0.71.0 // indirect cloud.google.com/go/storage v1.16.0
cloud.google.com/go/storage v1.10.0 github.com/BurntSushi/toml v0.4.1
github.com/BurntSushi/toml v0.3.1
github.com/DATA-DOG/go-sqlmock v1.5.0 github.com/DATA-DOG/go-sqlmock v1.5.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v0.13.0 github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.0.0-RC2
github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/goutils v1.1.1 // indirect
github.com/Masterminds/semver v1.5.0 // indirect github.com/Masterminds/semver v1.5.0 // indirect
github.com/Masterminds/sprig v2.22.0+incompatible github.com/Masterminds/sprig v2.22.0+incompatible
github.com/VictoriaMetrics/fastcache v1.5.7 github.com/VictoriaMetrics/fastcache v1.6.0
github.com/ajstarks/svgo v0.0.0-20200725142600-7a3c8b57fecb github.com/ajstarks/svgo v0.0.0-20210406150507-75cfd577ce75
github.com/allegro/bigcache v1.2.1 github.com/allegro/bigcache v1.2.1
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc github.com/boombuler/barcode v1.0.1
github.com/caos/logging v0.0.2 github.com/caos/logging v0.0.2
github.com/caos/oidc v0.15.7 github.com/caos/oidc v0.15.7
github.com/caos/orbos v1.5.14-0.20210727080455-c90c315021f5 github.com/caos/orbos v1.5.14-0.20210803090517-905668247c09
github.com/cockroachdb/cockroach-go/v2 v2.1.0 github.com/cockroachdb/cockroach-go/v2 v2.1.1
github.com/docker/go-metrics v0.0.1 // indirect github.com/duo-labs/webauthn v0.0.0-20210727191636-9f1b88ef44cc
github.com/duo-labs/webauthn v0.0.0-20200714211715-1daaee874e43
github.com/envoyproxy/protoc-gen-validate v0.6.1 github.com/envoyproxy/protoc-gen-validate v0.6.1
github.com/getsentry/sentry-go v0.11.0 github.com/getsentry/sentry-go v0.11.0
github.com/ghodss/yaml v1.0.0 github.com/ghodss/yaml v1.0.0
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b github.com/golang/glog v0.0.0-20210429001901-424d2337a529
github.com/golang/mock v1.6.0 github.com/golang/mock v1.6.0
github.com/golang/protobuf v1.5.2 github.com/golang/protobuf v1.5.2
github.com/golang/snappy v0.0.2 // indirect github.com/gorilla/csrf v1.7.1
github.com/gorilla/csrf v1.7.0
github.com/gorilla/mux v1.8.0 github.com/gorilla/mux v1.8.0
github.com/gorilla/schema v1.2.0 github.com/gorilla/schema v1.2.0
github.com/gorilla/securecookie v1.1.1 github.com/gorilla/securecookie v1.1.1
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0
github.com/grpc-ecosystem/grpc-gateway/v2 v2.2.0 github.com/grpc-ecosystem/grpc-gateway/v2 v2.5.0
github.com/huandu/xstrings v1.3.2 // indirect github.com/huandu/xstrings v1.3.2 // indirect
github.com/imdario/mergo v0.3.12 // indirect
github.com/inconshreveable/log15 v0.0.0-20200109203555-b30bc20e4fd1 // indirect
github.com/jinzhu/gorm v1.9.16 github.com/jinzhu/gorm v1.9.16
github.com/kevinburke/go-types v0.0.0-20200309064045-f2d4aea18a7a // indirect github.com/kevinburke/go-types v0.0.0-20210723172823-2deba1f80ba7 // indirect
github.com/kevinburke/go.uuid v1.2.0 // indirect github.com/kevinburke/rest v0.0.0-20210506044642-5611499aa33c // indirect
github.com/kevinburke/rest v0.0.0-20200429221318-0d2892b400f8 // indirect github.com/kevinburke/twilio-go v0.0.0-20210327194925-1623146bcf73
github.com/kevinburke/twilio-go v0.0.0-20200810163702-320748330fac github.com/lib/pq v1.10.2
github.com/lib/pq v1.9.0
github.com/lucasb-eyer/go-colorful v1.2.0 github.com/lucasb-eyer/go-colorful v1.2.0
github.com/magefile/mage v1.10.0 // indirect github.com/manifoldco/promptui v0.8.0
github.com/manifoldco/promptui v0.7.0
github.com/mattn/go-colorable v0.1.8 // indirect; indirect github.com/mitchellh/copystructure v1.0.0 // indirect github.com/mattn/go-colorable v0.1.8 // indirect; indirect github.com/mitchellh/copystructure v1.0.0 // indirect
github.com/minio/minio-go/v7 v7.0.10 github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect
github.com/mitchellh/copystructure v1.1.2 // indirect github.com/minio/minio-go/v7 v7.0.12
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/muesli/gamut v0.2.0 github.com/muesli/gamut v0.2.0
github.com/nicksnyder/go-i18n/v2 v2.1.2 github.com/nicksnyder/go-i18n/v2 v2.1.2
github.com/opencontainers/image-spec v1.0.1 // indirect
github.com/pkg/errors v0.9.1 github.com/pkg/errors v0.9.1
github.com/pquerna/otp v1.2.0 github.com/pquerna/otp v1.3.0
github.com/prometheus/client_golang v1.8.0 // indirect
github.com/prometheus/common v0.15.0 // indirect
github.com/rakyll/statik v0.1.7 github.com/rakyll/statik v0.1.7
github.com/rs/cors v1.7.0 github.com/rs/cors v1.8.0
github.com/sony/sonyflake v1.0.0 github.com/sony/sonyflake v1.0.0
github.com/spf13/cobra v1.1.1 github.com/spf13/cobra v1.2.1
github.com/stretchr/testify v1.7.0 github.com/stretchr/testify v1.7.0
github.com/ttacon/builder v0.0.0-20170518171403-c099f663e1c2 // indirect github.com/ttacon/builder v0.0.0-20170518171403-c099f663e1c2 // indirect
github.com/ttacon/libphonenumber v1.1.0 github.com/ttacon/libphonenumber v1.2.1
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.13.0 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.22.0
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.13.0 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.22.0
go.opentelemetry.io/otel v0.13.0 go.opentelemetry.io/otel v1.0.0-RC2
go.opentelemetry.io/otel/exporters/metric/prometheus v0.13.0 go.opentelemetry.io/otel/exporters/metric/prometheus v0.21.0
go.opentelemetry.io/otel/exporters/otlp v0.13.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.0.0-RC2
go.opentelemetry.io/otel/exporters/stdout v0.13.0 go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.0.0-RC2
go.opentelemetry.io/otel/sdk v0.13.0 go.opentelemetry.io/otel/metric v0.22.0
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 go.opentelemetry.io/otel/sdk v1.0.0-RC2
golang.org/x/oauth2 v0.0.0-20210201163806-010130855d6c go.opentelemetry.io/otel/sdk/export/metric v0.22.0
go.opentelemetry.io/otel/sdk/metric v0.22.0
go.opentelemetry.io/otel/trace v1.0.0-RC2
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97
golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
golang.org/x/text v0.3.6 golang.org/x/text v0.3.6
golang.org/x/tools v0.1.1 golang.org/x/tools v0.1.5
google.golang.org/api v0.34.0 google.golang.org/api v0.52.0
google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67
google.golang.org/genproto v0.0.0-20210406143921-e86de6bf7a46 google.golang.org/grpc v1.39.1
google.golang.org/grpc v1.36.1 google.golang.org/protobuf v1.27.1
google.golang.org/protobuf v1.26.0
gopkg.in/square/go-jose.v2 v2.6.0 gopkg.in/square/go-jose.v2 v2.6.0
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
gotest.tools v2.2.0+incompatible gotest.tools v2.2.0+incompatible
k8s.io/api v0.19.2 k8s.io/api v0.22.0
k8s.io/apiextensions-apiserver v0.19.2 k8s.io/apiextensions-apiserver v0.22.0
k8s.io/apimachinery v0.19.2 k8s.io/apimachinery v0.22.0
k8s.io/client-go v0.19.2 k8s.io/client-go v0.22.0
sigs.k8s.io/controller-runtime v0.7.0 sigs.k8s.io/controller-runtime v0.9.5
) )

781
go.sum

File diff suppressed because it is too large Load Diff

View File

@ -2,29 +2,29 @@ package api
import ( import (
"context" "context"
admin_es "github.com/caos/zitadel/internal/admin/repository/eventsourcing"
auth_es "github.com/caos/zitadel/internal/auth/repository/eventsourcing"
"github.com/caos/zitadel/internal/domain"
"github.com/caos/zitadel/internal/telemetry/metrics"
"github.com/caos/zitadel/internal/telemetry/metrics/otel"
view_model "github.com/caos/zitadel/internal/view/model"
sentryhttp "github.com/getsentry/sentry-go/http"
"go.opentelemetry.io/otel/api/metric"
"net/http" "net/http"
"github.com/caos/logging" "github.com/caos/logging"
sentryhttp "github.com/getsentry/sentry-go/http"
"go.opentelemetry.io/otel/metric"
"google.golang.org/grpc" "google.golang.org/grpc"
admin_es "github.com/caos/zitadel/internal/admin/repository/eventsourcing"
"github.com/caos/zitadel/internal/api/authz" "github.com/caos/zitadel/internal/api/authz"
grpc_util "github.com/caos/zitadel/internal/api/grpc" grpc_util "github.com/caos/zitadel/internal/api/grpc"
"github.com/caos/zitadel/internal/api/grpc/server" "github.com/caos/zitadel/internal/api/grpc/server"
http_util "github.com/caos/zitadel/internal/api/http" http_util "github.com/caos/zitadel/internal/api/http"
"github.com/caos/zitadel/internal/api/oidc" "github.com/caos/zitadel/internal/api/oidc"
auth_es "github.com/caos/zitadel/internal/auth/repository/eventsourcing"
authz_es "github.com/caos/zitadel/internal/authz/repository/eventsourcing" authz_es "github.com/caos/zitadel/internal/authz/repository/eventsourcing"
"github.com/caos/zitadel/internal/config/systemdefaults" "github.com/caos/zitadel/internal/config/systemdefaults"
"github.com/caos/zitadel/internal/domain"
"github.com/caos/zitadel/internal/errors" "github.com/caos/zitadel/internal/errors"
iam_model "github.com/caos/zitadel/internal/iam/model" iam_model "github.com/caos/zitadel/internal/iam/model"
"github.com/caos/zitadel/internal/telemetry/metrics"
"github.com/caos/zitadel/internal/telemetry/metrics/otel"
"github.com/caos/zitadel/internal/telemetry/tracing" "github.com/caos/zitadel/internal/telemetry/tracing"
view_model "github.com/caos/zitadel/internal/view/model"
) )
type Config struct { type Config struct {

View File

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

View File

@ -2,13 +2,19 @@ package otel
import ( import (
"context" "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" "net/http"
"sync" "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 { type Metrics struct {
@ -20,8 +26,15 @@ type Metrics struct {
} }
func NewMetrics(meterName string) (metrics.Metrics, error) { func NewMetrics(meterName string) (metrics.Metrics, error) {
exporter, err := prometheus.NewExportPipeline( exporter, err := prometheus.New(
prometheus.Config{}, prometheus.Config{},
controller.New(
processor.New(
selector.NewWithHistogramDistribution(),
export.CumulativeExportKindSelector(),
processor.WithMemory(true),
),
),
) )
if err != nil { if err != nil {
return &Metrics{}, err return &Metrics{}, err

View File

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

View File

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

View File

@ -1,8 +1,10 @@
package otel package otel
import ( import (
"context"
"github.com/caos/zitadel/internal/telemetry/tracing" "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" sdk_trace "go.opentelemetry.io/otel/sdk/trace"
) )
@ -14,7 +16,7 @@ type Config struct {
func (c *Config) NewTracer() error { func (c *Config) NewTracer() error {
sampler := sdk_trace.ParentBased(sdk_trace.TraceIDRatioBased(c.Fraction)) 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 { if err != nil {
return err return err
} }

View File

@ -4,12 +4,12 @@ import (
"context" "context"
"net/http" "net/http"
"github.com/caos/zitadel/internal/telemetry/tracing" "go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/api/global" "go.opentelemetry.io/otel/propagation"
api_trace "go.opentelemetry.io/otel/api/trace"
"go.opentelemetry.io/otel/propagators"
"go.opentelemetry.io/otel/sdk/export/trace"
sdk_trace "go.opentelemetry.io/otel/sdk/trace" 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 { type Tracer struct {
@ -17,15 +17,17 @@ type Tracer struct {
sampler sdk_trace.Sampler 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( tp := sdk_trace.NewTracerProvider(
sdk_trace.WithConfig(sdk_trace.Config{DefaultSampler: sampler}), sdk_trace.WithSampler(sampler),
sdk_trace.WithSyncer(exporter), sdk_trace.WithBatcher(exporter),
sdk_trace.WithSpanProcessor(spanProcessor),
) )
global.SetTracerProvider(tp) otel.SetTracerProvider(tp)
tc := propagators.TraceContext{} tc := propagation.TraceContext{}
global.SetTextMapPropagator(tc) otel.SetTextMapPropagator(tc)
return &Tracer{Exporter: tp.Tracer(name), sampler: sampler} 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) 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...) 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...) ctx, span := t.Exporter.Start(ctx, name, options...)
return ctx, tracing.CreateSpan(span) return ctx, tracing.CreateSpan(span)
} }

View File

@ -1,21 +1,18 @@
package tracing package tracing
import ( import (
"context"
grpc_errs "github.com/caos/zitadel/internal/api/grpc/errors" grpc_errs "github.com/caos/zitadel/internal/api/grpc/errors"
api_trace "go.opentelemetry.io/otel/api/trace" "go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/codes" "go.opentelemetry.io/otel/trace"
"go.opentelemetry.io/otel/label"
) )
type Span struct { type Span struct {
span api_trace.Span span trace.Span
opts []api_trace.SpanOption opts []trace.SpanEndOption
} }
func CreateSpan(span api_trace.Span) *Span { func CreateSpan(span trace.Span) *Span {
return &Span{span: span, opts: []api_trace.SpanOption{}} return &Span{span: span, opts: []trace.SpanEndOption{}}
} }
func (s *Span) End() { func (s *Span) End() {
@ -36,9 +33,13 @@ func (s *Span) SetStatusByError(err error) {
return return
} }
if err != nil { 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) 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" "context"
"net/http" "net/http"
api_trace "go.opentelemetry.io/otel/api/trace"
sdk_trace "go.opentelemetry.io/otel/sdk/trace" sdk_trace "go.opentelemetry.io/otel/sdk/trace"
api_trace "go.opentelemetry.io/otel/trace"
) )
type Tracer interface { type Tracer interface {
@ -81,5 +81,5 @@ func NewSpanHTTP(r *http.Request) (*http.Request, *Span) {
} }
func TraceIDFromCtx(ctx context.Context) string { func TraceIDFromCtx(ctx context.Context) string {
return api_trace.SpanFromContext(ctx).SpanContext().TraceID.String() return api_trace.SpanFromContext(ctx).SpanContext().TraceID().String()
} }