From 0e59776d72b3c5493b2219d45fe2a5130981625e Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Fri, 6 Aug 2021 11:29:38 +0200 Subject: [PATCH 01/31] remove tracing from ocis/ocis --- ocis/pkg/command/server.go | 5 -- ocis/pkg/tracing/tracing.go | 119 ------------------------------------ 2 files changed, 124 deletions(-) delete mode 100644 ocis/pkg/tracing/tracing.go diff --git a/ocis/pkg/command/server.go b/ocis/pkg/command/server.go index 91f311788..28b50c993 100644 --- a/ocis/pkg/command/server.go +++ b/ocis/pkg/command/server.go @@ -10,7 +10,6 @@ import ( "github.com/owncloud/ocis/ocis/pkg/flagset" "github.com/owncloud/ocis/ocis/pkg/register" "github.com/owncloud/ocis/ocis/pkg/runtime" - "github.com/owncloud/ocis/ocis/pkg/tracing" ) // Server is the entrypoint for the server command. @@ -28,10 +27,6 @@ func Server(cfg *config.Config) *cli.Command { return nil }, Action: func(c *cli.Context) error { - if err := tracing.Start(cfg); err != nil { - return err - } - r := runtime.New(cfg) return r.Start() }, diff --git a/ocis/pkg/tracing/tracing.go b/ocis/pkg/tracing/tracing.go deleted file mode 100644 index 068e25392..000000000 --- a/ocis/pkg/tracing/tracing.go +++ /dev/null @@ -1,119 +0,0 @@ -package tracing - -import ( - "time" - - "contrib.go.opencensus.io/exporter/jaeger" - "contrib.go.opencensus.io/exporter/ocagent" - "contrib.go.opencensus.io/exporter/zipkin" - openzipkin "github.com/openzipkin/zipkin-go" - zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http" - "github.com/owncloud/ocis/ocis-pkg/config" - "github.com/owncloud/ocis/ocis-pkg/log" - "go.opencensus.io/stats/view" - "go.opencensus.io/trace" -) - -// Start undocumented -func Start(cfg *config.Config) error { - logger := NewLogger(cfg) - - if cfg.Tracing.Enabled { - switch t := cfg.Tracing.Type; t { - case "agent": - exporter, err := ocagent.NewExporter( - ocagent.WithReconnectionPeriod(5*time.Second), - ocagent.WithAddress(cfg.Tracing.Endpoint), - ocagent.WithServiceName(cfg.Tracing.Service), - ) - - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create agent tracing") - - return err - } - - trace.RegisterExporter(exporter) - view.RegisterExporter(exporter) - - case "jaeger": - exporter, err := jaeger.NewExporter( - jaeger.Options{ - AgentEndpoint: cfg.Tracing.Endpoint, - CollectorEndpoint: cfg.Tracing.Collector, - Process: jaeger.Process{ - ServiceName: cfg.Tracing.Service, - }, - }, - ) - - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create jaeger tracing") - - return err - } - - trace.RegisterExporter(exporter) - - case "zipkin": - endpoint, err := openzipkin.NewEndpoint( - cfg.Tracing.Service, - cfg.Tracing.Endpoint, - ) - - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create zipkin tracing") - - return err - } - - exporter := zipkin.NewExporter( - zipkinhttp.NewReporter( - cfg.Tracing.Collector, - ), - endpoint, - ) - - trace.RegisterExporter(exporter) - - default: - logger.Warn(). - Str("type", t). - Msg("Unknown tracing backend") - } - - trace.ApplyConfig( - trace.Config{ - DefaultSampler: trace.AlwaysSample(), - }, - ) - } else { - logger.Debug(). - Msg("Tracing is not enabled") - } - - return nil -} - -// NewLogger initializes a service-specific logger instance. -func NewLogger(cfg *config.Config) log.Logger { - return log.NewLogger( - log.Name("ocis"), - log.Level(cfg.Log.Level), - log.Pretty(cfg.Log.Pretty), - log.Color(cfg.Log.Color), - log.File(cfg.Log.File), - ) -} From 6b1c8d1bf015a9f4713d9e305bd150124e794c32 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Fri, 6 Aug 2021 11:37:04 +0200 Subject: [PATCH 02/31] add otel dependencies --- go.mod | 4 ++++ go.sum | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/go.mod b/go.mod index 57fb1e150..aed64ba01 100644 --- a/go.mod +++ b/go.mod @@ -66,6 +66,10 @@ require ( github.com/yaegashi/msgraph.go v0.1.4 go.etcd.io/etcd/pkg/v3 v3.5.0-pre // indirect go.opencensus.io v0.23.0 + go.opentelemetry.io/otel v1.0.0-RC2 // indirect + go.opentelemetry.io/otel/exporters/jaeger v1.0.0-RC2 // indirect + go.opentelemetry.io/otel/metric v0.20.0 // indirect + go.opentelemetry.io/otel/sdk v1.0.0-RC2 // indirect golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8 golang.org/x/net v0.0.0-20210614182718-04defd469f4e diff --git a/go.sum b/go.sum index 9eab8070f..fd0c9bb6d 100644 --- a/go.sum +++ b/go.sum @@ -510,6 +510,7 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= @@ -1164,6 +1165,21 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opentelemetry.io/otel v0.20.0 h1:eaP0Fqu7SXHwvjiqDq83zImeehOHX8doTvU9AwXON8g= +go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= +go.opentelemetry.io/otel v1.0.0-RC2 h1:SHhxSjB+omnGZPgGlKe+QMp3MyazcOHdQ8qwo89oKbg= +go.opentelemetry.io/otel v1.0.0-RC2/go.mod h1:w1thVQ7qbAy8MHb0IFj8a5Q2QU0l2ksf8u/CN8m3NOM= +go.opentelemetry.io/otel/exporters/jaeger v1.0.0-RC2 h1:RF0nWsIDpDBe+s06lkLxUw9CWQUAhO6hBSxxB7dz45s= +go.opentelemetry.io/otel/exporters/jaeger v1.0.0-RC2/go.mod h1:sZZqN3Vb0iT+NE6mZ1S7sNyH3t4PFk6ElK5TLGFBZ7E= +go.opentelemetry.io/otel/metric v0.20.0 h1:4kzhXFP+btKm4jwxpjIqjs41A7MakRFUS86bqLHTIw8= +go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= +go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= +go.opentelemetry.io/otel/sdk v1.0.0-RC2 h1:ROuteeSCBaZNjiT9JcFzZepmInDvLktR28Y6qKo8bCs= +go.opentelemetry.io/otel/sdk v1.0.0-RC2/go.mod h1:fgwHyiDn4e5k40TD9VX243rOxXR+jzsWBZYA2P5jpEw= +go.opentelemetry.io/otel/trace v0.20.0 h1:1DL6EXUdcg95gukhuRRvLDO/4X5THh/5dIV52lqtnbw= +go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= +go.opentelemetry.io/otel/trace v1.0.0-RC2 h1:dunAP0qDULMIT82atj34m5RgvsIK6LcsXf1c/MsYg1w= +go.opentelemetry.io/otel/trace v1.0.0-RC2/go.mod h1:JPQ+z6nNw9mqEGT8o3eoPTdnNI+Aj5JcxEsVGREIAy4= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= 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= @@ -1424,6 +1440,7 @@ golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From 8e5ef03f9f02801cfb36f09030753854032ee67c Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Fri, 6 Aug 2021 11:51:25 +0200 Subject: [PATCH 03/31] run go mod tidy --- go.sum | 1 + 1 file changed, 1 insertion(+) diff --git a/go.sum b/go.sum index fd0c9bb6d..1d2ff75c2 100644 --- a/go.sum +++ b/go.sum @@ -510,6 +510,7 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= From 93f13388dd7e5d5688607526b5b343f9a99d7573 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Fri, 6 Aug 2021 11:51:36 +0200 Subject: [PATCH 04/31] add OCIS_TRACING_* flags to all extensions --- accounts/pkg/flagset/flagset.go | 8 ++++---- glauth/pkg/flagset/flagset.go | 8 ++++---- graph-explorer/pkg/flagset/flagset.go | 8 ++++---- graph/pkg/flagset/flagset.go | 8 ++++---- idp/pkg/flagset/flagset.go | 8 ++++---- ocs/pkg/flagset/flagset.go | 8 ++++---- onlyoffice/pkg/flagset/flagset.go | 8 ++++---- proxy/pkg/flagset/flagset.go | 8 ++++---- settings/pkg/flagset/flagset.go | 8 ++++---- storage/pkg/flagset/tracing.go | 8 ++++---- store/pkg/flagset/flagset.go | 8 ++++---- thumbnails/pkg/flagset/flagset.go | 8 ++++---- web/pkg/flagset/flagset.go | 8 ++++---- webdav/pkg/flagset/flagset.go | 8 ++++---- 14 files changed, 56 insertions(+), 56 deletions(-) diff --git a/accounts/pkg/flagset/flagset.go b/accounts/pkg/flagset/flagset.go index 028e0cd5b..be9cc3fc9 100644 --- a/accounts/pkg/flagset/flagset.go +++ b/accounts/pkg/flagset/flagset.go @@ -47,28 +47,28 @@ func ServerWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVars: []string{"ACCOUNTS_TRACING_ENABLED"}, + EnvVars: []string{"ACCOUNTS_TRACING_ENABLED", "OCIS_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: flags.OverrideDefaultString(cfg.Tracing.Type, "jaeger"), Usage: "Tracing backend type", - EnvVars: []string{"ACCOUNTS_TRACING_TYPE"}, + EnvVars: []string{"ACCOUNTS_TRACING_TYPE", "OCIS_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: flags.OverrideDefaultString(cfg.Tracing.Endpoint, ""), Usage: "Endpoint for the agent", - EnvVars: []string{"ACCOUNTS_TRACING_ENDPOINT"}, + EnvVars: []string{"ACCOUNTS_TRACING_ENDPOINT", "OCIS_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: flags.OverrideDefaultString(cfg.Tracing.Collector, ""), Usage: "Endpoint for the collector", - EnvVars: []string{"ACCOUNTS_TRACING_COLLECTOR"}, + EnvVars: []string{"ACCOUNTS_TRACING_COLLECTOR", "OCIS_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ diff --git a/glauth/pkg/flagset/flagset.go b/glauth/pkg/flagset/flagset.go index 29ef1069a..defece35c 100644 --- a/glauth/pkg/flagset/flagset.go +++ b/glauth/pkg/flagset/flagset.go @@ -65,28 +65,28 @@ func ServerWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVars: []string{"GLAUTH_TRACING_ENABLED"}, + EnvVars: []string{"GLAUTH_TRACING_ENABLED", "OCIS_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: flags.OverrideDefaultString(cfg.Tracing.Type, "jaeger"), Usage: "Tracing backend type", - EnvVars: []string{"GLAUTH_TRACING_TYPE"}, + EnvVars: []string{"GLAUTH_TRACING_TYPE", "OCIS_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: flags.OverrideDefaultString(cfg.Tracing.Endpoint, ""), Usage: "Endpoint for the agent", - EnvVars: []string{"GLAUTH_TRACING_ENDPOINT"}, + EnvVars: []string{"GLAUTH_TRACING_ENDPOINT", "OCIS_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: flags.OverrideDefaultString(cfg.Tracing.Collector, ""), Usage: "Endpoint for the collector", - EnvVars: []string{"GLAUTH_TRACING_COLLECTOR"}, + EnvVars: []string{"GLAUTH_TRACING_COLLECTOR", "OCIS_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ diff --git a/graph-explorer/pkg/flagset/flagset.go b/graph-explorer/pkg/flagset/flagset.go index 54ca8b446..2dca27c34 100644 --- a/graph-explorer/pkg/flagset/flagset.go +++ b/graph-explorer/pkg/flagset/flagset.go @@ -55,28 +55,28 @@ func ServerWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVars: []string{"GRAPH_EXPLORER_TRACING_ENABLED"}, + EnvVars: []string{"GRAPH_EXPLORER_TRACING_ENABLED", "OCIS_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: flags.OverrideDefaultString(cfg.Tracing.Type, "jaeger"), Usage: "Tracing backend type", - EnvVars: []string{"GRAPH_EXPLORER_TRACING_TYPE"}, + EnvVars: []string{"GRAPH_EXPLORER_TRACING_TYPE", "OCIS_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: flags.OverrideDefaultString(cfg.Tracing.Endpoint, ""), Usage: "Endpoint for the agent", - EnvVars: []string{"GRAPH_EXPLORER_TRACING_ENDPOINT"}, + EnvVars: []string{"GRAPH_EXPLORER_TRACING_ENDPOINT", "OCIS_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: flags.OverrideDefaultString(cfg.Tracing.Collector, ""), Usage: "Endpoint for the collector", - EnvVars: []string{"GRAPH_EXPLORER_TRACING_COLLECTOR"}, + EnvVars: []string{"GRAPH_EXPLORER_TRACING_COLLECTOR", "OCIS_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ diff --git a/graph/pkg/flagset/flagset.go b/graph/pkg/flagset/flagset.go index 0481669ee..a259ac816 100644 --- a/graph/pkg/flagset/flagset.go +++ b/graph/pkg/flagset/flagset.go @@ -62,28 +62,28 @@ func ServerWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVars: []string{"GRAPH_TRACING_ENABLED"}, + EnvVars: []string{"GRAPH_TRACING_ENABLED", "OCIS_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: flags.OverrideDefaultString(cfg.Tracing.Type, "jaeger"), Usage: "Tracing backend type", - EnvVars: []string{"GRAPH_TRACING_TYPE"}, + EnvVars: []string{"GRAPH_TRACING_TYPE", "OCIS_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: flags.OverrideDefaultString(cfg.Tracing.Endpoint, ""), Usage: "Endpoint for the agent", - EnvVars: []string{"GRAPH_TRACING_ENDPOINT"}, + EnvVars: []string{"GRAPH_TRACING_ENDPOINT", "OCIS_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: flags.OverrideDefaultString(cfg.Tracing.Collector, ""), Usage: "Endpoint for the collector", - EnvVars: []string{"GRAPH_TRACING_COLLECTOR"}, + EnvVars: []string{"GRAPH_TRACING_COLLECTOR", "OCIS_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ diff --git a/idp/pkg/flagset/flagset.go b/idp/pkg/flagset/flagset.go index aa41ee52a..ba4c2d328 100644 --- a/idp/pkg/flagset/flagset.go +++ b/idp/pkg/flagset/flagset.go @@ -65,28 +65,28 @@ func ServerWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVars: []string{"IDP_TRACING_ENABLED"}, + EnvVars: []string{"IDP_TRACING_ENABLED", "OCIS_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: flags.OverrideDefaultString(cfg.Tracing.Type, "jaeger"), Usage: "Tracing backend type", - EnvVars: []string{"IDP_TRACING_TYPE"}, + EnvVars: []string{"IDP_TRACING_TYPE", "OCIS_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: flags.OverrideDefaultString(cfg.Tracing.Endpoint, ""), Usage: "Endpoint for the agent", - EnvVars: []string{"IDP_TRACING_ENDPOINT"}, + EnvVars: []string{"IDP_TRACING_ENDPOINT", "OCIS_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: flags.OverrideDefaultString(cfg.Tracing.Collector, ""), Usage: "Endpoint for the collector", - EnvVars: []string{"IDP_TRACING_COLLECTOR"}, + EnvVars: []string{"IDP_TRACING_COLLECTOR", "OCIS_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ diff --git a/ocs/pkg/flagset/flagset.go b/ocs/pkg/flagset/flagset.go index e3ee4e4c2..ef6e56fa5 100644 --- a/ocs/pkg/flagset/flagset.go +++ b/ocs/pkg/flagset/flagset.go @@ -57,28 +57,28 @@ func ServerWithConfig(cfg *config.Config) []cli.Flag { Name: "tracing-enabled", Value: flags.OverrideDefaultBool(cfg.Tracing.Enabled, false), Usage: "Enable sending traces", - EnvVars: []string{"OCS_TRACING_ENABLED"}, + EnvVars: []string{"OCS_TRACING_ENABLED", "OCIS_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: flags.OverrideDefaultString(cfg.Tracing.Type, "jaeger"), Usage: "Tracing backend type", - EnvVars: []string{"OCS_TRACING_TYPE"}, + EnvVars: []string{"OCS_TRACING_TYPE", "OCIS_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: flags.OverrideDefaultString(cfg.Tracing.Endpoint, ""), Usage: "Endpoint for the agent", - EnvVars: []string{"OCS_TRACING_ENDPOINT"}, + EnvVars: []string{"OCS_TRACING_ENDPOINT", "OCIS_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: flags.OverrideDefaultString(cfg.Tracing.Collector, ""), Usage: "Endpoint for the collector", - EnvVars: []string{"OCS_TRACING_COLLECTOR"}, + EnvVars: []string{"OCS_TRACING_COLLECTOR", "OCIS_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ diff --git a/onlyoffice/pkg/flagset/flagset.go b/onlyoffice/pkg/flagset/flagset.go index 6517b8dc0..ac416d07c 100644 --- a/onlyoffice/pkg/flagset/flagset.go +++ b/onlyoffice/pkg/flagset/flagset.go @@ -62,28 +62,28 @@ func ServerWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVars: []string{"ONLYOFFICE_TRACING_ENABLED"}, + EnvVars: []string{"ONLYOFFICE_TRACING_ENABLED", "OCIS_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: flags.OverrideDefaultString(cfg.Tracing.Type, "jaeger"), Usage: "Tracing backend type", - EnvVars: []string{"ONLYOFFICE_TRACING_TYPE"}, + EnvVars: []string{"ONLYOFFICE_TRACING_TYPE", "OCIS_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: flags.OverrideDefaultString(cfg.Tracing.Endpoint, ""), Usage: "Endpoint for the agent", - EnvVars: []string{"ONLYOFFICE_TRACING_ENDPOINT"}, + EnvVars: []string{"ONLYOFFICE_TRACING_ENDPOINT", "OCIS_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: flags.OverrideDefaultString(cfg.Tracing.Collector, ""), Usage: "Endpoint for the collector", - EnvVars: []string{"ONLYOFFICE_TRACING_COLLECTOR"}, + EnvVars: []string{"ONLYOFFICE_TRACING_COLLECTOR", "OCIS_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ diff --git a/proxy/pkg/flagset/flagset.go b/proxy/pkg/flagset/flagset.go index 79522c4e1..22960d5b4 100644 --- a/proxy/pkg/flagset/flagset.go +++ b/proxy/pkg/flagset/flagset.go @@ -69,28 +69,28 @@ func ServerWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVars: []string{"PROXY_TRACING_ENABLED"}, + EnvVars: []string{"PROXY_TRACING_ENABLED", "OCIS_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: flags.OverrideDefaultString(cfg.Tracing.Type, "jaeger"), Usage: "Tracing backend type", - EnvVars: []string{"PROXY_TRACING_TYPE"}, + EnvVars: []string{"PROXY_TRACING_TYPE", "OCIS_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: "", Usage: "Endpoint for the agent", - EnvVars: []string{"PROXY_TRACING_ENDPOINT"}, + EnvVars: []string{"PROXY_TRACING_ENDPOINT", "OCIS_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: "", Usage: "Endpoint for the collector", - EnvVars: []string{"PROXY_TRACING_COLLECTOR"}, + EnvVars: []string{"PROXY_TRACING_COLLECTOR", "OCIS_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ diff --git a/settings/pkg/flagset/flagset.go b/settings/pkg/flagset/flagset.go index 8a253abeb..5c6ca32f6 100644 --- a/settings/pkg/flagset/flagset.go +++ b/settings/pkg/flagset/flagset.go @@ -56,28 +56,28 @@ func ServerWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVars: []string{"SETTINGS_TRACING_ENABLED"}, + EnvVars: []string{"SETTINGS_TRACING_ENABLED", "OCIS_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: flags.OverrideDefaultString(cfg.Tracing.Type, "jaeger"), Usage: "Tracing backend type", - EnvVars: []string{"SETTINGS_TRACING_TYPE"}, + EnvVars: []string{"SETTINGS_TRACING_TYPE", "OCIS_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: flags.OverrideDefaultString(cfg.Tracing.Endpoint, ""), Usage: "Endpoint for the agent", - EnvVars: []string{"SETTINGS_TRACING_ENDPOINT"}, + EnvVars: []string{"SETTINGS_TRACING_ENDPOINT", "OCIS_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: flags.OverrideDefaultString(cfg.Tracing.Collector, ""), Usage: "Endpoint for the collector", - EnvVars: []string{"SETTINGS_TRACING_COLLECTOR"}, + EnvVars: []string{"SETTINGS_TRACING_COLLECTOR", "OCIS_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ diff --git a/storage/pkg/flagset/tracing.go b/storage/pkg/flagset/tracing.go index 43daa268e..e0bc2e0e7 100644 --- a/storage/pkg/flagset/tracing.go +++ b/storage/pkg/flagset/tracing.go @@ -13,28 +13,28 @@ func TracingWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVars: []string{"STORAGE_TRACING_ENABLED"}, + EnvVars: []string{"STORAGE_TRACING_ENABLED", "OCIS_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: flags.OverrideDefaultString(cfg.Tracing.Type, "jaeger"), Usage: "Tracing backend type", - EnvVars: []string{"STORAGE_TRACING_TYPE"}, + EnvVars: []string{"STORAGE_TRACING_TYPE", "OCIS_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: flags.OverrideDefaultString(cfg.Tracing.Endpoint, ""), Usage: "Endpoint for the agent", - EnvVars: []string{"STORAGE_TRACING_ENDPOINT"}, + EnvVars: []string{"STORAGE_TRACING_ENDPOINT", "OCIS_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: flags.OverrideDefaultString(cfg.Tracing.Collector, ""), Usage: "Endpoint for the collector", - EnvVars: []string{"STORAGE_TRACING_COLLECTOR"}, + EnvVars: []string{"STORAGE_TRACING_COLLECTOR", "OCIS_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ diff --git a/store/pkg/flagset/flagset.go b/store/pkg/flagset/flagset.go index 578cdf1cc..517533996 100644 --- a/store/pkg/flagset/flagset.go +++ b/store/pkg/flagset/flagset.go @@ -62,28 +62,28 @@ func ServerWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVars: []string{"STORE_TRACING_ENABLED"}, + EnvVars: []string{"STORE_TRACING_ENABLED", "OCIS_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: flags.OverrideDefaultString(cfg.Tracing.Type, "jaeger"), Usage: "Tracing backend type", - EnvVars: []string{"STORE_TRACING_TYPE"}, + EnvVars: []string{"STORE_TRACING_TYPE", "OCIS_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: flags.OverrideDefaultString(cfg.Tracing.Endpoint, ""), Usage: "Endpoint for the agent", - EnvVars: []string{"STORE_TRACING_ENDPOINT"}, + EnvVars: []string{"STORE_TRACING_ENDPOINT", "OCIS_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: flags.OverrideDefaultString(cfg.Tracing.Collector, ""), Usage: "Endpoint for the collector", - EnvVars: []string{"STORE_TRACING_COLLECTOR"}, + EnvVars: []string{"STORE_TRACING_COLLECTOR", "OCIS_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ diff --git a/thumbnails/pkg/flagset/flagset.go b/thumbnails/pkg/flagset/flagset.go index b020149aa..564a5b0ef 100644 --- a/thumbnails/pkg/flagset/flagset.go +++ b/thumbnails/pkg/flagset/flagset.go @@ -57,28 +57,28 @@ func ServerWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVars: []string{"THUMBNAILS_TRACING_ENABLED"}, + EnvVars: []string{"THUMBNAILS_TRACING_ENABLED", "OCIS_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: flags.OverrideDefaultString(cfg.Tracing.Type, "jaeger"), Usage: "Tracing backend type", - EnvVars: []string{"THUMBNAILS_TRACING_TYPE"}, + EnvVars: []string{"THUMBNAILS_TRACING_TYPE", "OCIS_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: flags.OverrideDefaultString(cfg.Tracing.Endpoint, ""), Usage: "Endpoint for the agent", - EnvVars: []string{"THUMBNAILS_TRACING_ENDPOINT"}, + EnvVars: []string{"THUMBNAILS_TRACING_ENDPOINT", "OCIS_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: flags.OverrideDefaultString(cfg.Tracing.Collector, ""), Usage: "Endpoint for the collector", - EnvVars: []string{"THUMBNAILS_TRACING_COLLECTOR"}, + EnvVars: []string{"THUMBNAILS_TRACING_COLLECTOR", "OCIS_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ diff --git a/web/pkg/flagset/flagset.go b/web/pkg/flagset/flagset.go index 21ce5930d..b708bb5b5 100644 --- a/web/pkg/flagset/flagset.go +++ b/web/pkg/flagset/flagset.go @@ -62,28 +62,28 @@ func ServerWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVars: []string{"WEB_TRACING_ENABLED"}, + EnvVars: []string{"WEB_TRACING_ENABLED", "OCIS_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: flags.OverrideDefaultString(cfg.Tracing.Type, "jaeger"), Usage: "Tracing backend type", - EnvVars: []string{"WEB_TRACING_TYPE"}, + EnvVars: []string{"WEB_TRACING_TYPE", "OCIS_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: flags.OverrideDefaultString(cfg.Tracing.Endpoint, ""), Usage: "Endpoint for the agent", - EnvVars: []string{"WEB_TRACING_ENDPOINT"}, + EnvVars: []string{"WEB_TRACING_ENDPOINT", "OCIS_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: flags.OverrideDefaultString(cfg.Tracing.Collector, ""), Usage: "Endpoint for the collector", - EnvVars: []string{"WEB_TRACING_COLLECTOR"}, + EnvVars: []string{"WEB_TRACING_COLLECTOR", "OCIS_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ diff --git a/webdav/pkg/flagset/flagset.go b/webdav/pkg/flagset/flagset.go index f77bc528a..1e133537e 100644 --- a/webdav/pkg/flagset/flagset.go +++ b/webdav/pkg/flagset/flagset.go @@ -56,28 +56,28 @@ func ServerWithConfig(cfg *config.Config) []cli.Flag { &cli.BoolFlag{ Name: "tracing-enabled", Usage: "Enable sending traces", - EnvVars: []string{"WEBDAV_TRACING_ENABLED"}, + EnvVars: []string{"WEBDAV_TRACING_ENABLED", "OCIS_TRACING_ENABLED"}, Destination: &cfg.Tracing.Enabled, }, &cli.StringFlag{ Name: "tracing-type", Value: flags.OverrideDefaultString(cfg.Tracing.Type, "jaeger"), Usage: "Tracing backend type", - EnvVars: []string{"WEBDAV_TRACING_TYPE"}, + EnvVars: []string{"WEBDAV_TRACING_TYPE", "OCIS_TRACING_TYPE"}, Destination: &cfg.Tracing.Type, }, &cli.StringFlag{ Name: "tracing-endpoint", Value: flags.OverrideDefaultString(cfg.Tracing.Endpoint, ""), Usage: "Endpoint for the agent", - EnvVars: []string{"WEBDAV_TRACING_ENDPOINT"}, + EnvVars: []string{"WEBDAV_TRACING_ENDPOINT", "OCIS_TRACING_ENDPOINT"}, Destination: &cfg.Tracing.Endpoint, }, &cli.StringFlag{ Name: "tracing-collector", Value: flags.OverrideDefaultString(cfg.Tracing.Collector, ""), Usage: "Endpoint for the collector", - EnvVars: []string{"WEBDAV_TRACING_COLLECTOR"}, + EnvVars: []string{"WEBDAV_TRACING_COLLECTOR", "OCIS_TRACING_COLLECTOR"}, Destination: &cfg.Tracing.Collector, }, &cli.StringFlag{ From 9f50776b1791ff107cf854bf761a8e7d6da8bd91 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Fri, 6 Aug 2021 13:29:40 +0200 Subject: [PATCH 05/31] enable traces in proxy --- go.mod | 8 +-- go.sum | 8 --- ocis-pkg/middleware/tracing.go | 26 +++----- proxy/pkg/proxy/proxy.go | 24 ++++---- proxy/pkg/tracing/tracing.go | 109 ++++++++++++--------------------- 5 files changed, 63 insertions(+), 112 deletions(-) diff --git a/go.mod b/go.mod index aed64ba01..93e617108 100644 --- a/go.mod +++ b/go.mod @@ -66,10 +66,10 @@ require ( github.com/yaegashi/msgraph.go v0.1.4 go.etcd.io/etcd/pkg/v3 v3.5.0-pre // indirect go.opencensus.io v0.23.0 - go.opentelemetry.io/otel v1.0.0-RC2 // indirect - go.opentelemetry.io/otel/exporters/jaeger v1.0.0-RC2 // indirect - go.opentelemetry.io/otel/metric v0.20.0 // indirect - go.opentelemetry.io/otel/sdk v1.0.0-RC2 // indirect + go.opentelemetry.io/otel v1.0.0-RC2 + go.opentelemetry.io/otel/exporters/jaeger v1.0.0-RC2 + go.opentelemetry.io/otel/sdk v1.0.0-RC2 + go.opentelemetry.io/otel/trace v1.0.0-RC2 golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8 golang.org/x/net v0.0.0-20210614182718-04defd469f4e diff --git a/go.sum b/go.sum index 1d2ff75c2..3a619422d 100644 --- a/go.sum +++ b/go.sum @@ -508,7 +508,6 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -1166,19 +1165,12 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/otel v0.20.0 h1:eaP0Fqu7SXHwvjiqDq83zImeehOHX8doTvU9AwXON8g= -go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= go.opentelemetry.io/otel v1.0.0-RC2 h1:SHhxSjB+omnGZPgGlKe+QMp3MyazcOHdQ8qwo89oKbg= go.opentelemetry.io/otel v1.0.0-RC2/go.mod h1:w1thVQ7qbAy8MHb0IFj8a5Q2QU0l2ksf8u/CN8m3NOM= go.opentelemetry.io/otel/exporters/jaeger v1.0.0-RC2 h1:RF0nWsIDpDBe+s06lkLxUw9CWQUAhO6hBSxxB7dz45s= go.opentelemetry.io/otel/exporters/jaeger v1.0.0-RC2/go.mod h1:sZZqN3Vb0iT+NE6mZ1S7sNyH3t4PFk6ElK5TLGFBZ7E= -go.opentelemetry.io/otel/metric v0.20.0 h1:4kzhXFP+btKm4jwxpjIqjs41A7MakRFUS86bqLHTIw8= -go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= -go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= go.opentelemetry.io/otel/sdk v1.0.0-RC2 h1:ROuteeSCBaZNjiT9JcFzZepmInDvLktR28Y6qKo8bCs= go.opentelemetry.io/otel/sdk v1.0.0-RC2/go.mod h1:fgwHyiDn4e5k40TD9VX243rOxXR+jzsWBZYA2P5jpEw= -go.opentelemetry.io/otel/trace v0.20.0 h1:1DL6EXUdcg95gukhuRRvLDO/4X5THh/5dIV52lqtnbw= -go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/otel/trace v1.0.0-RC2 h1:dunAP0qDULMIT82atj34m5RgvsIK6LcsXf1c/MsYg1w= go.opentelemetry.io/otel/trace v1.0.0-RC2/go.mod h1:JPQ+z6nNw9mqEGT8o3eoPTdnNI+Aj5JcxEsVGREIAy4= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= diff --git a/ocis-pkg/middleware/tracing.go b/ocis-pkg/middleware/tracing.go index 882b8aab4..30d12c959 100644 --- a/ocis-pkg/middleware/tracing.go +++ b/ocis-pkg/middleware/tracing.go @@ -1,31 +1,21 @@ package middleware import ( - "context" "net/http" - "go.opencensus.io/plugin/ochttp/propagation/tracecontext" - "go.opencensus.io/trace" + "go.opentelemetry.io/otel/propagation" +) + +var propagator = propagation.NewCompositeTextMapPropagator( + propagation.Baggage{}, + propagation.TraceContext{}, ) // Trace unpacks the request context looking for an existing trace id. func Trace(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - var ctx context.Context - var span *trace.Span - - tc := tracecontext.HTTPFormat{} - // reconstruct span context from request - if sc, ok := tc.SpanContextFromRequest(r); ok { - // if there is one, add it to the new span - ctx, span = trace.StartSpanWithRemoteParent(r.Context(), r.URL.String(), sc) - defer span.End() - } else { - // create a new span if there is no context - ctx, span = trace.StartSpan(r.Context(), r.URL.String()) - defer span.End() - } - + ctx := propagator.Extract(r.Context(), propagation.HeaderCarrier(r.Header)) + propagator.Inject(ctx, propagation.HeaderCarrier(r.Header)) next.ServeHTTP(w, r.WithContext(ctx)) }) } diff --git a/proxy/pkg/proxy/proxy.go b/proxy/pkg/proxy/proxy.go index 9193252e1..2430b2b43 100644 --- a/proxy/pkg/proxy/proxy.go +++ b/proxy/pkg/proxy/proxy.go @@ -2,6 +2,7 @@ package proxy import ( "crypto/tls" + "fmt" "net" "net/http" "net/http/httputil" @@ -10,21 +11,19 @@ import ( "strings" "time" - "github.com/owncloud/ocis/proxy/pkg/proxy/policy" - "go.opencensus.io/plugin/ochttp/propagation/tracecontext" - "go.opencensus.io/trace" - "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/proxy/pkg/config" + "github.com/owncloud/ocis/proxy/pkg/proxy/policy" + proxytracing "github.com/owncloud/ocis/proxy/pkg/tracing" + "go.opentelemetry.io/otel/trace" ) -// MultiHostReverseProxy extends httputil to support multiple hosts with diffent policies +// MultiHostReverseProxy extends "httputil" to support multiple hosts with different policies type MultiHostReverseProxy struct { httputil.ReverseProxy Directors map[string]map[config.RouteType]map[string]func(req *http.Request) PolicySelector policy.Selector logger log.Logger - propagator tracecontext.HTTPFormat config *config.Config } @@ -214,17 +213,16 @@ func (p *MultiHostReverseProxy) AddHost(policy string, target *url.URL, rt confi } func (p *MultiHostReverseProxy) ServeHTTP(w http.ResponseWriter, r *http.Request) { - ctx := r.Context() - var span *trace.Span + var ( + ctx = r.Context() + span trace.Span + ) - // Start root span. if p.config.Tracing.Enabled { - ctx, span = trace.StartSpan(ctx, r.URL.String()) + tracer := proxytracing.TraceProvider.Tracer("proxy") + ctx, span = tracer.Start(ctx, fmt.Sprintf("%s %v", r.Method, r.URL.Path)) defer span.End() - p.propagator.SpanContextToRequest(span.SpanContext(), r) } - - // Call upstream ServeHTTP p.ReverseProxy.ServeHTTP(w, r.WithContext(ctx)) } diff --git a/proxy/pkg/tracing/tracing.go b/proxy/pkg/tracing/tracing.go index c39ce48e1..4d6a7e5b3 100644 --- a/proxy/pkg/tracing/tracing.go +++ b/proxy/pkg/tracing/tracing.go @@ -1,87 +1,58 @@ package tracing import ( - "time" - - "contrib.go.opencensus.io/exporter/jaeger" - "contrib.go.opencensus.io/exporter/ocagent" - "contrib.go.opencensus.io/exporter/zipkin" - openzipkin "github.com/openzipkin/zipkin-go" - zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/proxy/pkg/config" - "go.opencensus.io/stats/view" - "go.opencensus.io/trace" + "go.opentelemetry.io/otel/exporters/jaeger" + "go.opentelemetry.io/otel/propagation" + "go.opentelemetry.io/otel/sdk/resource" + sdktrace "go.opentelemetry.io/otel/sdk/trace" + semconv "go.opentelemetry.io/otel/semconv/v1.4.0" +) + +var ( + // Propagator ensures the entire module uses the same trace propagation strategy. + Propagator propagation.TextMapPropagator + + // TraceProvider is the global trace provider for the proxy service. + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config, logger log.Logger) error { if cfg.Tracing.Enabled { switch t := cfg.Tracing.Type; t { - case "agent": - exporter, err := ocagent.NewExporter( - ocagent.WithReconnectionPeriod(5*time.Second), - ocagent.WithAddress(cfg.Tracing.Endpoint), - ocagent.WithServiceName(cfg.Tracing.Service), - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create agent tracing") - return err - } - trace.RegisterExporter(exporter) - view.RegisterExporter(exporter) case "jaeger": - exporter, err := jaeger.NewExporter( - jaeger.Options{ - AgentEndpoint: cfg.Tracing.Endpoint, - CollectorEndpoint: cfg.Tracing.Collector, - Process: jaeger.Process{ - ServiceName: cfg.Tracing.Service, - }, - }, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create jaeger tracing") - return err + { + exp, err := jaeger.New( + jaeger.WithCollectorEndpoint( + jaeger.WithEndpoint(cfg.Tracing.Collector), + ), + ) + if err != nil { + panic(err) + } + + // set package level trace provider and propagator. + TraceProvider = sdktrace.NewTracerProvider( + sdktrace.WithBatcher(exp), + sdktrace.WithResource(resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceNameKey.String("proxy")), + ), + ) + + Propagator = propagation.NewCompositeTextMapPropagator( + propagation.Baggage{}, + propagation.TraceContext{}, + ) } - trace.RegisterExporter(exporter) + case "agent": + fallthrough case "zipkin": - endpoint, err := openzipkin.NewEndpoint( - cfg.Tracing.Service, - cfg.Tracing.Endpoint, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create zipkin tracing") - return err - } - exporter := zipkin.NewExporter( - zipkinhttp.NewReporter( - cfg.Tracing.Collector, - ), - endpoint, - ) - trace.RegisterExporter(exporter) + fallthrough default: - logger.Warn(). - Str("type", t). - Msg("Unknown tracing backend") + logger.Warn().Str("type", t).Msg("Unknown tracing backend") } - trace.ApplyConfig( - trace.Config{ - DefaultSampler: trace.AlwaysSample(), - }, - ) } else { logger.Debug(). Msg("Tracing is not enabled") From 9f96321c1c8f5640c5c7c3a0a9850311fca7b423 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Fri, 6 Aug 2021 13:32:25 +0200 Subject: [PATCH 06/31] add tracing middleware to proxy middleware chain --- proxy/pkg/command/server.go | 1 + 1 file changed, 1 insertion(+) diff --git a/proxy/pkg/command/server.go b/proxy/pkg/command/server.go index 9546b92ab..0686f984e 100644 --- a/proxy/pkg/command/server.go +++ b/proxy/pkg/command/server.go @@ -178,6 +178,7 @@ func loadMiddlewares(ctx context.Context, l log.Logger, cfg *config.Config) alic return alice.New( // first make sure we log all requests and redirect to https if necessary + pkgmiddleware.Trace, pkgmiddleware.RealIP, pkgmiddleware.RequestID, middleware.AccessLog(l), From feed3e589bc4679da651cf9c98f1dc6f3323d6f6 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Fri, 6 Aug 2021 13:33:14 +0200 Subject: [PATCH 07/31] add tracing middleware to ocs middleware chain --- ocs/pkg/server/http/server.go | 1 + 1 file changed, 1 insertion(+) diff --git a/ocs/pkg/server/http/server.go b/ocs/pkg/server/http/server.go index d19dfcc72..d5714e072 100644 --- a/ocs/pkg/server/http/server.go +++ b/ocs/pkg/server/http/server.go @@ -25,6 +25,7 @@ func Server(opts ...Option) (http.Service, error) { svc.Logger(options.Logger), svc.Config(options.Config), svc.Middleware( + middleware.Trace, middleware.RealIP, middleware.RequestID, middleware.NoCache, From 8301a7e7a3de806dfc9be4c696e927a87ee66dc2 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Fri, 6 Aug 2021 13:46:54 +0200 Subject: [PATCH 08/31] propagate trace from ocs to proxy --- ocs/pkg/service/v0/users.go | 11 ++-- ocs/pkg/tracing/tracing.go | 109 +++++++++++++----------------------- proxy/pkg/proxy/proxy.go | 3 + 3 files changed, 50 insertions(+), 73 deletions(-) diff --git a/ocs/pkg/service/v0/users.go b/ocs/pkg/service/v0/users.go index 28b0d0b40..4f86f7dd5 100644 --- a/ocs/pkg/service/v0/users.go +++ b/ocs/pkg/service/v0/users.go @@ -9,14 +9,13 @@ import ( "strconv" "strings" - "github.com/cs3org/reva/pkg/auth/scope" - "github.com/asim/go-micro/plugins/client/grpc/v3" merrors "github.com/asim/go-micro/v3/errors" gateway "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1" revauser "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" rpcv1beta1 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" + "github.com/cs3org/reva/pkg/auth/scope" "github.com/cs3org/reva/pkg/rgrpc/todo/pool" "github.com/cs3org/reva/pkg/token" "github.com/cs3org/reva/pkg/token/manager/jwt" @@ -26,6 +25,7 @@ import ( accounts "github.com/owncloud/ocis/accounts/pkg/proto/v0" "github.com/owncloud/ocis/ocs/pkg/service/v0/data" "github.com/owncloud/ocis/ocs/pkg/service/v0/response" + ocstracing "github.com/owncloud/ocis/ocs/pkg/tracing" storepb "github.com/owncloud/ocis/store/pkg/proto/v0" "github.com/pkg/errors" "google.golang.org/genproto/protobuf/field_mask" @@ -91,13 +91,16 @@ func (o Ocs) GetUser(w http.ResponseWriter, r *http.Request) { var account *accounts.Account var err error + ctx, span := ocstracing.TraceProvider.Tracer("ocs").Start(r.Context(), "GetUser") + defer span.End() + switch { case userid == "": mustNotFail(render.Render(w, r, response.ErrRender(data.MetaBadRequest.StatusCode, "missing user in context"))) case o.config.AccountBackend == "accounts": - account, err = o.fetchAccountByUsername(r.Context(), userid) + account, err = o.fetchAccountByUsername(ctx, userid) case o.config.AccountBackend == "cs3": - account, err = o.fetchAccountFromCS3Backend(r.Context(), userid) + account, err = o.fetchAccountFromCS3Backend(ctx, userid) default: o.logger.Fatal().Msgf("Invalid accounts backend type '%s'", o.config.AccountBackend) } diff --git a/ocs/pkg/tracing/tracing.go b/ocs/pkg/tracing/tracing.go index b79bb7e61..9b8f94a1f 100644 --- a/ocs/pkg/tracing/tracing.go +++ b/ocs/pkg/tracing/tracing.go @@ -1,87 +1,58 @@ package tracing import ( - "time" - - "contrib.go.opencensus.io/exporter/jaeger" - "contrib.go.opencensus.io/exporter/ocagent" - "contrib.go.opencensus.io/exporter/zipkin" - openzipkin "github.com/openzipkin/zipkin-go" - zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocs/pkg/config" - "go.opencensus.io/stats/view" - "go.opencensus.io/trace" + "go.opentelemetry.io/otel/exporters/jaeger" + "go.opentelemetry.io/otel/propagation" + "go.opentelemetry.io/otel/sdk/resource" + sdktrace "go.opentelemetry.io/otel/sdk/trace" + semconv "go.opentelemetry.io/otel/semconv/v1.4.0" +) + +var ( + // Propagator ensures the entire module uses the same trace propagation strategy. + Propagator propagation.TextMapPropagator + + // TraceProvider is the global trace provider for the proxy service. + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config, logger log.Logger) error { if cfg.Tracing.Enabled { switch t := cfg.Tracing.Type; t { - case "agent": - exporter, err := ocagent.NewExporter( - ocagent.WithReconnectionPeriod(5*time.Second), - ocagent.WithAddress(cfg.Tracing.Endpoint), - ocagent.WithServiceName(cfg.Tracing.Service), - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create agent tracing") - return err - } - trace.RegisterExporter(exporter) - view.RegisterExporter(exporter) case "jaeger": - exporter, err := jaeger.NewExporter( - jaeger.Options{ - AgentEndpoint: cfg.Tracing.Endpoint, - CollectorEndpoint: cfg.Tracing.Collector, - Process: jaeger.Process{ - ServiceName: cfg.Tracing.Service, - }, - }, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create jaeger tracing") - return err + { + exp, err := jaeger.New( + jaeger.WithCollectorEndpoint( + jaeger.WithEndpoint(cfg.Tracing.Collector), + ), + ) + if err != nil { + panic(err) + } + + // set package level trace provider and propagator. + TraceProvider = sdktrace.NewTracerProvider( + sdktrace.WithBatcher(exp), + sdktrace.WithResource(resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceNameKey.String("ocs")), + ), + ) + + Propagator = propagation.NewCompositeTextMapPropagator( + propagation.Baggage{}, + propagation.TraceContext{}, + ) } - trace.RegisterExporter(exporter) + case "agent": + fallthrough case "zipkin": - endpoint, err := openzipkin.NewEndpoint( - cfg.Tracing.Service, - cfg.Tracing.Endpoint, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create zipkin tracing") - return err - } - exporter := zipkin.NewExporter( - zipkinhttp.NewReporter( - cfg.Tracing.Collector, - ), - endpoint, - ) - trace.RegisterExporter(exporter) + fallthrough default: - logger.Warn(). - Str("type", t). - Msg("Unknown tracing backend") + logger.Warn().Str("type", t).Msg("Unknown tracing backend") } - trace.ApplyConfig( - trace.Config{ - DefaultSampler: trace.AlwaysSample(), - }, - ) } else { logger.Debug(). Msg("Tracing is not enabled") diff --git a/proxy/pkg/proxy/proxy.go b/proxy/pkg/proxy/proxy.go index 2430b2b43..97c6ade90 100644 --- a/proxy/pkg/proxy/proxy.go +++ b/proxy/pkg/proxy/proxy.go @@ -11,6 +11,8 @@ import ( "strings" "time" + "go.opentelemetry.io/otel/propagation" + "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/proxy/pkg/config" "github.com/owncloud/ocis/proxy/pkg/proxy/policy" @@ -222,6 +224,7 @@ func (p *MultiHostReverseProxy) ServeHTTP(w http.ResponseWriter, r *http.Request tracer := proxytracing.TraceProvider.Tracer("proxy") ctx, span = tracer.Start(ctx, fmt.Sprintf("%s %v", r.Method, r.URL.Path)) defer span.End() + proxytracing.Propagator.Inject(ctx, propagation.HeaderCarrier(r.Header)) } p.ReverseProxy.ServeHTTP(w, r.WithContext(ctx)) } From 2bdd07e41b65bc2b905380ca08a2379b0495dcc7 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Fri, 6 Aug 2021 15:47:46 +0200 Subject: [PATCH 09/31] add test spans --- idp/pkg/service/v0/tracing.go | 2 +- ocis-pkg/middleware/tracing.go | 4 ++-- ocs/pkg/middleware/logtrace.go | 24 +++++++++++++++++++++++ ocs/pkg/server/http/server.go | 13 +++++-------- ocs/pkg/service/v0/groups.go | 35 +++++++++++++++++++++++++++++++--- ocs/pkg/service/v0/tracing.go | 2 +- ocs/pkg/service/v0/users.go | 22 +++++++++++++++------ proxy/pkg/command/server.go | 2 +- proxy/pkg/proxy/proxy.go | 1 + 9 files changed, 83 insertions(+), 22 deletions(-) create mode 100644 ocs/pkg/middleware/logtrace.go diff --git a/idp/pkg/service/v0/tracing.go b/idp/pkg/service/v0/tracing.go index 1857cf0d8..2b4b3cf8c 100644 --- a/idp/pkg/service/v0/tracing.go +++ b/idp/pkg/service/v0/tracing.go @@ -19,5 +19,5 @@ type tracing struct { // ServeHTTP implements the Service interface. func (t tracing) ServeHTTP(w http.ResponseWriter, r *http.Request) { - middleware.Trace(t.next).ServeHTTP(w, r) + middleware.TraceContext(t.next).ServeHTTP(w, r) } diff --git a/ocis-pkg/middleware/tracing.go b/ocis-pkg/middleware/tracing.go index 30d12c959..60ba4572d 100644 --- a/ocis-pkg/middleware/tracing.go +++ b/ocis-pkg/middleware/tracing.go @@ -11,8 +11,8 @@ var propagator = propagation.NewCompositeTextMapPropagator( propagation.TraceContext{}, ) -// Trace unpacks the request context looking for an existing trace id. -func Trace(next http.Handler) http.Handler { +// TraceContext unpacks the request context looking for an existing trace id. +func TraceContext(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { ctx := propagator.Extract(r.Context(), propagation.HeaderCarrier(r.Header)) propagator.Inject(ctx, propagation.HeaderCarrier(r.Header)) diff --git a/ocs/pkg/middleware/logtrace.go b/ocs/pkg/middleware/logtrace.go new file mode 100644 index 000000000..bea2d339d --- /dev/null +++ b/ocs/pkg/middleware/logtrace.go @@ -0,0 +1,24 @@ +package middleware + +import ( + "net/http" + + ocstracing "github.com/owncloud/ocis/ocs/pkg/tracing" + "go.opentelemetry.io/otel/propagation" +) + +var propagator = propagation.NewCompositeTextMapPropagator( + propagation.Baggage{}, + propagation.TraceContext{}, +) + +// LogTrace unpacks the request context looking for an existing trace id. +func LogTrace(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + ctx, span := ocstracing.TraceProvider.Tracer("ocs").Start(r.Context(), r.URL.Path) + defer span.End() + + propagator.Inject(ctx, propagation.HeaderCarrier(r.Header)) + next.ServeHTTP(w, r.WithContext(ctx)) + }) +} diff --git a/ocs/pkg/server/http/server.go b/ocs/pkg/server/http/server.go index d5714e072..2dd365501 100644 --- a/ocs/pkg/server/http/server.go +++ b/ocs/pkg/server/http/server.go @@ -4,6 +4,7 @@ import ( "github.com/asim/go-micro/v3" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/service/http" + ocsmw "github.com/owncloud/ocis/ocs/pkg/middleware" svc "github.com/owncloud/ocis/ocs/pkg/service/v0" ) @@ -25,19 +26,15 @@ func Server(opts ...Option) (http.Service, error) { svc.Logger(options.Logger), svc.Config(options.Config), svc.Middleware( - middleware.Trace, + middleware.TraceContext, middleware.RealIP, + ocsmw.LogTrace, middleware.RequestID, middleware.NoCache, middleware.Cors, middleware.Secure, - middleware.Version( - options.Config.Service.Name, - options.Config.Service.Version, - ), - middleware.Logger( - options.Logger, - ), + middleware.Version(options.Config.Service.Name, options.Config.Service.Version), + middleware.Logger(options.Logger), ), ) diff --git a/ocs/pkg/service/v0/groups.go b/ocs/pkg/service/v0/groups.go index 57c3f6c7c..a8c461d00 100644 --- a/ocs/pkg/service/v0/groups.go +++ b/ocs/pkg/service/v0/groups.go @@ -9,15 +9,15 @@ import ( "regexp" "strconv" - "github.com/cs3org/reva/pkg/user" - merrors "github.com/asim/go-micro/v3/errors" + "github.com/cs3org/reva/pkg/user" "github.com/go-chi/chi" "github.com/go-chi/render" - accounts "github.com/owncloud/ocis/accounts/pkg/proto/v0" "github.com/owncloud/ocis/ocs/pkg/service/v0/data" "github.com/owncloud/ocis/ocs/pkg/service/v0/response" + ocstracing "github.com/owncloud/ocis/ocs/pkg/tracing" + "go.opentelemetry.io/otel/attribute" ) // ListUserGroups lists a users groups @@ -32,6 +32,16 @@ func (o Ocs) ListUserGroups(w http.ResponseWriter, r *http.Request) { if u.Username == userid { // the OCS API is a REST API and it uses the username to look for groups. If the id from the user in the context // differs from that of the url we can assume we are an admin because we are past the selfOrAdmin middleware. + + if o.config.Tracing.Enabled { + _, span := ocstracing.TraceProvider. + Tracer("ocs"). + Start(r.Context(), "ListUserGroups") + defer span.End() + + span.SetAttributes(attribute.Any("groups", u.Groups)) + } + if len(u.Groups) > 0 { mustNotFail(render.Render(w, r, response.DataRender(&data.Groups{Groups: u.Groups}))) return @@ -82,6 +92,16 @@ func (o Ocs) ListUserGroups(w http.ResponseWriter, r *http.Request) { } o.logger.Error().Err(err).Int("count", len(groups)).Str("userid", account.Id).Msg("listing groups for user") + + if o.config.Tracing.Enabled { + _, span := ocstracing.TraceProvider. + Tracer("ocs"). + Start(r.Context(), "ListUserGroups") + defer span.End() + + span.SetAttributes(attribute.Any("groups", groups)) + } + mustNotFail(render.Render(w, r, response.DataRender(&data.Groups{Groups: groups}))) } @@ -245,6 +265,15 @@ func (o Ocs) ListGroups(w http.ResponseWriter, r *http.Request) { groups = append(groups, res.Groups[i].OnPremisesSamAccountName) } + if o.config.Tracing.Enabled { + _, span := ocstracing.TraceProvider. + Tracer("ocs"). + Start(r.Context(), "ListGroups") + defer span.End() + + span.SetAttributes(attribute.Any("groups", groups)) + } + mustNotFail(render.Render(w, r, response.DataRender(&data.Groups{Groups: groups}))) } diff --git a/ocs/pkg/service/v0/tracing.go b/ocs/pkg/service/v0/tracing.go index 341aa923b..5403996ce 100644 --- a/ocs/pkg/service/v0/tracing.go +++ b/ocs/pkg/service/v0/tracing.go @@ -19,7 +19,7 @@ type tracing struct { // ServeHTTP implements the Service interface. func (t tracing) ServeHTTP(w http.ResponseWriter, r *http.Request) { - middleware.Trace(t.next).ServeHTTP(w, r) + middleware.TraceContext(t.next).ServeHTTP(w, r) } // GetConfig implements the Service interface. diff --git a/ocs/pkg/service/v0/users.go b/ocs/pkg/service/v0/users.go index 4f86f7dd5..75a052365 100644 --- a/ocs/pkg/service/v0/users.go +++ b/ocs/pkg/service/v0/users.go @@ -9,6 +9,10 @@ import ( "strconv" "strings" + "go.opentelemetry.io/otel/attribute" + + ocstracing "github.com/owncloud/ocis/ocs/pkg/tracing" + "github.com/asim/go-micro/plugins/client/grpc/v3" merrors "github.com/asim/go-micro/v3/errors" gateway "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1" @@ -25,7 +29,6 @@ import ( accounts "github.com/owncloud/ocis/accounts/pkg/proto/v0" "github.com/owncloud/ocis/ocs/pkg/service/v0/data" "github.com/owncloud/ocis/ocs/pkg/service/v0/response" - ocstracing "github.com/owncloud/ocis/ocs/pkg/tracing" storepb "github.com/owncloud/ocis/store/pkg/proto/v0" "github.com/pkg/errors" "google.golang.org/genproto/protobuf/field_mask" @@ -91,16 +94,13 @@ func (o Ocs) GetUser(w http.ResponseWriter, r *http.Request) { var account *accounts.Account var err error - ctx, span := ocstracing.TraceProvider.Tracer("ocs").Start(r.Context(), "GetUser") - defer span.End() - switch { case userid == "": mustNotFail(render.Render(w, r, response.ErrRender(data.MetaBadRequest.StatusCode, "missing user in context"))) case o.config.AccountBackend == "accounts": - account, err = o.fetchAccountByUsername(ctx, userid) + account, err = o.fetchAccountByUsername(r.Context(), userid) case o.config.AccountBackend == "cs3": - account, err = o.fetchAccountFromCS3Backend(ctx, userid) + account, err = o.fetchAccountFromCS3Backend(r.Context(), userid) default: o.logger.Fatal().Msgf("Invalid accounts backend type '%s'", o.config.AccountBackend) } @@ -147,6 +147,16 @@ func (o Ocs) GetUser(w http.ResponseWriter, r *http.Request) { Definition: "default", }, } + + if o.config.Tracing.Enabled { + _, span := ocstracing.TraceProvider. + Tracer("ocs"). + Start(r.Context(), "GetUser") + defer span.End() + + span.SetAttributes(attribute.Any("user", d)) + } + mustNotFail(render.Render(w, r, response.DataRender(d))) } diff --git a/proxy/pkg/command/server.go b/proxy/pkg/command/server.go index 0686f984e..48420db85 100644 --- a/proxy/pkg/command/server.go +++ b/proxy/pkg/command/server.go @@ -178,7 +178,7 @@ func loadMiddlewares(ctx context.Context, l log.Logger, cfg *config.Config) alic return alice.New( // first make sure we log all requests and redirect to https if necessary - pkgmiddleware.Trace, + pkgmiddleware.TraceContext, pkgmiddleware.RealIP, pkgmiddleware.RequestID, middleware.AccessLog(l), diff --git a/proxy/pkg/proxy/proxy.go b/proxy/pkg/proxy/proxy.go index 97c6ade90..a7d27a7c5 100644 --- a/proxy/pkg/proxy/proxy.go +++ b/proxy/pkg/proxy/proxy.go @@ -226,6 +226,7 @@ func (p *MultiHostReverseProxy) ServeHTTP(w http.ResponseWriter, r *http.Request defer span.End() proxytracing.Propagator.Inject(ctx, propagation.HeaderCarrier(r.Header)) } + p.ReverseProxy.ServeHTTP(w, r.WithContext(ctx)) } From 43a97f6bac46d30251824141d18d473cd7c72efd Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Mon, 9 Aug 2021 15:47:53 +0200 Subject: [PATCH 10/31] remove redundant middleware --- accounts/pkg/service/v0/tracing.go | 76 ------------------------------ ocs/pkg/server/http/server.go | 3 +- 2 files changed, 1 insertion(+), 78 deletions(-) delete mode 100644 accounts/pkg/service/v0/tracing.go diff --git a/accounts/pkg/service/v0/tracing.go b/accounts/pkg/service/v0/tracing.go deleted file mode 100644 index ff27c19cd..000000000 --- a/accounts/pkg/service/v0/tracing.go +++ /dev/null @@ -1,76 +0,0 @@ -package service - -import ( - "context" - - "github.com/golang/protobuf/ptypes/empty" - v0proto "github.com/owncloud/ocis/accounts/pkg/proto/v0" - "go.opencensus.io/trace" -) - -// NewTracing returns a service that instruments traces. -func NewTracing(next v0proto.AccountsServiceHandler) v0proto.AccountsServiceHandler { - return tracing{ - next: next, - } -} - -type tracing struct { - next v0proto.AccountsServiceHandler -} - -func (t tracing) ListAccounts(ctx context.Context, req *v0proto.ListAccountsRequest, rsp *v0proto.ListAccountsResponse) error { - ctx, span := trace.StartSpan(ctx, "Accounts.ListAccounts") - defer span.End() - - span.Annotate([]trace.Attribute{ - trace.Int64Attribute("page_size", int64(req.PageSize)), - trace.StringAttribute("page_token", req.PageToken), - trace.StringAttribute("field_mask", req.FieldMask.String()), - }, "Execute Accounts.ListAccount handler") - - return t.next.ListAccounts(ctx, req, rsp) -} - -func (t tracing) GetAccount(ctx context.Context, req *v0proto.GetAccountRequest, acc *v0proto.Account) error { - ctx, span := trace.StartSpan(ctx, "Accounts.GetAccount") - defer span.End() - - span.Annotate([]trace.Attribute{ - trace.StringAttribute("id", req.Id), - }, "Execute Accounts.GetAccount handler") - - return t.next.GetAccount(ctx, req, acc) -} - -func (t tracing) CreateAccount(ctx context.Context, req *v0proto.CreateAccountRequest, acc *v0proto.Account) error { - ctx, span := trace.StartSpan(ctx, "Accounts.CreateAccount") - defer span.End() - - span.Annotate([]trace.Attribute{ - trace.StringAttribute("account", req.Account.String()), - }, "Execute Accounts.CreateAccount handler") - - return t.next.CreateAccount(ctx, req, acc) -} - -func (t tracing) UpdateAccount(ctx context.Context, req *v0proto.UpdateAccountRequest, acc *v0proto.Account) error { - ctx, span := trace.StartSpan(ctx, "Accounts.UpdateAccount") - defer span.End() - - span.Annotate([]trace.Attribute{ - trace.StringAttribute("account", req.Account.String()), - }, "Execute Accounts.UpdateAccount handler") - - return t.next.UpdateAccount(ctx, req, acc) -} - -func (t tracing) DeleteAccount(ctx context.Context, req *v0proto.DeleteAccountRequest, e *empty.Empty) error { - ctx, span := trace.StartSpan(ctx, "Accounts.DeleteAccount") - defer span.End() - - span.Annotate([]trace.Attribute{ - trace.StringAttribute("id", req.Id), - }, "Execute Accounts.DeleteAccout handler") - return t.next.DeleteAccount(ctx, req, e) -} diff --git a/ocs/pkg/server/http/server.go b/ocs/pkg/server/http/server.go index 2dd365501..f6a35138a 100644 --- a/ocs/pkg/server/http/server.go +++ b/ocs/pkg/server/http/server.go @@ -26,15 +26,14 @@ func Server(opts ...Option) (http.Service, error) { svc.Logger(options.Logger), svc.Config(options.Config), svc.Middleware( - middleware.TraceContext, middleware.RealIP, - ocsmw.LogTrace, middleware.RequestID, middleware.NoCache, middleware.Cors, middleware.Secure, middleware.Version(options.Config.Service.Name, options.Config.Service.Version), middleware.Logger(options.Logger), + ocsmw.LogTrace, ), ) From 0eb403d6581e40ff6ae4cad10b16f578de9c1508 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Mon, 9 Aug 2021 15:52:06 +0200 Subject: [PATCH 11/31] replace go.opencensus.io with opentelemetry --- accounts/pkg/server/http/server.go | 1 + accounts/pkg/service/v0/accounts.go | 41 ++++++++++- accounts/pkg/tracing/tracing.go | 109 ++++++++++------------------ ocs/pkg/middleware/logtrace.go | 2 +- 4 files changed, 79 insertions(+), 74 deletions(-) diff --git a/accounts/pkg/server/http/server.go b/accounts/pkg/server/http/server.go index a71ca6f8f..af237d8b8 100644 --- a/accounts/pkg/server/http/server.go +++ b/accounts/pkg/server/http/server.go @@ -29,6 +29,7 @@ func Server(opts ...Option) http.Service { mux := chi.NewMux() mux.Use(middleware.RealIP) + mux.Use(middleware.TraceContext) mux.Use(middleware.RequestID) mux.Use(middleware.NoCache) mux.Use(middleware.Cors) diff --git a/accounts/pkg/service/v0/accounts.go b/accounts/pkg/service/v0/accounts.go index a40731fbd..d0e7c311f 100644 --- a/accounts/pkg/service/v0/accounts.go +++ b/accounts/pkg/service/v0/accounts.go @@ -12,10 +12,7 @@ import ( "strconv" "time" - "github.com/owncloud/ocis/ocis-pkg/sync" - "golang.org/x/crypto/bcrypt" - - "github.com/owncloud/ocis/ocis-pkg/log" + "go.opentelemetry.io/otel/attribute" merrors "github.com/asim/go-micro/v3/errors" "github.com/asim/go-micro/v3/metadata" @@ -24,11 +21,15 @@ import ( fieldmask_utils "github.com/mennanov/fieldmask-utils" "github.com/owncloud/ocis/accounts/pkg/proto/v0" "github.com/owncloud/ocis/accounts/pkg/storage" + accTracing "github.com/owncloud/ocis/accounts/pkg/tracing" + "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/roles" + "github.com/owncloud/ocis/ocis-pkg/sync" settings "github.com/owncloud/ocis/settings/pkg/proto/v0" settings_svc "github.com/owncloud/ocis/settings/pkg/service/v0" "github.com/rs/zerolog" + "golang.org/x/crypto/bcrypt" "google.golang.org/genproto/protobuf/field_mask" p "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/known/timestamppb" @@ -124,6 +125,14 @@ func (s Service) getInMemoryServiceUser() proto.Account { // ListAccounts implements the AccountsServiceHandler interface // the query contains account properties func (s Service) ListAccounts(ctx context.Context, in *proto.ListAccountsRequest, out *proto.ListAccountsResponse) (err error) { + ctx, span := accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.ListAccounts") + defer span.End() + + span.SetAttributes( + attribute.KeyValue{Key: "page_size", Value: attribute.Int64Value(int64(in.PageSize))}, + attribute.KeyValue{Key: "page_token", Value: attribute.StringValue(in.PageToken)}, + ) + hasSelf := s.hasSelfManagementPermissions(ctx) hasManagement := s.hasAccountManagementPermissions(ctx) if !hasSelf && !hasManagement { @@ -269,6 +278,13 @@ func (s Service) findAccountsByQuery(ctx context.Context, query string) ([]strin // GetAccount implements the AccountsServiceHandler interface func (s Service) GetAccount(ctx context.Context, in *proto.GetAccountRequest, out *proto.Account) (err error) { + ctx, span := accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.GetAccount") + defer span.End() + + span.SetAttributes( + attribute.KeyValue{Key: "account_id", Value: attribute.StringValue(in.Id)}, + ) + hasSelf := s.hasSelfManagementPermissions(ctx) hasManagement := s.hasAccountManagementPermissions(ctx) if !hasSelf && !hasManagement { @@ -317,6 +333,13 @@ func (s Service) GetAccount(ctx context.Context, in *proto.GetAccountRequest, ou // CreateAccount implements the AccountsServiceHandler interface func (s Service) CreateAccount(ctx context.Context, in *proto.CreateAccountRequest, out *proto.Account) (err error) { + ctx, span := accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.CreateAccount") + defer span.End() + + span.SetAttributes( + attribute.KeyValue{Key: "account", Value: attribute.StringValue(in.Account.String())}, + ) + if !s.hasAccountManagementPermissions(ctx) { return merrors.Forbidden(s.id, "no permission for CreateAccount") } @@ -449,6 +472,13 @@ func (s Service) rollbackCreateAccount(ctx context.Context, acc *proto.Account) // read only fields are ignored // TODO how can we unset specific values? using the update mask func (s Service) UpdateAccount(ctx context.Context, in *proto.UpdateAccountRequest, out *proto.Account) (err error) { + ctx, span := accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.UpdateAccount") + defer span.End() + + span.SetAttributes( + attribute.KeyValue{Key: "account", Value: attribute.StringValue(in.Account.String())}, + ) + hasSelf := s.hasSelfManagementPermissions(ctx) hasManagement := s.hasAccountManagementPermissions(ctx) if !hasSelf && !hasManagement { @@ -615,6 +645,9 @@ var updatableAccountPaths = map[string]struct{}{ // DeleteAccount implements the AccountsServiceHandler interface func (s Service) DeleteAccount(ctx context.Context, in *proto.DeleteAccountRequest, out *empty.Empty) (err error) { + ctx, span := accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.DeleteAccount") + defer span.End() + if !s.hasAccountManagementPermissions(ctx) { return merrors.Forbidden(s.id, "no permission for DeleteAccount") } diff --git a/accounts/pkg/tracing/tracing.go b/accounts/pkg/tracing/tracing.go index d16ded696..5004b54fb 100644 --- a/accounts/pkg/tracing/tracing.go +++ b/accounts/pkg/tracing/tracing.go @@ -1,87 +1,58 @@ package tracing import ( - "time" - - "contrib.go.opencensus.io/exporter/jaeger" - "contrib.go.opencensus.io/exporter/ocagent" - "contrib.go.opencensus.io/exporter/zipkin" - openzipkin "github.com/openzipkin/zipkin-go" - zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http" "github.com/owncloud/ocis/accounts/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "go.opencensus.io/stats/view" - "go.opencensus.io/trace" + "go.opentelemetry.io/otel/exporters/jaeger" + "go.opentelemetry.io/otel/propagation" + "go.opentelemetry.io/otel/sdk/resource" + sdktrace "go.opentelemetry.io/otel/sdk/trace" + semconv "go.opentelemetry.io/otel/semconv/v1.4.0" +) + +var ( + // Propagator ensures the entire module uses the same trace propagation strategy. + Propagator propagation.TextMapPropagator + + // TraceProvider is the global trace provider for the proxy service. + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config, logger log.Logger) error { if cfg.Tracing.Enabled { switch t := cfg.Tracing.Type; t { - case "agent": - exporter, err := ocagent.NewExporter( - ocagent.WithReconnectionPeriod(5*time.Second), - ocagent.WithAddress(cfg.Tracing.Endpoint), - ocagent.WithServiceName(cfg.Tracing.Service), - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create agent tracing") - return err - } - trace.RegisterExporter(exporter) - view.RegisterExporter(exporter) case "jaeger": - exporter, err := jaeger.NewExporter( - jaeger.Options{ - AgentEndpoint: cfg.Tracing.Endpoint, - CollectorEndpoint: cfg.Tracing.Collector, - Process: jaeger.Process{ - ServiceName: cfg.Tracing.Service, - }, - }, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create jaeger tracing") - return err + { + exp, err := jaeger.New( + jaeger.WithCollectorEndpoint( + jaeger.WithEndpoint(cfg.Tracing.Collector), + ), + ) + if err != nil { + panic(err) + } + + // set package level trace provider and propagator. + TraceProvider = sdktrace.NewTracerProvider( + sdktrace.WithBatcher(exp), + sdktrace.WithResource(resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceNameKey.String("accounts")), + ), + ) + + Propagator = propagation.NewCompositeTextMapPropagator( + propagation.Baggage{}, + propagation.TraceContext{}, + ) } - trace.RegisterExporter(exporter) + case "agent": + fallthrough case "zipkin": - endpoint, err := openzipkin.NewEndpoint( - cfg.Tracing.Service, - cfg.Tracing.Endpoint, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create zipkin tracing") - return err - } - exporter := zipkin.NewExporter( - zipkinhttp.NewReporter( - cfg.Tracing.Collector, - ), - endpoint, - ) - trace.RegisterExporter(exporter) + fallthrough default: - logger.Warn(). - Str("type", t). - Msg("Unknown tracing backend") + logger.Warn().Str("type", t).Msg("Unknown tracing backend") } - trace.ApplyConfig( - trace.Config{ - DefaultSampler: trace.AlwaysSample(), - }, - ) } else { logger.Debug(). Msg("Tracing is not enabled") diff --git a/ocs/pkg/middleware/logtrace.go b/ocs/pkg/middleware/logtrace.go index bea2d339d..d35bd2930 100644 --- a/ocs/pkg/middleware/logtrace.go +++ b/ocs/pkg/middleware/logtrace.go @@ -12,7 +12,7 @@ var propagator = propagation.NewCompositeTextMapPropagator( propagation.TraceContext{}, ) -// LogTrace unpacks the request context looking for an existing trace id. +// LogTrace Sets the initial trace in the ocs service. func LogTrace(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { ctx, span := ocstracing.TraceProvider.Tracer("ocs").Start(r.Context(), r.URL.Path) From 45f29fdc98e8e36c8eb1f05d3ce9fb10efbcea32 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Mon, 9 Aug 2021 15:58:36 +0200 Subject: [PATCH 12/31] replace go.opencensus.io with opentelemetry in idp --- idp/pkg/server/http/server.go | 1 + idp/pkg/tracing/tracing.go | 109 +++++++++++++--------------------- 2 files changed, 41 insertions(+), 69 deletions(-) diff --git a/idp/pkg/server/http/server.go b/idp/pkg/server/http/server.go index 72fab91c8..3b3b363f8 100644 --- a/idp/pkg/server/http/server.go +++ b/idp/pkg/server/http/server.go @@ -57,6 +57,7 @@ func Server(opts ...Option) (http.Service, error) { svc.Logger(options.Logger), svc.Config(options.Config), svc.Middleware( + middleware.TraceContext, middleware.RealIP, middleware.RequestID, middleware.NoCache, diff --git a/idp/pkg/tracing/tracing.go b/idp/pkg/tracing/tracing.go index cfda141a4..56c7df873 100644 --- a/idp/pkg/tracing/tracing.go +++ b/idp/pkg/tracing/tracing.go @@ -1,87 +1,58 @@ package tracing import ( - "time" - - "contrib.go.opencensus.io/exporter/jaeger" - "contrib.go.opencensus.io/exporter/ocagent" - "contrib.go.opencensus.io/exporter/zipkin" - openzipkin "github.com/openzipkin/zipkin-go" - zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http" "github.com/owncloud/ocis/idp/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "go.opencensus.io/stats/view" - "go.opencensus.io/trace" + "go.opentelemetry.io/otel/exporters/jaeger" + "go.opentelemetry.io/otel/propagation" + "go.opentelemetry.io/otel/sdk/resource" + sdktrace "go.opentelemetry.io/otel/sdk/trace" + semconv "go.opentelemetry.io/otel/semconv/v1.4.0" +) + +var ( + // Propagator ensures the entire module uses the same trace propagation strategy. + Propagator propagation.TextMapPropagator + + // TraceProvider is the global trace provider for the proxy service. + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config, logger log.Logger) error { if cfg.Tracing.Enabled { switch t := cfg.Tracing.Type; t { - case "agent": - exporter, err := ocagent.NewExporter( - ocagent.WithReconnectionPeriod(5*time.Second), - ocagent.WithAddress(cfg.Tracing.Endpoint), - ocagent.WithServiceName(cfg.Tracing.Service), - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create agent tracing") - return err - } - trace.RegisterExporter(exporter) - view.RegisterExporter(exporter) case "jaeger": - exporter, err := jaeger.NewExporter( - jaeger.Options{ - AgentEndpoint: cfg.Tracing.Endpoint, - CollectorEndpoint: cfg.Tracing.Collector, - Process: jaeger.Process{ - ServiceName: cfg.Tracing.Service, - }, - }, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create jaeger tracing") - return err + { + exp, err := jaeger.New( + jaeger.WithCollectorEndpoint( + jaeger.WithEndpoint(cfg.Tracing.Collector), + ), + ) + if err != nil { + panic(err) + } + + // set package level trace provider and propagator. + TraceProvider = sdktrace.NewTracerProvider( + sdktrace.WithBatcher(exp), + sdktrace.WithResource(resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceNameKey.String("idp")), + ), + ) + + Propagator = propagation.NewCompositeTextMapPropagator( + propagation.Baggage{}, + propagation.TraceContext{}, + ) } - trace.RegisterExporter(exporter) + case "agent": + fallthrough case "zipkin": - endpoint, err := openzipkin.NewEndpoint( - cfg.Tracing.Service, - cfg.Tracing.Endpoint, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create zipkin tracing") - return err - } - exporter := zipkin.NewExporter( - zipkinhttp.NewReporter( - cfg.Tracing.Collector, - ), - endpoint, - ) - trace.RegisterExporter(exporter) + fallthrough default: - logger.Warn(). - Str("type", t). - Msg("Unknown tracing backend") + logger.Warn().Str("type", t).Msg("Unknown tracing backend") } - trace.ApplyConfig( - trace.Config{ - DefaultSampler: trace.AlwaysSample(), - }, - ) } else { logger.Debug(). Msg("Tracing is not enabled") From f5c3b49d1286f95a321bf92f4e5b68f19c5e5272 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Mon, 9 Aug 2021 16:00:51 +0200 Subject: [PATCH 13/31] replace go.opencensus.io with opentelemetry in store --- store/pkg/tracing/tracing.go | 109 +++++++++++++---------------------- 1 file changed, 40 insertions(+), 69 deletions(-) diff --git a/store/pkg/tracing/tracing.go b/store/pkg/tracing/tracing.go index e9b045687..fca7419ac 100644 --- a/store/pkg/tracing/tracing.go +++ b/store/pkg/tracing/tracing.go @@ -1,87 +1,58 @@ package tracing import ( - "time" - - "contrib.go.opencensus.io/exporter/jaeger" - "contrib.go.opencensus.io/exporter/ocagent" - "contrib.go.opencensus.io/exporter/zipkin" - openzipkin "github.com/openzipkin/zipkin-go" - zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/store/pkg/config" - "go.opencensus.io/stats/view" - "go.opencensus.io/trace" + "go.opentelemetry.io/otel/exporters/jaeger" + "go.opentelemetry.io/otel/propagation" + "go.opentelemetry.io/otel/sdk/resource" + sdktrace "go.opentelemetry.io/otel/sdk/trace" + semconv "go.opentelemetry.io/otel/semconv/v1.4.0" +) + +var ( + // Propagator ensures the entire module uses the same trace propagation strategy. + Propagator propagation.TextMapPropagator + + // TraceProvider is the global trace provider for the proxy service. + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config, logger log.Logger) error { if cfg.Tracing.Enabled { switch t := cfg.Tracing.Type; t { - case "agent": - exporter, err := ocagent.NewExporter( - ocagent.WithReconnectionPeriod(5*time.Second), - ocagent.WithAddress(cfg.Tracing.Endpoint), - ocagent.WithServiceName(cfg.Tracing.Service), - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create agent tracing") - return err - } - trace.RegisterExporter(exporter) - view.RegisterExporter(exporter) case "jaeger": - exporter, err := jaeger.NewExporter( - jaeger.Options{ - AgentEndpoint: cfg.Tracing.Endpoint, - CollectorEndpoint: cfg.Tracing.Collector, - Process: jaeger.Process{ - ServiceName: cfg.Tracing.Service, - }, - }, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create jaeger tracing") - return err + { + exp, err := jaeger.New( + jaeger.WithCollectorEndpoint( + jaeger.WithEndpoint(cfg.Tracing.Collector), + ), + ) + if err != nil { + panic(err) + } + + // set package level trace provider and propagator. + TraceProvider = sdktrace.NewTracerProvider( + sdktrace.WithBatcher(exp), + sdktrace.WithResource(resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceNameKey.String("store")), + ), + ) + + Propagator = propagation.NewCompositeTextMapPropagator( + propagation.Baggage{}, + propagation.TraceContext{}, + ) } - trace.RegisterExporter(exporter) + case "agent": + fallthrough case "zipkin": - endpoint, err := openzipkin.NewEndpoint( - cfg.Tracing.Service, - cfg.Tracing.Endpoint, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create zipkin tracing") - return err - } - exporter := zipkin.NewExporter( - zipkinhttp.NewReporter( - cfg.Tracing.Collector, - ), - endpoint, - ) - trace.RegisterExporter(exporter) + fallthrough default: - logger.Warn(). - Str("type", t). - Msg("Unknown tracing backend") + logger.Warn().Str("type", t).Msg("Unknown tracing backend") } - trace.ApplyConfig( - trace.Config{ - DefaultSampler: trace.AlwaysSample(), - }, - ) } else { logger.Debug(). Msg("Tracing is not enabled") From 2a60b6b93301805abdb6ee21257e8d91bc0465ca Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Mon, 9 Aug 2021 16:15:22 +0200 Subject: [PATCH 14/31] replace go.opencensus.io with opentelemetry in thumbnails --- thumbnails/pkg/server/grpc/server.go | 1 + thumbnails/pkg/service/v0/tracing.go | 18 +++-- thumbnails/pkg/tracing/tracing.go | 109 ++++++++++----------------- 3 files changed, 51 insertions(+), 77 deletions(-) diff --git a/thumbnails/pkg/server/grpc/server.go b/thumbnails/pkg/server/grpc/server.go index 8bfce8277..7108f77bf 100644 --- a/thumbnails/pkg/server/grpc/server.go +++ b/thumbnails/pkg/server/grpc/server.go @@ -47,6 +47,7 @@ func NewService(opts ...Option) grpc.Service { ) thumbnail = svc.NewInstrument(thumbnail, options.Metrics) thumbnail = svc.NewLogging(thumbnail, options.Logger) + thumbnail = svc.NewTracing(thumbnail) } _ = proto.RegisterThumbnailServiceHandler( diff --git a/thumbnails/pkg/service/v0/tracing.go b/thumbnails/pkg/service/v0/tracing.go index 8f4ffd271..3850860d7 100644 --- a/thumbnails/pkg/service/v0/tracing.go +++ b/thumbnails/pkg/service/v0/tracing.go @@ -4,7 +4,8 @@ import ( "context" v0proto "github.com/owncloud/ocis/thumbnails/pkg/proto/v0" - "go.opencensus.io/trace" + thumbnailsTracing "github.com/owncloud/ocis/thumbnails/pkg/tracing" + "go.opentelemetry.io/otel/attribute" ) // NewTracing returns a service that instruments traces. @@ -20,15 +21,16 @@ type tracing struct { // GetThumbnail implements the ThumbnailServiceHandler interface. func (t tracing) GetThumbnail(ctx context.Context, req *v0proto.GetThumbnailRequest, rsp *v0proto.GetThumbnailResponse) error { - ctx, span := trace.StartSpan(ctx, "Thumbnails.GetThumbnail") + tracer := thumbnailsTracing.TraceProvider.Tracer("thumbnails") + ctx, span := tracer.Start(ctx, "Thumbnails.GetThumbnail") defer span.End() - span.Annotate([]trace.Attribute{ - trace.StringAttribute("filepath", req.Filepath), - trace.StringAttribute("thumbnail_type", req.ThumbnailType.String()), - trace.Int64Attribute("width", int64(req.Width)), - trace.Int64Attribute("height", int64(req.Height)), - }, "Execute Thumbnails.GetThumbnail handler") + span.SetAttributes( + attribute.KeyValue{"filepath", attribute.StringValue(req.Filepath)}, + attribute.KeyValue{"thumbnail_type", attribute.StringValue(req.ThumbnailType.String())}, + attribute.KeyValue{"width", attribute.IntValue(int(req.Width))}, + attribute.KeyValue{"height", attribute.IntValue(int(req.Height))}, + ) return t.next.GetThumbnail(ctx, req, rsp) } diff --git a/thumbnails/pkg/tracing/tracing.go b/thumbnails/pkg/tracing/tracing.go index ca2256066..eb6e16626 100644 --- a/thumbnails/pkg/tracing/tracing.go +++ b/thumbnails/pkg/tracing/tracing.go @@ -1,87 +1,58 @@ package tracing import ( - "time" - - "contrib.go.opencensus.io/exporter/jaeger" - "contrib.go.opencensus.io/exporter/ocagent" - "contrib.go.opencensus.io/exporter/zipkin" - openzipkin "github.com/openzipkin/zipkin-go" - zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/thumbnails/pkg/config" - "go.opencensus.io/stats/view" - "go.opencensus.io/trace" + "go.opentelemetry.io/otel/exporters/jaeger" + "go.opentelemetry.io/otel/propagation" + "go.opentelemetry.io/otel/sdk/resource" + sdktrace "go.opentelemetry.io/otel/sdk/trace" + semconv "go.opentelemetry.io/otel/semconv/v1.4.0" +) + +var ( + // Propagator ensures the entire module uses the same trace propagation strategy. + Propagator propagation.TextMapPropagator + + // TraceProvider is the global trace provider for the proxy service. + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config, logger log.Logger) error { if cfg.Tracing.Enabled { switch t := cfg.Tracing.Type; t { - case "agent": - exporter, err := ocagent.NewExporter( - ocagent.WithReconnectionPeriod(5*time.Second), - ocagent.WithAddress(cfg.Tracing.Endpoint), - ocagent.WithServiceName(cfg.Tracing.Service), - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create agent tracing") - return err - } - trace.RegisterExporter(exporter) - view.RegisterExporter(exporter) case "jaeger": - exporter, err := jaeger.NewExporter( - jaeger.Options{ - AgentEndpoint: cfg.Tracing.Endpoint, - CollectorEndpoint: cfg.Tracing.Collector, - Process: jaeger.Process{ - ServiceName: cfg.Tracing.Service, - }, - }, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create jaeger tracing") - return err + { + exp, err := jaeger.New( + jaeger.WithCollectorEndpoint( + jaeger.WithEndpoint(cfg.Tracing.Collector), + ), + ) + if err != nil { + panic(err) + } + + // set package level trace provider and propagator. + TraceProvider = sdktrace.NewTracerProvider( + sdktrace.WithBatcher(exp), + sdktrace.WithResource(resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceNameKey.String("thumbnails")), + ), + ) + + Propagator = propagation.NewCompositeTextMapPropagator( + propagation.Baggage{}, + propagation.TraceContext{}, + ) } - trace.RegisterExporter(exporter) + case "agent": + fallthrough case "zipkin": - endpoint, err := openzipkin.NewEndpoint( - cfg.Tracing.Service, - cfg.Tracing.Endpoint, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create zipkin tracing") - return err - } - exporter := zipkin.NewExporter( - zipkinhttp.NewReporter( - cfg.Tracing.Collector, - ), - endpoint, - ) - trace.RegisterExporter(exporter) + fallthrough default: - logger.Warn(). - Str("type", t). - Msg("Unknown tracing backend") + logger.Warn().Str("type", t).Msg("Unknown tracing backend") } - trace.ApplyConfig( - trace.Config{ - DefaultSampler: trace.AlwaysSample(), - }, - ) } else { logger.Debug(). Msg("Tracing is not enabled") From fe530e9a27d9edc5d0368c8d260c8a9edafe1ebf Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Mon, 9 Aug 2021 17:14:36 +0200 Subject: [PATCH 15/31] prevent having a nil traceprovider --- accounts/pkg/tracing/tracing.go | 2 +- idp/pkg/server/http/server.go | 2 +- idp/pkg/tracing/tracing.go | 2 +- ocs/pkg/tracing/tracing.go | 2 +- proxy/pkg/tracing/tracing.go | 2 +- store/pkg/tracing/tracing.go | 2 +- thumbnails/pkg/service/v0/tracing.go | 24 +++++++++++++++--------- thumbnails/pkg/tracing/tracing.go | 2 +- 8 files changed, 22 insertions(+), 16 deletions(-) diff --git a/accounts/pkg/tracing/tracing.go b/accounts/pkg/tracing/tracing.go index 5004b54fb..dbef82f75 100644 --- a/accounts/pkg/tracing/tracing.go +++ b/accounts/pkg/tracing/tracing.go @@ -15,7 +15,7 @@ var ( Propagator propagation.TextMapPropagator // TraceProvider is the global trace provider for the proxy service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = sdktrace.NewTracerProvider() ) func Configure(cfg *config.Config, logger log.Logger) error { diff --git a/idp/pkg/server/http/server.go b/idp/pkg/server/http/server.go index 3b3b363f8..988f5bc38 100644 --- a/idp/pkg/server/http/server.go +++ b/idp/pkg/server/http/server.go @@ -74,7 +74,7 @@ func Server(opts ...Option) (http.Service, error) { ) { - handle = svc.NewTracing(handle) + //handle = svc.NewTracing(handle) handle = svc.NewInstrument(handle, options.Metrics) handle = svc.NewLogging(handle, options.Logger) } diff --git a/idp/pkg/tracing/tracing.go b/idp/pkg/tracing/tracing.go index 56c7df873..7919a1a7f 100644 --- a/idp/pkg/tracing/tracing.go +++ b/idp/pkg/tracing/tracing.go @@ -15,7 +15,7 @@ var ( Propagator propagation.TextMapPropagator // TraceProvider is the global trace provider for the proxy service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = sdktrace.NewTracerProvider() ) func Configure(cfg *config.Config, logger log.Logger) error { diff --git a/ocs/pkg/tracing/tracing.go b/ocs/pkg/tracing/tracing.go index 9b8f94a1f..309270d04 100644 --- a/ocs/pkg/tracing/tracing.go +++ b/ocs/pkg/tracing/tracing.go @@ -15,7 +15,7 @@ var ( Propagator propagation.TextMapPropagator // TraceProvider is the global trace provider for the proxy service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = sdktrace.NewTracerProvider() ) func Configure(cfg *config.Config, logger log.Logger) error { diff --git a/proxy/pkg/tracing/tracing.go b/proxy/pkg/tracing/tracing.go index 4d6a7e5b3..5b1b69975 100644 --- a/proxy/pkg/tracing/tracing.go +++ b/proxy/pkg/tracing/tracing.go @@ -15,7 +15,7 @@ var ( Propagator propagation.TextMapPropagator // TraceProvider is the global trace provider for the proxy service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = sdktrace.NewTracerProvider() ) func Configure(cfg *config.Config, logger log.Logger) error { diff --git a/store/pkg/tracing/tracing.go b/store/pkg/tracing/tracing.go index fca7419ac..27af6fe2a 100644 --- a/store/pkg/tracing/tracing.go +++ b/store/pkg/tracing/tracing.go @@ -15,7 +15,7 @@ var ( Propagator propagation.TextMapPropagator // TraceProvider is the global trace provider for the proxy service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = sdktrace.NewTracerProvider() ) func Configure(cfg *config.Config, logger log.Logger) error { diff --git a/thumbnails/pkg/service/v0/tracing.go b/thumbnails/pkg/service/v0/tracing.go index 3850860d7..a6d3c15e1 100644 --- a/thumbnails/pkg/service/v0/tracing.go +++ b/thumbnails/pkg/service/v0/tracing.go @@ -3,6 +3,8 @@ package svc import ( "context" + "go.opentelemetry.io/otel/trace" + v0proto "github.com/owncloud/ocis/thumbnails/pkg/proto/v0" thumbnailsTracing "github.com/owncloud/ocis/thumbnails/pkg/tracing" "go.opentelemetry.io/otel/attribute" @@ -21,16 +23,20 @@ type tracing struct { // GetThumbnail implements the ThumbnailServiceHandler interface. func (t tracing) GetThumbnail(ctx context.Context, req *v0proto.GetThumbnailRequest, rsp *v0proto.GetThumbnailResponse) error { - tracer := thumbnailsTracing.TraceProvider.Tracer("thumbnails") - ctx, span := tracer.Start(ctx, "Thumbnails.GetThumbnail") - defer span.End() + var span trace.Span - span.SetAttributes( - attribute.KeyValue{"filepath", attribute.StringValue(req.Filepath)}, - attribute.KeyValue{"thumbnail_type", attribute.StringValue(req.ThumbnailType.String())}, - attribute.KeyValue{"width", attribute.IntValue(int(req.Width))}, - attribute.KeyValue{"height", attribute.IntValue(int(req.Height))}, - ) + if thumbnailsTracing.TraceProvider != nil { + tracer := thumbnailsTracing.TraceProvider.Tracer("thumbnails") + ctx, span = tracer.Start(ctx, "Thumbnails.GetThumbnail") + defer span.End() + + span.SetAttributes( + attribute.KeyValue{"filepath", attribute.StringValue(req.Filepath)}, + attribute.KeyValue{"thumbnail_type", attribute.StringValue(req.ThumbnailType.String())}, + attribute.KeyValue{"width", attribute.IntValue(int(req.Width))}, + attribute.KeyValue{"height", attribute.IntValue(int(req.Height))}, + ) + } return t.next.GetThumbnail(ctx, req, rsp) } diff --git a/thumbnails/pkg/tracing/tracing.go b/thumbnails/pkg/tracing/tracing.go index eb6e16626..29b04b6df 100644 --- a/thumbnails/pkg/tracing/tracing.go +++ b/thumbnails/pkg/tracing/tracing.go @@ -15,7 +15,7 @@ var ( Propagator propagation.TextMapPropagator // TraceProvider is the global trace provider for the proxy service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = sdktrace.NewTracerProvider() ) func Configure(cfg *config.Config, logger log.Logger) error { From ac087d0daee4f1605e3508238421c9f7d439eccb Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Mon, 9 Aug 2021 17:28:00 +0200 Subject: [PATCH 16/31] replace opencensus everywhere --- glauth/pkg/tracing/tracing.go | 109 +++++++++-------------- graph-explorer/pkg/tracing/tracing.go | 109 +++++++++-------------- graph/pkg/tracing/tracing.go | 109 +++++++++-------------- idp/pkg/middleware/static.go | 23 ++--- onlyoffice/pkg/tracing/tracing.go | 109 +++++++++-------------- settings/pkg/tracing/tracing.go | 120 ++++++++------------------ web/pkg/tracing/tracing.go | 109 +++++++++-------------- webdav/pkg/tracing/tracing.go | 109 +++++++++-------------- 8 files changed, 287 insertions(+), 510 deletions(-) diff --git a/glauth/pkg/tracing/tracing.go b/glauth/pkg/tracing/tracing.go index 74034fb61..6778a0127 100644 --- a/glauth/pkg/tracing/tracing.go +++ b/glauth/pkg/tracing/tracing.go @@ -1,87 +1,58 @@ package tracing import ( - "time" - - "contrib.go.opencensus.io/exporter/jaeger" - "contrib.go.opencensus.io/exporter/ocagent" - "contrib.go.opencensus.io/exporter/zipkin" - openzipkin "github.com/openzipkin/zipkin-go" - zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http" "github.com/owncloud/ocis/glauth/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "go.opencensus.io/stats/view" - "go.opencensus.io/trace" + "go.opentelemetry.io/otel/exporters/jaeger" + "go.opentelemetry.io/otel/propagation" + "go.opentelemetry.io/otel/sdk/resource" + sdktrace "go.opentelemetry.io/otel/sdk/trace" + semconv "go.opentelemetry.io/otel/semconv/v1.4.0" +) + +var ( + // Propagator ensures the entire module uses the same trace propagation strategy. + Propagator propagation.TextMapPropagator + + // TraceProvider is the global trace provider for the proxy service. + TraceProvider = sdktrace.NewTracerProvider() ) func Configure(cfg *config.Config, logger log.Logger) error { if cfg.Tracing.Enabled { switch t := cfg.Tracing.Type; t { - case "agent": - exporter, err := ocagent.NewExporter( - ocagent.WithReconnectionPeriod(5*time.Second), - ocagent.WithAddress(cfg.Tracing.Endpoint), - ocagent.WithServiceName(cfg.Tracing.Service), - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create agent tracing") - return err - } - trace.RegisterExporter(exporter) - view.RegisterExporter(exporter) case "jaeger": - exporter, err := jaeger.NewExporter( - jaeger.Options{ - AgentEndpoint: cfg.Tracing.Endpoint, - CollectorEndpoint: cfg.Tracing.Collector, - Process: jaeger.Process{ - ServiceName: cfg.Tracing.Service, - }, - }, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create jaeger tracing") - return err + { + exp, err := jaeger.New( + jaeger.WithCollectorEndpoint( + jaeger.WithEndpoint(cfg.Tracing.Collector), + ), + ) + if err != nil { + panic(err) + } + + // set package level trace provider and propagator. + TraceProvider = sdktrace.NewTracerProvider( + sdktrace.WithBatcher(exp), + sdktrace.WithResource(resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceNameKey.String("glauth")), + ), + ) + + Propagator = propagation.NewCompositeTextMapPropagator( + propagation.Baggage{}, + propagation.TraceContext{}, + ) } - trace.RegisterExporter(exporter) + case "agent": + fallthrough case "zipkin": - endpoint, err := openzipkin.NewEndpoint( - cfg.Tracing.Service, - cfg.Tracing.Endpoint, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create zipkin tracing") - return err - } - exporter := zipkin.NewExporter( - zipkinhttp.NewReporter( - cfg.Tracing.Collector, - ), - endpoint, - ) - trace.RegisterExporter(exporter) + fallthrough default: - logger.Warn(). - Str("type", t). - Msg("Unknown tracing backend") + logger.Warn().Str("type", t).Msg("Unknown tracing backend") } - trace.ApplyConfig( - trace.Config{ - DefaultSampler: trace.AlwaysSample(), - }, - ) } else { logger.Debug(). Msg("Tracing is not enabled") diff --git a/graph-explorer/pkg/tracing/tracing.go b/graph-explorer/pkg/tracing/tracing.go index 3ee186c18..9f9318e0f 100644 --- a/graph-explorer/pkg/tracing/tracing.go +++ b/graph-explorer/pkg/tracing/tracing.go @@ -1,87 +1,58 @@ package tracing import ( - "time" - - "contrib.go.opencensus.io/exporter/jaeger" - "contrib.go.opencensus.io/exporter/ocagent" - "contrib.go.opencensus.io/exporter/zipkin" - openzipkin "github.com/openzipkin/zipkin-go" - zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http" "github.com/owncloud/ocis/graph-explorer/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "go.opencensus.io/stats/view" - "go.opencensus.io/trace" + "go.opentelemetry.io/otel/exporters/jaeger" + "go.opentelemetry.io/otel/propagation" + "go.opentelemetry.io/otel/sdk/resource" + sdktrace "go.opentelemetry.io/otel/sdk/trace" + semconv "go.opentelemetry.io/otel/semconv/v1.4.0" +) + +var ( + // Propagator ensures the entire module uses the same trace propagation strategy. + Propagator propagation.TextMapPropagator + + // TraceProvider is the global trace provider for the proxy service. + TraceProvider = sdktrace.NewTracerProvider() ) func Configure(cfg *config.Config, logger log.Logger) error { if cfg.Tracing.Enabled { switch t := cfg.Tracing.Type; t { - case "agent": - exporter, err := ocagent.NewExporter( - ocagent.WithReconnectionPeriod(5*time.Second), - ocagent.WithAddress(cfg.Tracing.Endpoint), - ocagent.WithServiceName(cfg.Tracing.Service), - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create agent tracing") - return err - } - trace.RegisterExporter(exporter) - view.RegisterExporter(exporter) case "jaeger": - exporter, err := jaeger.NewExporter( - jaeger.Options{ - AgentEndpoint: cfg.Tracing.Endpoint, - CollectorEndpoint: cfg.Tracing.Collector, - Process: jaeger.Process{ - ServiceName: cfg.Tracing.Service, - }, - }, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create jaeger tracing") - return err + { + exp, err := jaeger.New( + jaeger.WithCollectorEndpoint( + jaeger.WithEndpoint(cfg.Tracing.Collector), + ), + ) + if err != nil { + panic(err) + } + + // set package level trace provider and propagator. + TraceProvider = sdktrace.NewTracerProvider( + sdktrace.WithBatcher(exp), + sdktrace.WithResource(resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceNameKey.String("graph-explorer")), + ), + ) + + Propagator = propagation.NewCompositeTextMapPropagator( + propagation.Baggage{}, + propagation.TraceContext{}, + ) } - trace.RegisterExporter(exporter) + case "agent": + fallthrough case "zipkin": - endpoint, err := openzipkin.NewEndpoint( - cfg.Tracing.Service, - cfg.Tracing.Endpoint, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create zipkin tracing") - return err - } - exporter := zipkin.NewExporter( - zipkinhttp.NewReporter( - cfg.Tracing.Collector, - ), - endpoint, - ) - trace.RegisterExporter(exporter) + fallthrough default: - logger.Warn(). - Str("type", t). - Msg("Unknown tracing backend") + logger.Warn().Str("type", t).Msg("Unknown tracing backend") } - trace.ApplyConfig( - trace.Config{ - DefaultSampler: trace.AlwaysSample(), - }, - ) } else { logger.Debug(). Msg("Tracing is not enabled") diff --git a/graph/pkg/tracing/tracing.go b/graph/pkg/tracing/tracing.go index 124d9238b..8d8701761 100644 --- a/graph/pkg/tracing/tracing.go +++ b/graph/pkg/tracing/tracing.go @@ -1,87 +1,58 @@ package tracing import ( - "time" - - "contrib.go.opencensus.io/exporter/jaeger" - "contrib.go.opencensus.io/exporter/ocagent" - "contrib.go.opencensus.io/exporter/zipkin" - openzipkin "github.com/openzipkin/zipkin-go" - zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http" "github.com/owncloud/ocis/graph/pkg/config" "github.com/owncloud/ocis/ocis-pkg/log" - "go.opencensus.io/stats/view" - "go.opencensus.io/trace" + "go.opentelemetry.io/otel/exporters/jaeger" + "go.opentelemetry.io/otel/propagation" + "go.opentelemetry.io/otel/sdk/resource" + sdktrace "go.opentelemetry.io/otel/sdk/trace" + semconv "go.opentelemetry.io/otel/semconv/v1.4.0" +) + +var ( + // Propagator ensures the entire module uses the same trace propagation strategy. + Propagator propagation.TextMapPropagator + + // TraceProvider is the global trace provider for the proxy service. + TraceProvider = sdktrace.NewTracerProvider() ) func Configure(cfg *config.Config, logger log.Logger) error { if cfg.Tracing.Enabled { switch t := cfg.Tracing.Type; t { - case "agent": - exporter, err := ocagent.NewExporter( - ocagent.WithReconnectionPeriod(5*time.Second), - ocagent.WithAddress(cfg.Tracing.Endpoint), - ocagent.WithServiceName(cfg.Tracing.Service), - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create agent tracing") - return err - } - trace.RegisterExporter(exporter) - view.RegisterExporter(exporter) case "jaeger": - exporter, err := jaeger.NewExporter( - jaeger.Options{ - AgentEndpoint: cfg.Tracing.Endpoint, - CollectorEndpoint: cfg.Tracing.Collector, - Process: jaeger.Process{ - ServiceName: cfg.Tracing.Service, - }, - }, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create jaeger tracing") - return err + { + exp, err := jaeger.New( + jaeger.WithCollectorEndpoint( + jaeger.WithEndpoint(cfg.Tracing.Collector), + ), + ) + if err != nil { + panic(err) + } + + // set package level trace provider and propagator. + TraceProvider = sdktrace.NewTracerProvider( + sdktrace.WithBatcher(exp), + sdktrace.WithResource(resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceNameKey.String("graph")), + ), + ) + + Propagator = propagation.NewCompositeTextMapPropagator( + propagation.Baggage{}, + propagation.TraceContext{}, + ) } - trace.RegisterExporter(exporter) + case "agent": + fallthrough case "zipkin": - endpoint, err := openzipkin.NewEndpoint( - cfg.Tracing.Service, - cfg.Tracing.Endpoint, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create zipkin tracing") - return err - } - exporter := zipkin.NewExporter( - zipkinhttp.NewReporter( - cfg.Tracing.Collector, - ), - endpoint, - ) - trace.RegisterExporter(exporter) + fallthrough default: - logger.Warn(). - Str("type", t). - Msg("Unknown tracing backend") + logger.Warn().Str("type", t).Msg("Unknown tracing backend") } - trace.ApplyConfig( - trace.Config{ - DefaultSampler: trace.AlwaysSample(), - }, - ) } else { logger.Debug(). Msg("Tracing is not enabled") diff --git a/idp/pkg/middleware/static.go b/idp/pkg/middleware/static.go index eeff356c5..e053f248a 100644 --- a/idp/pkg/middleware/static.go +++ b/idp/pkg/middleware/static.go @@ -4,7 +4,9 @@ import ( "net/http" "strings" - "go.opencensus.io/trace" + idpTracing "github.com/owncloud/ocis/idp/pkg/tracing" + "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/codes" ) // Static is a middleware that serves static assets. @@ -22,7 +24,7 @@ func Static(root string, fs http.FileSystem) func(http.Handler) http.Handler { return func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - ctx, span := trace.StartSpan(r.Context(), "serve static asset") + ctx, span := idpTracing.TraceProvider.Tracer("idp").Start(r.Context(), "serve static asset") defer span.End() r = r.WithContext(ctx) @@ -30,25 +32,18 @@ func Static(root string, fs http.FileSystem) func(http.Handler) http.Handler { if strings.HasPrefix(r.URL.Path, "/signin/v1/static/") { if strings.HasSuffix(r.URL.Path, "/") { // but no listing of folders - span.AddAttributes(trace.StringAttribute("asset not found", r.URL.Path)) - span.SetStatus(trace.Status{ - Code: 1, - Message: "asset not found", - }) + span.SetAttributes(attribute.KeyValue{Key: "path", Value: attribute.StringValue(r.URL.Path)}) + span.SetStatus(codes.Error, "asset not found") http.NotFound(w, r) } else { r.URL.Path = strings.Replace(r.URL.Path, "/signin/v1/static/", "/signin/v1/identifier/static/", 1) - span.AddAttributes(trace.StringAttribute("served", r.URL.Path)) + span.SetAttributes(attribute.KeyValue{Key: "server", Value: attribute.StringValue(r.URL.Path)}) static.ServeHTTP(w, r) } return } - span.AddAttributes(trace.StringAttribute("served", r.URL.Path)) - span.SetStatus(trace.Status{ - Code: 0, - Message: "ok", - }) - next.ServeHTTP(w, r) + span.SetAttributes(attribute.KeyValue{Key: "path", Value: attribute.StringValue(r.URL.Path)}) + span.SetStatus(codes.Ok, "ok") }) } } diff --git a/onlyoffice/pkg/tracing/tracing.go b/onlyoffice/pkg/tracing/tracing.go index 5310e3951..96cd3d890 100644 --- a/onlyoffice/pkg/tracing/tracing.go +++ b/onlyoffice/pkg/tracing/tracing.go @@ -1,87 +1,58 @@ package tracing import ( - "time" - - "contrib.go.opencensus.io/exporter/jaeger" - "contrib.go.opencensus.io/exporter/ocagent" - "contrib.go.opencensus.io/exporter/zipkin" - openzipkin "github.com/openzipkin/zipkin-go" - zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/onlyoffice/pkg/config" - "go.opencensus.io/stats/view" - "go.opencensus.io/trace" + "go.opentelemetry.io/otel/exporters/jaeger" + "go.opentelemetry.io/otel/propagation" + "go.opentelemetry.io/otel/sdk/resource" + sdktrace "go.opentelemetry.io/otel/sdk/trace" + semconv "go.opentelemetry.io/otel/semconv/v1.4.0" +) + +var ( + // Propagator ensures the entire module uses the same trace propagation strategy. + Propagator propagation.TextMapPropagator + + // TraceProvider is the global trace provider for the proxy service. + TraceProvider = sdktrace.NewTracerProvider() ) func Configure(cfg *config.Config, logger log.Logger) error { if cfg.Tracing.Enabled { switch t := cfg.Tracing.Type; t { - case "agent": - exporter, err := ocagent.NewExporter( - ocagent.WithReconnectionPeriod(5*time.Second), - ocagent.WithAddress(cfg.Tracing.Endpoint), - ocagent.WithServiceName(cfg.Tracing.Service), - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create agent tracing") - return err - } - trace.RegisterExporter(exporter) - view.RegisterExporter(exporter) case "jaeger": - exporter, err := jaeger.NewExporter( - jaeger.Options{ - AgentEndpoint: cfg.Tracing.Endpoint, - CollectorEndpoint: cfg.Tracing.Collector, - Process: jaeger.Process{ - ServiceName: cfg.Tracing.Service, - }, - }, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create jaeger tracing") - return err + { + exp, err := jaeger.New( + jaeger.WithCollectorEndpoint( + jaeger.WithEndpoint(cfg.Tracing.Collector), + ), + ) + if err != nil { + panic(err) + } + + // set package level trace provider and propagator. + TraceProvider = sdktrace.NewTracerProvider( + sdktrace.WithBatcher(exp), + sdktrace.WithResource(resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceNameKey.String("onlyoffice")), + ), + ) + + Propagator = propagation.NewCompositeTextMapPropagator( + propagation.Baggage{}, + propagation.TraceContext{}, + ) } - trace.RegisterExporter(exporter) + case "agent": + fallthrough case "zipkin": - endpoint, err := openzipkin.NewEndpoint( - cfg.Tracing.Service, - cfg.Tracing.Endpoint, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create zipkin tracing") - return err - } - exporter := zipkin.NewExporter( - zipkinhttp.NewReporter( - cfg.Tracing.Collector, - ), - endpoint, - ) - trace.RegisterExporter(exporter) + fallthrough default: - logger.Warn(). - Str("type", t). - Msg("Unknown tracing backend") + logger.Warn().Str("type", t).Msg("Unknown tracing backend") } - trace.ApplyConfig( - trace.Config{ - DefaultSampler: trace.AlwaysSample(), - }, - ) } else { logger.Debug(). Msg("Tracing is not enabled") diff --git a/settings/pkg/tracing/tracing.go b/settings/pkg/tracing/tracing.go index 3cb6c446a..7d15f2efb 100644 --- a/settings/pkg/tracing/tracing.go +++ b/settings/pkg/tracing/tracing.go @@ -1,102 +1,58 @@ package tracing import ( - "time" - - "contrib.go.opencensus.io/exporter/jaeger" - "contrib.go.opencensus.io/exporter/ocagent" - "contrib.go.opencensus.io/exporter/zipkin" - openzipkin "github.com/openzipkin/zipkin-go" - zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/settings/pkg/config" - "go.opencensus.io/stats/view" - "go.opencensus.io/trace" + "go.opentelemetry.io/otel/exporters/jaeger" + "go.opentelemetry.io/otel/propagation" + "go.opentelemetry.io/otel/sdk/resource" + sdktrace "go.opentelemetry.io/otel/sdk/trace" + semconv "go.opentelemetry.io/otel/semconv/v1.4.0" +) + +var ( + // Propagator ensures the entire module uses the same trace propagation strategy. + Propagator propagation.TextMapPropagator + + // TraceProvider is the global trace provider for the proxy service. + TraceProvider = sdktrace.NewTracerProvider() ) -// Configure tracing from config func Configure(cfg *config.Config, logger log.Logger) error { if cfg.Tracing.Enabled { switch t := cfg.Tracing.Type; t { - case "agent": - exporter, err := ocagent.NewExporter( - ocagent.WithReconnectionPeriod(5*time.Second), - ocagent.WithAddress(cfg.Tracing.Endpoint), - ocagent.WithServiceName(cfg.Tracing.Service), - ) - - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create agent tracing") - - return err - } - - trace.RegisterExporter(exporter) - view.RegisterExporter(exporter) - case "jaeger": - exporter, err := jaeger.NewExporter( - jaeger.Options{ - AgentEndpoint: cfg.Tracing.Endpoint, - CollectorEndpoint: cfg.Tracing.Collector, - Process: jaeger.Process{ - ServiceName: cfg.Tracing.Service, - }, - }, - ) + { + exp, err := jaeger.New( + jaeger.WithCollectorEndpoint( + jaeger.WithEndpoint(cfg.Tracing.Collector), + ), + ) + if err != nil { + panic(err) + } - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create jaeger tracing") + // set package level trace provider and propagator. + TraceProvider = sdktrace.NewTracerProvider( + sdktrace.WithBatcher(exp), + sdktrace.WithResource(resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceNameKey.String("settings")), + ), + ) - return err + Propagator = propagation.NewCompositeTextMapPropagator( + propagation.Baggage{}, + propagation.TraceContext{}, + ) } - - trace.RegisterExporter(exporter) - + case "agent": + fallthrough case "zipkin": - endpoint, err := openzipkin.NewEndpoint( - cfg.Tracing.Service, - cfg.Tracing.Endpoint, - ) - - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create zipkin tracing") - - return err - } - - exporter := zipkin.NewExporter( - zipkinhttp.NewReporter( - cfg.Tracing.Collector, - ), - endpoint, - ) - - trace.RegisterExporter(exporter) - + fallthrough default: - logger.Warn(). - Str("type", t). - Msg("Unknown tracing backend") + logger.Warn().Str("type", t).Msg("Unknown tracing backend") } - - trace.ApplyConfig( - trace.Config{ - DefaultSampler: trace.AlwaysSample(), - }, - ) } else { logger.Debug(). Msg("Tracing is not enabled") diff --git a/web/pkg/tracing/tracing.go b/web/pkg/tracing/tracing.go index 3a8f64d04..7e15196b6 100644 --- a/web/pkg/tracing/tracing.go +++ b/web/pkg/tracing/tracing.go @@ -1,87 +1,58 @@ package tracing import ( - "time" - - "contrib.go.opencensus.io/exporter/jaeger" - "contrib.go.opencensus.io/exporter/ocagent" - "contrib.go.opencensus.io/exporter/zipkin" - openzipkin "github.com/openzipkin/zipkin-go" - zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/web/pkg/config" - "go.opencensus.io/stats/view" - "go.opencensus.io/trace" + "go.opentelemetry.io/otel/exporters/jaeger" + "go.opentelemetry.io/otel/propagation" + "go.opentelemetry.io/otel/sdk/resource" + sdktrace "go.opentelemetry.io/otel/sdk/trace" + semconv "go.opentelemetry.io/otel/semconv/v1.4.0" +) + +var ( + // Propagator ensures the entire module uses the same trace propagation strategy. + Propagator propagation.TextMapPropagator + + // TraceProvider is the global trace provider for the proxy service. + TraceProvider = sdktrace.NewTracerProvider() ) func Configure(cfg *config.Config, logger log.Logger) error { if cfg.Tracing.Enabled { switch t := cfg.Tracing.Type; t { - case "agent": - exporter, err := ocagent.NewExporter( - ocagent.WithReconnectionPeriod(5*time.Second), - ocagent.WithAddress(cfg.Tracing.Endpoint), - ocagent.WithServiceName(cfg.Tracing.Service), - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create agent tracing") - return err - } - trace.RegisterExporter(exporter) - view.RegisterExporter(exporter) case "jaeger": - exporter, err := jaeger.NewExporter( - jaeger.Options{ - AgentEndpoint: cfg.Tracing.Endpoint, - CollectorEndpoint: cfg.Tracing.Collector, - Process: jaeger.Process{ - ServiceName: cfg.Tracing.Service, - }, - }, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create jaeger tracing") - return err + { + exp, err := jaeger.New( + jaeger.WithCollectorEndpoint( + jaeger.WithEndpoint(cfg.Tracing.Collector), + ), + ) + if err != nil { + panic(err) + } + + // set package level trace provider and propagator. + TraceProvider = sdktrace.NewTracerProvider( + sdktrace.WithBatcher(exp), + sdktrace.WithResource(resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceNameKey.String("web")), + ), + ) + + Propagator = propagation.NewCompositeTextMapPropagator( + propagation.Baggage{}, + propagation.TraceContext{}, + ) } - trace.RegisterExporter(exporter) + case "agent": + fallthrough case "zipkin": - endpoint, err := openzipkin.NewEndpoint( - cfg.Tracing.Service, - cfg.Tracing.Endpoint, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create zipkin tracing") - return err - } - exporter := zipkin.NewExporter( - zipkinhttp.NewReporter( - cfg.Tracing.Collector, - ), - endpoint, - ) - trace.RegisterExporter(exporter) + fallthrough default: - logger.Warn(). - Str("type", t). - Msg("Unknown tracing backend") + logger.Warn().Str("type", t).Msg("Unknown tracing backend") } - trace.ApplyConfig( - trace.Config{ - DefaultSampler: trace.AlwaysSample(), - }, - ) } else { logger.Debug(). Msg("Tracing is not enabled") diff --git a/webdav/pkg/tracing/tracing.go b/webdav/pkg/tracing/tracing.go index ab66129f6..d0aaf0879 100644 --- a/webdav/pkg/tracing/tracing.go +++ b/webdav/pkg/tracing/tracing.go @@ -1,87 +1,58 @@ package tracing import ( - "time" - - "contrib.go.opencensus.io/exporter/jaeger" - "contrib.go.opencensus.io/exporter/ocagent" - "contrib.go.opencensus.io/exporter/zipkin" - openzipkin "github.com/openzipkin/zipkin-go" - zipkinhttp "github.com/openzipkin/zipkin-go/reporter/http" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/webdav/pkg/config" - "go.opencensus.io/stats/view" - "go.opencensus.io/trace" + "go.opentelemetry.io/otel/exporters/jaeger" + "go.opentelemetry.io/otel/propagation" + "go.opentelemetry.io/otel/sdk/resource" + sdktrace "go.opentelemetry.io/otel/sdk/trace" + semconv "go.opentelemetry.io/otel/semconv/v1.4.0" +) + +var ( + // Propagator ensures the entire module uses the same trace propagation strategy. + Propagator propagation.TextMapPropagator + + // TraceProvider is the global trace provider for the proxy service. + TraceProvider = sdktrace.NewTracerProvider() ) func Configure(cfg *config.Config, logger log.Logger) error { if cfg.Tracing.Enabled { switch t := cfg.Tracing.Type; t { - case "agent": - exporter, err := ocagent.NewExporter( - ocagent.WithReconnectionPeriod(5*time.Second), - ocagent.WithAddress(cfg.Tracing.Endpoint), - ocagent.WithServiceName(cfg.Tracing.Service), - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create agent tracing") - return err - } - trace.RegisterExporter(exporter) - view.RegisterExporter(exporter) case "jaeger": - exporter, err := jaeger.NewExporter( - jaeger.Options{ - AgentEndpoint: cfg.Tracing.Endpoint, - CollectorEndpoint: cfg.Tracing.Collector, - Process: jaeger.Process{ - ServiceName: cfg.Tracing.Service, - }, - }, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create jaeger tracing") - return err + { + exp, err := jaeger.New( + jaeger.WithCollectorEndpoint( + jaeger.WithEndpoint(cfg.Tracing.Collector), + ), + ) + if err != nil { + panic(err) + } + + // set package level trace provider and propagator. + TraceProvider = sdktrace.NewTracerProvider( + sdktrace.WithBatcher(exp), + sdktrace.WithResource(resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceNameKey.String("webdav")), + ), + ) + + Propagator = propagation.NewCompositeTextMapPropagator( + propagation.Baggage{}, + propagation.TraceContext{}, + ) } - trace.RegisterExporter(exporter) + case "agent": + fallthrough case "zipkin": - endpoint, err := openzipkin.NewEndpoint( - cfg.Tracing.Service, - cfg.Tracing.Endpoint, - ) - if err != nil { - logger.Error(). - Err(err). - Str("endpoint", cfg.Tracing.Endpoint). - Str("collector", cfg.Tracing.Collector). - Msg("Failed to create zipkin tracing") - return err - } - exporter := zipkin.NewExporter( - zipkinhttp.NewReporter( - cfg.Tracing.Collector, - ), - endpoint, - ) - trace.RegisterExporter(exporter) + fallthrough default: - logger.Warn(). - Str("type", t). - Msg("Unknown tracing backend") + logger.Warn().Str("type", t).Msg("Unknown tracing backend") } - trace.ApplyConfig( - trace.Config{ - DefaultSampler: trace.AlwaysSample(), - }, - ) } else { logger.Debug(). Msg("Tracing is not enabled") From 4a817959efaa47ae2bf293b3f9f8a63585a97e2d Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Mon, 9 Aug 2021 17:37:58 +0200 Subject: [PATCH 17/31] fix middleware chain --- idp/pkg/middleware/static.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/idp/pkg/middleware/static.go b/idp/pkg/middleware/static.go index e053f248a..87c4de9fe 100644 --- a/idp/pkg/middleware/static.go +++ b/idp/pkg/middleware/static.go @@ -44,6 +44,8 @@ func Static(root string, fs http.FileSystem) func(http.Handler) http.Handler { } span.SetAttributes(attribute.KeyValue{Key: "path", Value: attribute.StringValue(r.URL.Path)}) span.SetStatus(codes.Ok, "ok") + + next.ServeHTTP(w, r) }) } } From 6fc2b7503df750789ffccca6bc34c242a5382d0b Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Mon, 9 Aug 2021 17:45:31 +0200 Subject: [PATCH 18/31] add tracing utils to ocis-pkg --- ocis-pkg/tracing/tracing.go | 41 +++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 ocis-pkg/tracing/tracing.go diff --git a/ocis-pkg/tracing/tracing.go b/ocis-pkg/tracing/tracing.go new file mode 100644 index 000000000..196553559 --- /dev/null +++ b/ocis-pkg/tracing/tracing.go @@ -0,0 +1,41 @@ +package tracing + +import ( + "fmt" + + "go.opentelemetry.io/otel/exporters/jaeger" + "go.opentelemetry.io/otel/sdk/resource" + sdktrace "go.opentelemetry.io/otel/sdk/trace" + semconv "go.opentelemetry.io/otel/semconv/v1.4.0" +) + +// GetTraceProvider returns a configured open-telemetry trace provider. +func GetTraceProvider(collectorEndpoint, traceType, serviceName string) (*sdktrace.TracerProvider, error) { + switch t := traceType; t { + case "jaeger": + { + exp, err := jaeger.New( + jaeger.WithCollectorEndpoint( + jaeger.WithEndpoint(collectorEndpoint), + ), + ) + if err != nil { + return nil, err + } + + return sdktrace.NewTracerProvider( + sdktrace.WithBatcher(exp), + sdktrace.WithResource(resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceNameKey.String(serviceName)), + ), + ), nil + } + case "agent": + fallthrough + case "zipkin": + fallthrough + default: + return nil, fmt.Errorf("invalid trace configuration") + } +} From b13863b717508f44411ee27ba56908e540579404 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Mon, 9 Aug 2021 18:03:01 +0200 Subject: [PATCH 19/31] refactor traceprovider initialization --- accounts/pkg/command/server.go | 2 +- accounts/pkg/tracing/tracing.go | 52 +++----------------------- glauth/pkg/command/server.go | 2 +- glauth/pkg/tracing/tracing.go | 54 ++++----------------------- graph-explorer/pkg/command/server.go | 2 +- graph-explorer/pkg/tracing/tracing.go | 52 +++----------------------- graph/pkg/command/server.go | 2 +- graph/pkg/tracing/tracing.go | 54 ++++----------------------- idp/pkg/command/server.go | 2 +- idp/pkg/tracing/tracing.go | 54 ++++----------------------- ocis-pkg/tracing/tracing.go | 4 ++ ocs/pkg/command/server.go | 2 +- ocs/pkg/tracing/tracing.go | 54 ++++----------------------- onlyoffice/pkg/command/server.go | 2 +- onlyoffice/pkg/tracing/tracing.go | 54 ++++----------------------- proxy/pkg/command/server.go | 2 +- proxy/pkg/proxy/proxy.go | 4 +- proxy/pkg/tracing/tracing.go | 52 +++----------------------- settings/pkg/command/server.go | 2 +- settings/pkg/tracing/tracing.go | 54 ++++----------------------- store/pkg/command/server.go | 2 +- store/pkg/tracing/tracing.go | 54 ++++----------------------- thumbnails/pkg/command/server.go | 2 +- thumbnails/pkg/service/v0/tracing.go | 8 ++-- thumbnails/pkg/tracing/tracing.go | 54 ++++----------------------- web/pkg/command/server.go | 2 +- web/pkg/tracing/tracing.go | 54 ++++----------------------- webdav/pkg/command/server.go | 2 +- webdav/pkg/tracing/tracing.go | 52 +++----------------------- 29 files changed, 111 insertions(+), 625 deletions(-) diff --git a/accounts/pkg/command/server.go b/accounts/pkg/command/server.go index 5e0ce5f33..3ff1dcd8d 100644 --- a/accounts/pkg/command/server.go +++ b/accounts/pkg/command/server.go @@ -40,7 +40,7 @@ func Server(cfg *config.Config) *cli.Command { }, Action: func(c *cli.Context) error { logger := NewLogger(cfg) - err := tracing.Configure(cfg, logger) + err := tracing.Configure(cfg) if err != nil { return err } diff --git a/accounts/pkg/tracing/tracing.go b/accounts/pkg/tracing/tracing.go index dbef82f75..678976da9 100644 --- a/accounts/pkg/tracing/tracing.go +++ b/accounts/pkg/tracing/tracing.go @@ -2,60 +2,20 @@ package tracing import ( "github.com/owncloud/ocis/accounts/pkg/config" - "github.com/owncloud/ocis/ocis-pkg/log" - "go.opentelemetry.io/otel/exporters/jaeger" - "go.opentelemetry.io/otel/propagation" - "go.opentelemetry.io/otel/sdk/resource" + pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" sdktrace "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.4.0" ) var ( - // Propagator ensures the entire module uses the same trace propagation strategy. - Propagator propagation.TextMapPropagator - // TraceProvider is the global trace provider for the proxy service. TraceProvider = sdktrace.NewTracerProvider() ) -func Configure(cfg *config.Config, logger log.Logger) error { - if cfg.Tracing.Enabled { - switch t := cfg.Tracing.Type; t { - case "jaeger": - { - exp, err := jaeger.New( - jaeger.WithCollectorEndpoint( - jaeger.WithEndpoint(cfg.Tracing.Collector), - ), - ) - if err != nil { - panic(err) - } - - // set package level trace provider and propagator. - TraceProvider = sdktrace.NewTracerProvider( - sdktrace.WithBatcher(exp), - sdktrace.WithResource(resource.NewWithAttributes( - semconv.SchemaURL, - semconv.ServiceNameKey.String("accounts")), - ), - ) - - Propagator = propagation.NewCompositeTextMapPropagator( - propagation.Baggage{}, - propagation.TraceContext{}, - ) - } - case "agent": - fallthrough - case "zipkin": - fallthrough - default: - logger.Warn().Str("type", t).Msg("Unknown tracing backend") - } - } else { - logger.Debug(). - Msg("Tracing is not enabled") +func Configure(cfg *config.Config) error { + var err error + if TraceProvider, err = pkgtrace.GetTraceProvider(cfg.Tracing.Collector, cfg.Tracing.Type, "accounts"); err != nil { + return err } + return nil } diff --git a/glauth/pkg/command/server.go b/glauth/pkg/command/server.go index 5a2f1f10d..526e3152d 100644 --- a/glauth/pkg/command/server.go +++ b/glauth/pkg/command/server.go @@ -41,7 +41,7 @@ func Server(cfg *config.Config) *cli.Command { Action: func(c *cli.Context) error { logger := NewLogger(cfg) - if err := tracing.Configure(cfg, logger); err != nil { + if err := tracing.Configure(cfg); err != nil { return err } diff --git a/glauth/pkg/tracing/tracing.go b/glauth/pkg/tracing/tracing.go index 6778a0127..043ef5804 100644 --- a/glauth/pkg/tracing/tracing.go +++ b/glauth/pkg/tracing/tracing.go @@ -2,60 +2,20 @@ package tracing import ( "github.com/owncloud/ocis/glauth/pkg/config" - "github.com/owncloud/ocis/ocis-pkg/log" - "go.opentelemetry.io/otel/exporters/jaeger" - "go.opentelemetry.io/otel/propagation" - "go.opentelemetry.io/otel/sdk/resource" + pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" sdktrace "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.4.0" ) var ( - // Propagator ensures the entire module uses the same trace propagation strategy. - Propagator propagation.TextMapPropagator - - // TraceProvider is the global trace provider for the proxy service. + // TraceProvider is the global trace provider for the glauth service. TraceProvider = sdktrace.NewTracerProvider() ) -func Configure(cfg *config.Config, logger log.Logger) error { - if cfg.Tracing.Enabled { - switch t := cfg.Tracing.Type; t { - case "jaeger": - { - exp, err := jaeger.New( - jaeger.WithCollectorEndpoint( - jaeger.WithEndpoint(cfg.Tracing.Collector), - ), - ) - if err != nil { - panic(err) - } - - // set package level trace provider and propagator. - TraceProvider = sdktrace.NewTracerProvider( - sdktrace.WithBatcher(exp), - sdktrace.WithResource(resource.NewWithAttributes( - semconv.SchemaURL, - semconv.ServiceNameKey.String("glauth")), - ), - ) - - Propagator = propagation.NewCompositeTextMapPropagator( - propagation.Baggage{}, - propagation.TraceContext{}, - ) - } - case "agent": - fallthrough - case "zipkin": - fallthrough - default: - logger.Warn().Str("type", t).Msg("Unknown tracing backend") - } - } else { - logger.Debug(). - Msg("Tracing is not enabled") +func Configure(cfg *config.Config) error { + var err error + if TraceProvider, err = pkgtrace.GetTraceProvider(cfg.Tracing.Collector, cfg.Tracing.Type, "glauth"); err != nil { + return err } + return nil } diff --git a/graph-explorer/pkg/command/server.go b/graph-explorer/pkg/command/server.go index 9c3e42669..9893e554a 100644 --- a/graph-explorer/pkg/command/server.go +++ b/graph-explorer/pkg/command/server.go @@ -38,7 +38,7 @@ func Server(cfg *config.Config) *cli.Command { Action: func(c *cli.Context) error { logger := NewLogger(cfg) - tracing.Configure(cfg, logger) + tracing.Configure(cfg) var ( gr = run.Group{} diff --git a/graph-explorer/pkg/tracing/tracing.go b/graph-explorer/pkg/tracing/tracing.go index 9f9318e0f..228c7c3de 100644 --- a/graph-explorer/pkg/tracing/tracing.go +++ b/graph-explorer/pkg/tracing/tracing.go @@ -2,60 +2,20 @@ package tracing import ( "github.com/owncloud/ocis/graph-explorer/pkg/config" - "github.com/owncloud/ocis/ocis-pkg/log" - "go.opentelemetry.io/otel/exporters/jaeger" - "go.opentelemetry.io/otel/propagation" - "go.opentelemetry.io/otel/sdk/resource" + pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" sdktrace "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.4.0" ) var ( - // Propagator ensures the entire module uses the same trace propagation strategy. - Propagator propagation.TextMapPropagator - // TraceProvider is the global trace provider for the proxy service. TraceProvider = sdktrace.NewTracerProvider() ) -func Configure(cfg *config.Config, logger log.Logger) error { - if cfg.Tracing.Enabled { - switch t := cfg.Tracing.Type; t { - case "jaeger": - { - exp, err := jaeger.New( - jaeger.WithCollectorEndpoint( - jaeger.WithEndpoint(cfg.Tracing.Collector), - ), - ) - if err != nil { - panic(err) - } - - // set package level trace provider and propagator. - TraceProvider = sdktrace.NewTracerProvider( - sdktrace.WithBatcher(exp), - sdktrace.WithResource(resource.NewWithAttributes( - semconv.SchemaURL, - semconv.ServiceNameKey.String("graph-explorer")), - ), - ) - - Propagator = propagation.NewCompositeTextMapPropagator( - propagation.Baggage{}, - propagation.TraceContext{}, - ) - } - case "agent": - fallthrough - case "zipkin": - fallthrough - default: - logger.Warn().Str("type", t).Msg("Unknown tracing backend") - } - } else { - logger.Debug(). - Msg("Tracing is not enabled") +func Configure(cfg *config.Config) error { + var err error + if TraceProvider, err = pkgtrace.GetTraceProvider(cfg.Tracing.Collector, cfg.Tracing.Type, "graph-explorer"); err != nil { + return err } + return nil } diff --git a/graph/pkg/command/server.go b/graph/pkg/command/server.go index e186c23eb..e1700f564 100644 --- a/graph/pkg/command/server.go +++ b/graph/pkg/command/server.go @@ -38,7 +38,7 @@ func Server(cfg *config.Config) *cli.Command { Action: func(c *cli.Context) error { logger := NewLogger(cfg) - if err := tracing.Configure(cfg, logger); err != nil { + if err := tracing.Configure(cfg); err != nil { return err } diff --git a/graph/pkg/tracing/tracing.go b/graph/pkg/tracing/tracing.go index 8d8701761..aea3b9af9 100644 --- a/graph/pkg/tracing/tracing.go +++ b/graph/pkg/tracing/tracing.go @@ -2,60 +2,20 @@ package tracing import ( "github.com/owncloud/ocis/graph/pkg/config" - "github.com/owncloud/ocis/ocis-pkg/log" - "go.opentelemetry.io/otel/exporters/jaeger" - "go.opentelemetry.io/otel/propagation" - "go.opentelemetry.io/otel/sdk/resource" + pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" sdktrace "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.4.0" ) var ( - // Propagator ensures the entire module uses the same trace propagation strategy. - Propagator propagation.TextMapPropagator - - // TraceProvider is the global trace provider for the proxy service. + // TraceProvider is the global trace provider for the graph service. TraceProvider = sdktrace.NewTracerProvider() ) -func Configure(cfg *config.Config, logger log.Logger) error { - if cfg.Tracing.Enabled { - switch t := cfg.Tracing.Type; t { - case "jaeger": - { - exp, err := jaeger.New( - jaeger.WithCollectorEndpoint( - jaeger.WithEndpoint(cfg.Tracing.Collector), - ), - ) - if err != nil { - panic(err) - } - - // set package level trace provider and propagator. - TraceProvider = sdktrace.NewTracerProvider( - sdktrace.WithBatcher(exp), - sdktrace.WithResource(resource.NewWithAttributes( - semconv.SchemaURL, - semconv.ServiceNameKey.String("graph")), - ), - ) - - Propagator = propagation.NewCompositeTextMapPropagator( - propagation.Baggage{}, - propagation.TraceContext{}, - ) - } - case "agent": - fallthrough - case "zipkin": - fallthrough - default: - logger.Warn().Str("type", t).Msg("Unknown tracing backend") - } - } else { - logger.Debug(). - Msg("Tracing is not enabled") +func Configure(cfg *config.Config) error { + var err error + if TraceProvider, err = pkgtrace.GetTraceProvider(cfg.Tracing.Collector, cfg.Tracing.Type, "graph"); err != nil { + return err } + return nil } diff --git a/idp/pkg/command/server.go b/idp/pkg/command/server.go index ba9fde668..ebc79749e 100644 --- a/idp/pkg/command/server.go +++ b/idp/pkg/command/server.go @@ -50,7 +50,7 @@ func Server(cfg *config.Config) *cli.Command { Action: func(c *cli.Context) error { logger := NewLogger(cfg) - tracing.Configure(cfg, logger) + tracing.Configure(cfg) var ( gr = run.Group{} diff --git a/idp/pkg/tracing/tracing.go b/idp/pkg/tracing/tracing.go index 7919a1a7f..b94bac504 100644 --- a/idp/pkg/tracing/tracing.go +++ b/idp/pkg/tracing/tracing.go @@ -2,60 +2,20 @@ package tracing import ( "github.com/owncloud/ocis/idp/pkg/config" - "github.com/owncloud/ocis/ocis-pkg/log" - "go.opentelemetry.io/otel/exporters/jaeger" - "go.opentelemetry.io/otel/propagation" - "go.opentelemetry.io/otel/sdk/resource" + pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" sdktrace "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.4.0" ) var ( - // Propagator ensures the entire module uses the same trace propagation strategy. - Propagator propagation.TextMapPropagator - - // TraceProvider is the global trace provider for the proxy service. + // TraceProvider is the global trace provider for the idp service. TraceProvider = sdktrace.NewTracerProvider() ) -func Configure(cfg *config.Config, logger log.Logger) error { - if cfg.Tracing.Enabled { - switch t := cfg.Tracing.Type; t { - case "jaeger": - { - exp, err := jaeger.New( - jaeger.WithCollectorEndpoint( - jaeger.WithEndpoint(cfg.Tracing.Collector), - ), - ) - if err != nil { - panic(err) - } - - // set package level trace provider and propagator. - TraceProvider = sdktrace.NewTracerProvider( - sdktrace.WithBatcher(exp), - sdktrace.WithResource(resource.NewWithAttributes( - semconv.SchemaURL, - semconv.ServiceNameKey.String("idp")), - ), - ) - - Propagator = propagation.NewCompositeTextMapPropagator( - propagation.Baggage{}, - propagation.TraceContext{}, - ) - } - case "agent": - fallthrough - case "zipkin": - fallthrough - default: - logger.Warn().Str("type", t).Msg("Unknown tracing backend") - } - } else { - logger.Debug(). - Msg("Tracing is not enabled") +func Configure(cfg *config.Config) error { + var err error + if TraceProvider, err = pkgtrace.GetTraceProvider(cfg.Tracing.Collector, cfg.Tracing.Type, "idp"); err != nil { + return err } + return nil } diff --git a/ocis-pkg/tracing/tracing.go b/ocis-pkg/tracing/tracing.go index 196553559..acd1cc91f 100644 --- a/ocis-pkg/tracing/tracing.go +++ b/ocis-pkg/tracing/tracing.go @@ -4,11 +4,15 @@ import ( "fmt" "go.opentelemetry.io/otel/exporters/jaeger" + "go.opentelemetry.io/otel/propagation" "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" semconv "go.opentelemetry.io/otel/semconv/v1.4.0" ) +// Propagator ensures the importer module uses the same trace propagation strategy. +var Propagator propagation.TextMapPropagator + // GetTraceProvider returns a configured open-telemetry trace provider. func GetTraceProvider(collectorEndpoint, traceType, serviceName string) (*sdktrace.TracerProvider, error) { switch t := traceType; t { diff --git a/ocs/pkg/command/server.go b/ocs/pkg/command/server.go index c88a24294..18b2d151b 100644 --- a/ocs/pkg/command/server.go +++ b/ocs/pkg/command/server.go @@ -38,7 +38,7 @@ func Server(cfg *config.Config) *cli.Command { Action: func(c *cli.Context) error { logger := NewLogger(cfg) - if err := tracing.Configure(cfg, logger); err != nil { + if err := tracing.Configure(cfg); err != nil { return err } diff --git a/ocs/pkg/tracing/tracing.go b/ocs/pkg/tracing/tracing.go index 309270d04..8139cae7d 100644 --- a/ocs/pkg/tracing/tracing.go +++ b/ocs/pkg/tracing/tracing.go @@ -1,61 +1,21 @@ package tracing import ( - "github.com/owncloud/ocis/ocis-pkg/log" + pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/ocs/pkg/config" - "go.opentelemetry.io/otel/exporters/jaeger" - "go.opentelemetry.io/otel/propagation" - "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.4.0" ) var ( - // Propagator ensures the entire module uses the same trace propagation strategy. - Propagator propagation.TextMapPropagator - - // TraceProvider is the global trace provider for the proxy service. + // TraceProvider is the global trace provider for the ocs service. TraceProvider = sdktrace.NewTracerProvider() ) -func Configure(cfg *config.Config, logger log.Logger) error { - if cfg.Tracing.Enabled { - switch t := cfg.Tracing.Type; t { - case "jaeger": - { - exp, err := jaeger.New( - jaeger.WithCollectorEndpoint( - jaeger.WithEndpoint(cfg.Tracing.Collector), - ), - ) - if err != nil { - panic(err) - } - - // set package level trace provider and propagator. - TraceProvider = sdktrace.NewTracerProvider( - sdktrace.WithBatcher(exp), - sdktrace.WithResource(resource.NewWithAttributes( - semconv.SchemaURL, - semconv.ServiceNameKey.String("ocs")), - ), - ) - - Propagator = propagation.NewCompositeTextMapPropagator( - propagation.Baggage{}, - propagation.TraceContext{}, - ) - } - case "agent": - fallthrough - case "zipkin": - fallthrough - default: - logger.Warn().Str("type", t).Msg("Unknown tracing backend") - } - } else { - logger.Debug(). - Msg("Tracing is not enabled") +func Configure(cfg *config.Config) error { + var err error + if TraceProvider, err = pkgtrace.GetTraceProvider(cfg.Tracing.Collector, cfg.Tracing.Type, "ocs"); err != nil { + return err } + return nil } diff --git a/onlyoffice/pkg/command/server.go b/onlyoffice/pkg/command/server.go index 1558d61dc..211b378e8 100644 --- a/onlyoffice/pkg/command/server.go +++ b/onlyoffice/pkg/command/server.go @@ -38,7 +38,7 @@ func Server(cfg *config.Config) *cli.Command { Action: func(c *cli.Context) error { logger := NewLogger(cfg) - if err := tracing.Configure(cfg, logger); err != nil { + if err := tracing.Configure(cfg); err != nil { return err } diff --git a/onlyoffice/pkg/tracing/tracing.go b/onlyoffice/pkg/tracing/tracing.go index 96cd3d890..71a1fda67 100644 --- a/onlyoffice/pkg/tracing/tracing.go +++ b/onlyoffice/pkg/tracing/tracing.go @@ -1,61 +1,21 @@ package tracing import ( - "github.com/owncloud/ocis/ocis-pkg/log" + pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/onlyoffice/pkg/config" - "go.opentelemetry.io/otel/exporters/jaeger" - "go.opentelemetry.io/otel/propagation" - "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.4.0" ) var ( - // Propagator ensures the entire module uses the same trace propagation strategy. - Propagator propagation.TextMapPropagator - - // TraceProvider is the global trace provider for the proxy service. + // TraceProvider is the global trace provider for the onlyoffice service. TraceProvider = sdktrace.NewTracerProvider() ) -func Configure(cfg *config.Config, logger log.Logger) error { - if cfg.Tracing.Enabled { - switch t := cfg.Tracing.Type; t { - case "jaeger": - { - exp, err := jaeger.New( - jaeger.WithCollectorEndpoint( - jaeger.WithEndpoint(cfg.Tracing.Collector), - ), - ) - if err != nil { - panic(err) - } - - // set package level trace provider and propagator. - TraceProvider = sdktrace.NewTracerProvider( - sdktrace.WithBatcher(exp), - sdktrace.WithResource(resource.NewWithAttributes( - semconv.SchemaURL, - semconv.ServiceNameKey.String("onlyoffice")), - ), - ) - - Propagator = propagation.NewCompositeTextMapPropagator( - propagation.Baggage{}, - propagation.TraceContext{}, - ) - } - case "agent": - fallthrough - case "zipkin": - fallthrough - default: - logger.Warn().Str("type", t).Msg("Unknown tracing backend") - } - } else { - logger.Debug(). - Msg("Tracing is not enabled") +func Configure(cfg *config.Config) error { + var err error + if TraceProvider, err = pkgtrace.GetTraceProvider(cfg.Tracing.Collector, cfg.Tracing.Type, "onlyoffice"); err != nil { + return err } + return nil } diff --git a/proxy/pkg/command/server.go b/proxy/pkg/command/server.go index 48420db85..027967eea 100644 --- a/proxy/pkg/command/server.go +++ b/proxy/pkg/command/server.go @@ -59,7 +59,7 @@ func Server(cfg *config.Config) *cli.Command { Action: func(c *cli.Context) error { logger := NewLogger(cfg) - if err := tracing.Configure(cfg, logger); err != nil { + if err := tracing.Configure(cfg); err != nil { return err } diff --git a/proxy/pkg/proxy/proxy.go b/proxy/pkg/proxy/proxy.go index a7d27a7c5..5f4536e32 100644 --- a/proxy/pkg/proxy/proxy.go +++ b/proxy/pkg/proxy/proxy.go @@ -11,6 +11,8 @@ import ( "strings" "time" + pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" + "go.opentelemetry.io/otel/propagation" "github.com/owncloud/ocis/ocis-pkg/log" @@ -224,7 +226,7 @@ func (p *MultiHostReverseProxy) ServeHTTP(w http.ResponseWriter, r *http.Request tracer := proxytracing.TraceProvider.Tracer("proxy") ctx, span = tracer.Start(ctx, fmt.Sprintf("%s %v", r.Method, r.URL.Path)) defer span.End() - proxytracing.Propagator.Inject(ctx, propagation.HeaderCarrier(r.Header)) + pkgtrace.Propagator.Inject(ctx, propagation.HeaderCarrier(r.Header)) } p.ReverseProxy.ServeHTTP(w, r.WithContext(ctx)) diff --git a/proxy/pkg/tracing/tracing.go b/proxy/pkg/tracing/tracing.go index 5b1b69975..062ffd246 100644 --- a/proxy/pkg/tracing/tracing.go +++ b/proxy/pkg/tracing/tracing.go @@ -1,61 +1,21 @@ package tracing import ( - "github.com/owncloud/ocis/ocis-pkg/log" + pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/proxy/pkg/config" - "go.opentelemetry.io/otel/exporters/jaeger" - "go.opentelemetry.io/otel/propagation" - "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.4.0" ) var ( - // Propagator ensures the entire module uses the same trace propagation strategy. - Propagator propagation.TextMapPropagator - // TraceProvider is the global trace provider for the proxy service. TraceProvider = sdktrace.NewTracerProvider() ) -func Configure(cfg *config.Config, logger log.Logger) error { - if cfg.Tracing.Enabled { - switch t := cfg.Tracing.Type; t { - case "jaeger": - { - exp, err := jaeger.New( - jaeger.WithCollectorEndpoint( - jaeger.WithEndpoint(cfg.Tracing.Collector), - ), - ) - if err != nil { - panic(err) - } - - // set package level trace provider and propagator. - TraceProvider = sdktrace.NewTracerProvider( - sdktrace.WithBatcher(exp), - sdktrace.WithResource(resource.NewWithAttributes( - semconv.SchemaURL, - semconv.ServiceNameKey.String("proxy")), - ), - ) - - Propagator = propagation.NewCompositeTextMapPropagator( - propagation.Baggage{}, - propagation.TraceContext{}, - ) - } - case "agent": - fallthrough - case "zipkin": - fallthrough - default: - logger.Warn().Str("type", t).Msg("Unknown tracing backend") - } - } else { - logger.Debug(). - Msg("Tracing is not enabled") +func Configure(cfg *config.Config) error { + var err error + if TraceProvider, err = pkgtrace.GetTraceProvider(cfg.Tracing.Collector, cfg.Tracing.Type, "proxy"); err != nil { + return err } + return nil } diff --git a/settings/pkg/command/server.go b/settings/pkg/command/server.go index b8e1823d6..2336de23d 100644 --- a/settings/pkg/command/server.go +++ b/settings/pkg/command/server.go @@ -39,7 +39,7 @@ func Server(cfg *config.Config) *cli.Command { Action: func(c *cli.Context) error { logger := NewLogger(cfg) - err := tracing.Configure(cfg, logger) + err := tracing.Configure(cfg) if err != nil { return err } diff --git a/settings/pkg/tracing/tracing.go b/settings/pkg/tracing/tracing.go index 7d15f2efb..6821cd24b 100644 --- a/settings/pkg/tracing/tracing.go +++ b/settings/pkg/tracing/tracing.go @@ -1,61 +1,21 @@ package tracing import ( - "github.com/owncloud/ocis/ocis-pkg/log" + pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/settings/pkg/config" - "go.opentelemetry.io/otel/exporters/jaeger" - "go.opentelemetry.io/otel/propagation" - "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.4.0" ) var ( - // Propagator ensures the entire module uses the same trace propagation strategy. - Propagator propagation.TextMapPropagator - - // TraceProvider is the global trace provider for the proxy service. + // TraceProvider is the global trace provider for the settings service. TraceProvider = sdktrace.NewTracerProvider() ) -func Configure(cfg *config.Config, logger log.Logger) error { - if cfg.Tracing.Enabled { - switch t := cfg.Tracing.Type; t { - case "jaeger": - { - exp, err := jaeger.New( - jaeger.WithCollectorEndpoint( - jaeger.WithEndpoint(cfg.Tracing.Collector), - ), - ) - if err != nil { - panic(err) - } - - // set package level trace provider and propagator. - TraceProvider = sdktrace.NewTracerProvider( - sdktrace.WithBatcher(exp), - sdktrace.WithResource(resource.NewWithAttributes( - semconv.SchemaURL, - semconv.ServiceNameKey.String("settings")), - ), - ) - - Propagator = propagation.NewCompositeTextMapPropagator( - propagation.Baggage{}, - propagation.TraceContext{}, - ) - } - case "agent": - fallthrough - case "zipkin": - fallthrough - default: - logger.Warn().Str("type", t).Msg("Unknown tracing backend") - } - } else { - logger.Debug(). - Msg("Tracing is not enabled") +func Configure(cfg *config.Config) error { + var err error + if TraceProvider, err = pkgtrace.GetTraceProvider(cfg.Tracing.Collector, cfg.Tracing.Type, "settings"); err != nil { + return err } + return nil } diff --git a/store/pkg/command/server.go b/store/pkg/command/server.go index 68c1e749f..a6ab0704c 100644 --- a/store/pkg/command/server.go +++ b/store/pkg/command/server.go @@ -35,7 +35,7 @@ func Server(cfg *config.Config) *cli.Command { Action: func(c *cli.Context) error { logger := NewLogger(cfg) - if err := tracing.Configure(cfg, logger); err != nil { + if err := tracing.Configure(cfg); err != nil { return err } diff --git a/store/pkg/tracing/tracing.go b/store/pkg/tracing/tracing.go index 27af6fe2a..bc97bb7c5 100644 --- a/store/pkg/tracing/tracing.go +++ b/store/pkg/tracing/tracing.go @@ -1,61 +1,21 @@ package tracing import ( - "github.com/owncloud/ocis/ocis-pkg/log" + pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/store/pkg/config" - "go.opentelemetry.io/otel/exporters/jaeger" - "go.opentelemetry.io/otel/propagation" - "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.4.0" ) var ( - // Propagator ensures the entire module uses the same trace propagation strategy. - Propagator propagation.TextMapPropagator - - // TraceProvider is the global trace provider for the proxy service. + // TraceProvider is the global trace provider for the store service. TraceProvider = sdktrace.NewTracerProvider() ) -func Configure(cfg *config.Config, logger log.Logger) error { - if cfg.Tracing.Enabled { - switch t := cfg.Tracing.Type; t { - case "jaeger": - { - exp, err := jaeger.New( - jaeger.WithCollectorEndpoint( - jaeger.WithEndpoint(cfg.Tracing.Collector), - ), - ) - if err != nil { - panic(err) - } - - // set package level trace provider and propagator. - TraceProvider = sdktrace.NewTracerProvider( - sdktrace.WithBatcher(exp), - sdktrace.WithResource(resource.NewWithAttributes( - semconv.SchemaURL, - semconv.ServiceNameKey.String("store")), - ), - ) - - Propagator = propagation.NewCompositeTextMapPropagator( - propagation.Baggage{}, - propagation.TraceContext{}, - ) - } - case "agent": - fallthrough - case "zipkin": - fallthrough - default: - logger.Warn().Str("type", t).Msg("Unknown tracing backend") - } - } else { - logger.Debug(). - Msg("Tracing is not enabled") +func Configure(cfg *config.Config) error { + var err error + if TraceProvider, err = pkgtrace.GetTraceProvider(cfg.Tracing.Collector, cfg.Tracing.Type, "store"); err != nil { + return err } + return nil } diff --git a/thumbnails/pkg/command/server.go b/thumbnails/pkg/command/server.go index 9825b229b..eeeb61d09 100644 --- a/thumbnails/pkg/command/server.go +++ b/thumbnails/pkg/command/server.go @@ -33,7 +33,7 @@ func Server(cfg *config.Config) *cli.Command { }, Action: func(c *cli.Context) error { logger := NewLogger(cfg) - if err := tracing.Configure(cfg, logger); err != nil { + if err := tracing.Configure(cfg); err != nil { return err } diff --git a/thumbnails/pkg/service/v0/tracing.go b/thumbnails/pkg/service/v0/tracing.go index a6d3c15e1..f13a21e2f 100644 --- a/thumbnails/pkg/service/v0/tracing.go +++ b/thumbnails/pkg/service/v0/tracing.go @@ -31,10 +31,10 @@ func (t tracing) GetThumbnail(ctx context.Context, req *v0proto.GetThumbnailRequ defer span.End() span.SetAttributes( - attribute.KeyValue{"filepath", attribute.StringValue(req.Filepath)}, - attribute.KeyValue{"thumbnail_type", attribute.StringValue(req.ThumbnailType.String())}, - attribute.KeyValue{"width", attribute.IntValue(int(req.Width))}, - attribute.KeyValue{"height", attribute.IntValue(int(req.Height))}, + attribute.KeyValue{Key: "filepath", Value: attribute.StringValue(req.Filepath)}, + attribute.KeyValue{Key: "thumbnail_type", Value: attribute.StringValue(req.ThumbnailType.String())}, + attribute.KeyValue{Key: "width", Value: attribute.IntValue(int(req.Width))}, + attribute.KeyValue{Key: "height", Value: attribute.IntValue(int(req.Height))}, ) } diff --git a/thumbnails/pkg/tracing/tracing.go b/thumbnails/pkg/tracing/tracing.go index 29b04b6df..01172bd06 100644 --- a/thumbnails/pkg/tracing/tracing.go +++ b/thumbnails/pkg/tracing/tracing.go @@ -1,61 +1,21 @@ package tracing import ( - "github.com/owncloud/ocis/ocis-pkg/log" + pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/thumbnails/pkg/config" - "go.opentelemetry.io/otel/exporters/jaeger" - "go.opentelemetry.io/otel/propagation" - "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.4.0" ) var ( - // Propagator ensures the entire module uses the same trace propagation strategy. - Propagator propagation.TextMapPropagator - - // TraceProvider is the global trace provider for the proxy service. + // TraceProvider is the global trace provider for the thumbnails service. TraceProvider = sdktrace.NewTracerProvider() ) -func Configure(cfg *config.Config, logger log.Logger) error { - if cfg.Tracing.Enabled { - switch t := cfg.Tracing.Type; t { - case "jaeger": - { - exp, err := jaeger.New( - jaeger.WithCollectorEndpoint( - jaeger.WithEndpoint(cfg.Tracing.Collector), - ), - ) - if err != nil { - panic(err) - } - - // set package level trace provider and propagator. - TraceProvider = sdktrace.NewTracerProvider( - sdktrace.WithBatcher(exp), - sdktrace.WithResource(resource.NewWithAttributes( - semconv.SchemaURL, - semconv.ServiceNameKey.String("thumbnails")), - ), - ) - - Propagator = propagation.NewCompositeTextMapPropagator( - propagation.Baggage{}, - propagation.TraceContext{}, - ) - } - case "agent": - fallthrough - case "zipkin": - fallthrough - default: - logger.Warn().Str("type", t).Msg("Unknown tracing backend") - } - } else { - logger.Debug(). - Msg("Tracing is not enabled") +func Configure(cfg *config.Config) error { + var err error + if TraceProvider, err = pkgtrace.GetTraceProvider(cfg.Tracing.Collector, cfg.Tracing.Type, "thumbnails"); err != nil { + return err } + return nil } diff --git a/web/pkg/command/server.go b/web/pkg/command/server.go index 2d518000b..578a14577 100644 --- a/web/pkg/command/server.go +++ b/web/pkg/command/server.go @@ -47,7 +47,7 @@ func Server(cfg *config.Config) *cli.Command { Action: func(c *cli.Context) error { logger := NewLogger(cfg) - if err := tracing.Configure(cfg, logger); err != nil { + if err := tracing.Configure(cfg); err != nil { return err } diff --git a/web/pkg/tracing/tracing.go b/web/pkg/tracing/tracing.go index 7e15196b6..faa43f86e 100644 --- a/web/pkg/tracing/tracing.go +++ b/web/pkg/tracing/tracing.go @@ -1,61 +1,21 @@ package tracing import ( - "github.com/owncloud/ocis/ocis-pkg/log" + pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/web/pkg/config" - "go.opentelemetry.io/otel/exporters/jaeger" - "go.opentelemetry.io/otel/propagation" - "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.4.0" ) var ( - // Propagator ensures the entire module uses the same trace propagation strategy. - Propagator propagation.TextMapPropagator - - // TraceProvider is the global trace provider for the proxy service. + // TraceProvider is the global trace provider for the web service. TraceProvider = sdktrace.NewTracerProvider() ) -func Configure(cfg *config.Config, logger log.Logger) error { - if cfg.Tracing.Enabled { - switch t := cfg.Tracing.Type; t { - case "jaeger": - { - exp, err := jaeger.New( - jaeger.WithCollectorEndpoint( - jaeger.WithEndpoint(cfg.Tracing.Collector), - ), - ) - if err != nil { - panic(err) - } - - // set package level trace provider and propagator. - TraceProvider = sdktrace.NewTracerProvider( - sdktrace.WithBatcher(exp), - sdktrace.WithResource(resource.NewWithAttributes( - semconv.SchemaURL, - semconv.ServiceNameKey.String("web")), - ), - ) - - Propagator = propagation.NewCompositeTextMapPropagator( - propagation.Baggage{}, - propagation.TraceContext{}, - ) - } - case "agent": - fallthrough - case "zipkin": - fallthrough - default: - logger.Warn().Str("type", t).Msg("Unknown tracing backend") - } - } else { - logger.Debug(). - Msg("Tracing is not enabled") +func Configure(cfg *config.Config) error { + var err error + if TraceProvider, err = pkgtrace.GetTraceProvider(cfg.Tracing.Collector, cfg.Tracing.Type, "web"); err != nil { + return err } + return nil } diff --git a/webdav/pkg/command/server.go b/webdav/pkg/command/server.go index dbe411e02..968e63428 100644 --- a/webdav/pkg/command/server.go +++ b/webdav/pkg/command/server.go @@ -36,7 +36,7 @@ func Server(cfg *config.Config) *cli.Command { Action: func(c *cli.Context) error { logger := NewLogger(cfg) - if err := tracing.Configure(cfg, logger); err != nil { + if err := tracing.Configure(cfg); err != nil { return err } diff --git a/webdav/pkg/tracing/tracing.go b/webdav/pkg/tracing/tracing.go index d0aaf0879..7735e43ad 100644 --- a/webdav/pkg/tracing/tracing.go +++ b/webdav/pkg/tracing/tracing.go @@ -1,61 +1,21 @@ package tracing import ( - "github.com/owncloud/ocis/ocis-pkg/log" + pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/webdav/pkg/config" - "go.opentelemetry.io/otel/exporters/jaeger" - "go.opentelemetry.io/otel/propagation" - "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.4.0" ) var ( - // Propagator ensures the entire module uses the same trace propagation strategy. - Propagator propagation.TextMapPropagator - // TraceProvider is the global trace provider for the proxy service. TraceProvider = sdktrace.NewTracerProvider() ) -func Configure(cfg *config.Config, logger log.Logger) error { - if cfg.Tracing.Enabled { - switch t := cfg.Tracing.Type; t { - case "jaeger": - { - exp, err := jaeger.New( - jaeger.WithCollectorEndpoint( - jaeger.WithEndpoint(cfg.Tracing.Collector), - ), - ) - if err != nil { - panic(err) - } - - // set package level trace provider and propagator. - TraceProvider = sdktrace.NewTracerProvider( - sdktrace.WithBatcher(exp), - sdktrace.WithResource(resource.NewWithAttributes( - semconv.SchemaURL, - semconv.ServiceNameKey.String("webdav")), - ), - ) - - Propagator = propagation.NewCompositeTextMapPropagator( - propagation.Baggage{}, - propagation.TraceContext{}, - ) - } - case "agent": - fallthrough - case "zipkin": - fallthrough - default: - logger.Warn().Str("type", t).Msg("Unknown tracing backend") - } - } else { - logger.Debug(). - Msg("Tracing is not enabled") +func Configure(cfg *config.Config) error { + var err error + if TraceProvider, err = pkgtrace.GetTraceProvider(cfg.Tracing.Collector, cfg.Tracing.Type, "webdav"); err != nil { + return err } + return nil } From ad994ded1655f2b839f072e910ed5cf12db2f689 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Mon, 9 Aug 2021 18:15:34 +0200 Subject: [PATCH 20/31] more refactoring --- accounts/pkg/tracing/tracing.go | 2 +- glauth/pkg/tracing/tracing.go | 2 +- graph-explorer/pkg/tracing/tracing.go | 2 +- graph/pkg/tracing/tracing.go | 2 +- idp/pkg/tracing/tracing.go | 2 +- ocis-pkg/tracing/tracing.go | 42 +++++++++++++++------------ ocs/pkg/tracing/tracing.go | 2 +- onlyoffice/pkg/tracing/tracing.go | 2 +- proxy/pkg/tracing/tracing.go | 2 +- settings/pkg/tracing/tracing.go | 2 +- store/pkg/tracing/tracing.go | 2 +- thumbnails/pkg/tracing/tracing.go | 2 +- web/pkg/tracing/tracing.go | 2 +- webdav/pkg/tracing/tracing.go | 2 +- 14 files changed, 37 insertions(+), 31 deletions(-) diff --git a/accounts/pkg/tracing/tracing.go b/accounts/pkg/tracing/tracing.go index 678976da9..25408837b 100644 --- a/accounts/pkg/tracing/tracing.go +++ b/accounts/pkg/tracing/tracing.go @@ -8,7 +8,7 @@ import ( var ( // TraceProvider is the global trace provider for the proxy service. - TraceProvider = sdktrace.NewTracerProvider() + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config) error { diff --git a/glauth/pkg/tracing/tracing.go b/glauth/pkg/tracing/tracing.go index 043ef5804..b721b7574 100644 --- a/glauth/pkg/tracing/tracing.go +++ b/glauth/pkg/tracing/tracing.go @@ -8,7 +8,7 @@ import ( var ( // TraceProvider is the global trace provider for the glauth service. - TraceProvider = sdktrace.NewTracerProvider() + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config) error { diff --git a/graph-explorer/pkg/tracing/tracing.go b/graph-explorer/pkg/tracing/tracing.go index 228c7c3de..f1e5e3fac 100644 --- a/graph-explorer/pkg/tracing/tracing.go +++ b/graph-explorer/pkg/tracing/tracing.go @@ -8,7 +8,7 @@ import ( var ( // TraceProvider is the global trace provider for the proxy service. - TraceProvider = sdktrace.NewTracerProvider() + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config) error { diff --git a/graph/pkg/tracing/tracing.go b/graph/pkg/tracing/tracing.go index aea3b9af9..2180fb315 100644 --- a/graph/pkg/tracing/tracing.go +++ b/graph/pkg/tracing/tracing.go @@ -8,7 +8,7 @@ import ( var ( // TraceProvider is the global trace provider for the graph service. - TraceProvider = sdktrace.NewTracerProvider() + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config) error { diff --git a/idp/pkg/tracing/tracing.go b/idp/pkg/tracing/tracing.go index b94bac504..1bbd6f3b0 100644 --- a/idp/pkg/tracing/tracing.go +++ b/idp/pkg/tracing/tracing.go @@ -8,7 +8,7 @@ import ( var ( // TraceProvider is the global trace provider for the idp service. - TraceProvider = sdktrace.NewTracerProvider() + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config) error { diff --git a/ocis-pkg/tracing/tracing.go b/ocis-pkg/tracing/tracing.go index acd1cc91f..4ca4c8581 100644 --- a/ocis-pkg/tracing/tracing.go +++ b/ocis-pkg/tracing/tracing.go @@ -11,30 +11,36 @@ import ( ) // Propagator ensures the importer module uses the same trace propagation strategy. -var Propagator propagation.TextMapPropagator +var Propagator = propagation.NewCompositeTextMapPropagator( + propagation.Baggage{}, + propagation.TraceContext{}, +) // GetTraceProvider returns a configured open-telemetry trace provider. func GetTraceProvider(collectorEndpoint, traceType, serviceName string) (*sdktrace.TracerProvider, error) { switch t := traceType; t { case "jaeger": - { - exp, err := jaeger.New( - jaeger.WithCollectorEndpoint( - jaeger.WithEndpoint(collectorEndpoint), - ), - ) - if err != nil { - return nil, err - } - - return sdktrace.NewTracerProvider( - sdktrace.WithBatcher(exp), - sdktrace.WithResource(resource.NewWithAttributes( - semconv.SchemaURL, - semconv.ServiceNameKey.String(serviceName)), - ), - ), nil + if collectorEndpoint == "" { + return sdktrace.NewTracerProvider(), nil } + + exp, err := jaeger.New( + jaeger.WithCollectorEndpoint( + jaeger.WithEndpoint(collectorEndpoint), + ), + ) + if err != nil { + return nil, err + } + + return sdktrace.NewTracerProvider( + sdktrace.WithBatcher(exp), + sdktrace.WithResource(resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceNameKey.String(serviceName)), + ), + ), nil + case "agent": fallthrough case "zipkin": diff --git a/ocs/pkg/tracing/tracing.go b/ocs/pkg/tracing/tracing.go index 8139cae7d..228587b92 100644 --- a/ocs/pkg/tracing/tracing.go +++ b/ocs/pkg/tracing/tracing.go @@ -8,7 +8,7 @@ import ( var ( // TraceProvider is the global trace provider for the ocs service. - TraceProvider = sdktrace.NewTracerProvider() + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config) error { diff --git a/onlyoffice/pkg/tracing/tracing.go b/onlyoffice/pkg/tracing/tracing.go index 71a1fda67..d775ffa4b 100644 --- a/onlyoffice/pkg/tracing/tracing.go +++ b/onlyoffice/pkg/tracing/tracing.go @@ -8,7 +8,7 @@ import ( var ( // TraceProvider is the global trace provider for the onlyoffice service. - TraceProvider = sdktrace.NewTracerProvider() + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config) error { diff --git a/proxy/pkg/tracing/tracing.go b/proxy/pkg/tracing/tracing.go index 062ffd246..ee9f3dfcf 100644 --- a/proxy/pkg/tracing/tracing.go +++ b/proxy/pkg/tracing/tracing.go @@ -8,7 +8,7 @@ import ( var ( // TraceProvider is the global trace provider for the proxy service. - TraceProvider = sdktrace.NewTracerProvider() + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config) error { diff --git a/settings/pkg/tracing/tracing.go b/settings/pkg/tracing/tracing.go index 6821cd24b..bc86e3af1 100644 --- a/settings/pkg/tracing/tracing.go +++ b/settings/pkg/tracing/tracing.go @@ -8,7 +8,7 @@ import ( var ( // TraceProvider is the global trace provider for the settings service. - TraceProvider = sdktrace.NewTracerProvider() + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config) error { diff --git a/store/pkg/tracing/tracing.go b/store/pkg/tracing/tracing.go index bc97bb7c5..726566224 100644 --- a/store/pkg/tracing/tracing.go +++ b/store/pkg/tracing/tracing.go @@ -8,7 +8,7 @@ import ( var ( // TraceProvider is the global trace provider for the store service. - TraceProvider = sdktrace.NewTracerProvider() + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config) error { diff --git a/thumbnails/pkg/tracing/tracing.go b/thumbnails/pkg/tracing/tracing.go index 01172bd06..c9c45e5ef 100644 --- a/thumbnails/pkg/tracing/tracing.go +++ b/thumbnails/pkg/tracing/tracing.go @@ -8,7 +8,7 @@ import ( var ( // TraceProvider is the global trace provider for the thumbnails service. - TraceProvider = sdktrace.NewTracerProvider() + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config) error { diff --git a/web/pkg/tracing/tracing.go b/web/pkg/tracing/tracing.go index faa43f86e..1f788eca2 100644 --- a/web/pkg/tracing/tracing.go +++ b/web/pkg/tracing/tracing.go @@ -8,7 +8,7 @@ import ( var ( // TraceProvider is the global trace provider for the web service. - TraceProvider = sdktrace.NewTracerProvider() + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config) error { diff --git a/webdav/pkg/tracing/tracing.go b/webdav/pkg/tracing/tracing.go index 7735e43ad..6f1fbc9ac 100644 --- a/webdav/pkg/tracing/tracing.go +++ b/webdav/pkg/tracing/tracing.go @@ -8,7 +8,7 @@ import ( var ( // TraceProvider is the global trace provider for the proxy service. - TraceProvider = sdktrace.NewTracerProvider() + TraceProvider *sdktrace.TracerProvider ) func Configure(cfg *config.Config) error { From 1ed38e1f3b411263f3e34c6fa090f1e116208cb5 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Mon, 9 Aug 2021 23:18:03 +0200 Subject: [PATCH 21/31] guard against unconfigured tracer --- accounts/pkg/service/v0/accounts.go | 63 ++++++++++++++++++----------- 1 file changed, 40 insertions(+), 23 deletions(-) diff --git a/accounts/pkg/service/v0/accounts.go b/accounts/pkg/service/v0/accounts.go index d0e7c311f..d0aa54175 100644 --- a/accounts/pkg/service/v0/accounts.go +++ b/accounts/pkg/service/v0/accounts.go @@ -12,6 +12,8 @@ import ( "strconv" "time" + "go.opentelemetry.io/otel/trace" + "go.opentelemetry.io/otel/attribute" merrors "github.com/asim/go-micro/v3/errors" @@ -125,13 +127,16 @@ func (s Service) getInMemoryServiceUser() proto.Account { // ListAccounts implements the AccountsServiceHandler interface // the query contains account properties func (s Service) ListAccounts(ctx context.Context, in *proto.ListAccountsRequest, out *proto.ListAccountsResponse) (err error) { - ctx, span := accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.ListAccounts") - defer span.End() + var span trace.Span + if s.Config.Tracing.Enabled { + ctx, span = accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.ListAccounts") + defer span.End() - span.SetAttributes( - attribute.KeyValue{Key: "page_size", Value: attribute.Int64Value(int64(in.PageSize))}, - attribute.KeyValue{Key: "page_token", Value: attribute.StringValue(in.PageToken)}, - ) + span.SetAttributes( + attribute.KeyValue{Key: "page_size", Value: attribute.Int64Value(int64(in.PageSize))}, + attribute.KeyValue{Key: "page_token", Value: attribute.StringValue(in.PageToken)}, + ) + } hasSelf := s.hasSelfManagementPermissions(ctx) hasManagement := s.hasAccountManagementPermissions(ctx) @@ -278,12 +283,15 @@ func (s Service) findAccountsByQuery(ctx context.Context, query string) ([]strin // GetAccount implements the AccountsServiceHandler interface func (s Service) GetAccount(ctx context.Context, in *proto.GetAccountRequest, out *proto.Account) (err error) { - ctx, span := accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.GetAccount") - defer span.End() + var span trace.Span + if s.Config.Tracing.Enabled { + ctx, span = accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.GetAccount") + defer span.End() - span.SetAttributes( - attribute.KeyValue{Key: "account_id", Value: attribute.StringValue(in.Id)}, - ) + span.SetAttributes( + attribute.KeyValue{Key: "account_id", Value: attribute.StringValue(in.Id)}, + ) + } hasSelf := s.hasSelfManagementPermissions(ctx) hasManagement := s.hasAccountManagementPermissions(ctx) @@ -333,12 +341,15 @@ func (s Service) GetAccount(ctx context.Context, in *proto.GetAccountRequest, ou // CreateAccount implements the AccountsServiceHandler interface func (s Service) CreateAccount(ctx context.Context, in *proto.CreateAccountRequest, out *proto.Account) (err error) { - ctx, span := accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.CreateAccount") - defer span.End() + var span trace.Span + if s.Config.Tracing.Enabled { + ctx, span = accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.CreateAccount") + defer span.End() - span.SetAttributes( - attribute.KeyValue{Key: "account", Value: attribute.StringValue(in.Account.String())}, - ) + span.SetAttributes( + attribute.KeyValue{Key: "account", Value: attribute.StringValue(in.Account.String())}, + ) + } if !s.hasAccountManagementPermissions(ctx) { return merrors.Forbidden(s.id, "no permission for CreateAccount") @@ -472,12 +483,15 @@ func (s Service) rollbackCreateAccount(ctx context.Context, acc *proto.Account) // read only fields are ignored // TODO how can we unset specific values? using the update mask func (s Service) UpdateAccount(ctx context.Context, in *proto.UpdateAccountRequest, out *proto.Account) (err error) { - ctx, span := accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.UpdateAccount") - defer span.End() + var span trace.Span + if s.Config.Tracing.Enabled { + ctx, span = accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.UpdateAccount") + defer span.End() - span.SetAttributes( - attribute.KeyValue{Key: "account", Value: attribute.StringValue(in.Account.String())}, - ) + span.SetAttributes( + attribute.KeyValue{Key: "account", Value: attribute.StringValue(in.Account.String())}, + ) + } hasSelf := s.hasSelfManagementPermissions(ctx) hasManagement := s.hasAccountManagementPermissions(ctx) @@ -645,8 +659,11 @@ var updatableAccountPaths = map[string]struct{}{ // DeleteAccount implements the AccountsServiceHandler interface func (s Service) DeleteAccount(ctx context.Context, in *proto.DeleteAccountRequest, out *empty.Empty) (err error) { - ctx, span := accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.DeleteAccount") - defer span.End() + var span trace.Span + if s.Config.Tracing.Enabled { + ctx, span = accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.DeleteAccount") + defer span.End() + } if !s.hasAccountManagementPermissions(ctx) { return merrors.Forbidden(s.id, "no permission for DeleteAccount") From 8a80b990a81b513f51ed8e8142346d264b70a3db Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Tue, 10 Aug 2021 00:09:39 +0200 Subject: [PATCH 22/31] safer code --- accounts/pkg/service/v0/accounts.go | 60 ++++++++++++--------------- accounts/pkg/tracing/tracing.go | 4 +- glauth/pkg/tracing/tracing.go | 4 +- graph-explorer/pkg/tracing/tracing.go | 4 +- graph/pkg/tracing/tracing.go | 4 +- idp/pkg/tracing/tracing.go | 4 +- ocs/pkg/service/v0/groups.go | 36 +++++++--------- ocs/pkg/service/v0/users.go | 12 +++--- ocs/pkg/tracing/tracing.go | 4 +- onlyoffice/pkg/tracing/tracing.go | 4 +- proxy/pkg/proxy/proxy.go | 7 ++-- proxy/pkg/tracing/tracing.go | 4 +- settings/pkg/tracing/tracing.go | 4 +- store/pkg/tracing/tracing.go | 4 +- thumbnails/pkg/tracing/tracing.go | 4 +- web/pkg/tracing/tracing.go | 4 +- webdav/pkg/tracing/tracing.go | 4 +- 17 files changed, 77 insertions(+), 90 deletions(-) diff --git a/accounts/pkg/service/v0/accounts.go b/accounts/pkg/service/v0/accounts.go index d0aa54175..53b3f1278 100644 --- a/accounts/pkg/service/v0/accounts.go +++ b/accounts/pkg/service/v0/accounts.go @@ -128,15 +128,13 @@ func (s Service) getInMemoryServiceUser() proto.Account { // the query contains account properties func (s Service) ListAccounts(ctx context.Context, in *proto.ListAccountsRequest, out *proto.ListAccountsResponse) (err error) { var span trace.Span - if s.Config.Tracing.Enabled { - ctx, span = accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.ListAccounts") - defer span.End() + ctx, span = accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.ListAccounts") + defer span.End() - span.SetAttributes( - attribute.KeyValue{Key: "page_size", Value: attribute.Int64Value(int64(in.PageSize))}, - attribute.KeyValue{Key: "page_token", Value: attribute.StringValue(in.PageToken)}, - ) - } + span.SetAttributes( + attribute.KeyValue{Key: "page_size", Value: attribute.Int64Value(int64(in.PageSize))}, + attribute.KeyValue{Key: "page_token", Value: attribute.StringValue(in.PageToken)}, + ) hasSelf := s.hasSelfManagementPermissions(ctx) hasManagement := s.hasAccountManagementPermissions(ctx) @@ -284,14 +282,13 @@ func (s Service) findAccountsByQuery(ctx context.Context, query string) ([]strin // GetAccount implements the AccountsServiceHandler interface func (s Service) GetAccount(ctx context.Context, in *proto.GetAccountRequest, out *proto.Account) (err error) { var span trace.Span - if s.Config.Tracing.Enabled { - ctx, span = accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.GetAccount") - defer span.End() - span.SetAttributes( - attribute.KeyValue{Key: "account_id", Value: attribute.StringValue(in.Id)}, - ) - } + ctx, span = accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.GetAccount") + defer span.End() + + span.SetAttributes( + attribute.KeyValue{Key: "account_id", Value: attribute.StringValue(in.Id)}, + ) hasSelf := s.hasSelfManagementPermissions(ctx) hasManagement := s.hasAccountManagementPermissions(ctx) @@ -342,14 +339,13 @@ func (s Service) GetAccount(ctx context.Context, in *proto.GetAccountRequest, ou // CreateAccount implements the AccountsServiceHandler interface func (s Service) CreateAccount(ctx context.Context, in *proto.CreateAccountRequest, out *proto.Account) (err error) { var span trace.Span - if s.Config.Tracing.Enabled { - ctx, span = accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.CreateAccount") - defer span.End() - span.SetAttributes( - attribute.KeyValue{Key: "account", Value: attribute.StringValue(in.Account.String())}, - ) - } + ctx, span = accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.CreateAccount") + defer span.End() + + span.SetAttributes( + attribute.KeyValue{Key: "account", Value: attribute.StringValue(in.Account.String())}, + ) if !s.hasAccountManagementPermissions(ctx) { return merrors.Forbidden(s.id, "no permission for CreateAccount") @@ -484,14 +480,13 @@ func (s Service) rollbackCreateAccount(ctx context.Context, acc *proto.Account) // TODO how can we unset specific values? using the update mask func (s Service) UpdateAccount(ctx context.Context, in *proto.UpdateAccountRequest, out *proto.Account) (err error) { var span trace.Span - if s.Config.Tracing.Enabled { - ctx, span = accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.UpdateAccount") - defer span.End() - span.SetAttributes( - attribute.KeyValue{Key: "account", Value: attribute.StringValue(in.Account.String())}, - ) - } + ctx, span = accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.UpdateAccount") + defer span.End() + + span.SetAttributes( + attribute.KeyValue{Key: "account", Value: attribute.StringValue(in.Account.String())}, + ) hasSelf := s.hasSelfManagementPermissions(ctx) hasManagement := s.hasAccountManagementPermissions(ctx) @@ -660,10 +655,9 @@ var updatableAccountPaths = map[string]struct{}{ // DeleteAccount implements the AccountsServiceHandler interface func (s Service) DeleteAccount(ctx context.Context, in *proto.DeleteAccountRequest, out *empty.Empty) (err error) { var span trace.Span - if s.Config.Tracing.Enabled { - ctx, span = accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.DeleteAccount") - defer span.End() - } + + ctx, span = accTracing.TraceProvider.Tracer("accounts").Start(ctx, "Accounts.DeleteAccount") + defer span.End() if !s.hasAccountManagementPermissions(ctx) { return merrors.Forbidden(s.id, "no permission for DeleteAccount") diff --git a/accounts/pkg/tracing/tracing.go b/accounts/pkg/tracing/tracing.go index 25408837b..2a8263a85 100644 --- a/accounts/pkg/tracing/tracing.go +++ b/accounts/pkg/tracing/tracing.go @@ -3,12 +3,12 @@ package tracing import ( "github.com/owncloud/ocis/accounts/pkg/config" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" - sdktrace "go.opentelemetry.io/otel/sdk/trace" + "go.opentelemetry.io/otel/trace" ) var ( // TraceProvider is the global trace provider for the proxy service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = trace.NewNoopTracerProvider() ) func Configure(cfg *config.Config) error { diff --git a/glauth/pkg/tracing/tracing.go b/glauth/pkg/tracing/tracing.go index b721b7574..1ea50a2d6 100644 --- a/glauth/pkg/tracing/tracing.go +++ b/glauth/pkg/tracing/tracing.go @@ -3,12 +3,12 @@ package tracing import ( "github.com/owncloud/ocis/glauth/pkg/config" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" - sdktrace "go.opentelemetry.io/otel/sdk/trace" + "go.opentelemetry.io/otel/trace" ) var ( // TraceProvider is the global trace provider for the glauth service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = trace.NewNoopTracerProvider() ) func Configure(cfg *config.Config) error { diff --git a/graph-explorer/pkg/tracing/tracing.go b/graph-explorer/pkg/tracing/tracing.go index f1e5e3fac..d76a0c3e8 100644 --- a/graph-explorer/pkg/tracing/tracing.go +++ b/graph-explorer/pkg/tracing/tracing.go @@ -3,12 +3,12 @@ package tracing import ( "github.com/owncloud/ocis/graph-explorer/pkg/config" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" - sdktrace "go.opentelemetry.io/otel/sdk/trace" + "go.opentelemetry.io/otel/trace" ) var ( // TraceProvider is the global trace provider for the proxy service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = trace.NewNoopTracerProvider() ) func Configure(cfg *config.Config) error { diff --git a/graph/pkg/tracing/tracing.go b/graph/pkg/tracing/tracing.go index 2180fb315..e0ee16cef 100644 --- a/graph/pkg/tracing/tracing.go +++ b/graph/pkg/tracing/tracing.go @@ -3,12 +3,12 @@ package tracing import ( "github.com/owncloud/ocis/graph/pkg/config" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" - sdktrace "go.opentelemetry.io/otel/sdk/trace" + "go.opentelemetry.io/otel/trace" ) var ( // TraceProvider is the global trace provider for the graph service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = trace.NewNoopTracerProvider() ) func Configure(cfg *config.Config) error { diff --git a/idp/pkg/tracing/tracing.go b/idp/pkg/tracing/tracing.go index 1bbd6f3b0..4426d6762 100644 --- a/idp/pkg/tracing/tracing.go +++ b/idp/pkg/tracing/tracing.go @@ -3,12 +3,12 @@ package tracing import ( "github.com/owncloud/ocis/idp/pkg/config" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" - sdktrace "go.opentelemetry.io/otel/sdk/trace" + "go.opentelemetry.io/otel/trace" ) var ( // TraceProvider is the global trace provider for the idp service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = trace.NewNoopTracerProvider() ) func Configure(cfg *config.Config) error { diff --git a/ocs/pkg/service/v0/groups.go b/ocs/pkg/service/v0/groups.go index a8c461d00..f592ad742 100644 --- a/ocs/pkg/service/v0/groups.go +++ b/ocs/pkg/service/v0/groups.go @@ -33,14 +33,12 @@ func (o Ocs) ListUserGroups(w http.ResponseWriter, r *http.Request) { // the OCS API is a REST API and it uses the username to look for groups. If the id from the user in the context // differs from that of the url we can assume we are an admin because we are past the selfOrAdmin middleware. - if o.config.Tracing.Enabled { - _, span := ocstracing.TraceProvider. - Tracer("ocs"). - Start(r.Context(), "ListUserGroups") - defer span.End() + _, span := ocstracing.TraceProvider. + Tracer("ocs"). + Start(r.Context(), "ListUserGroups") + defer span.End() - span.SetAttributes(attribute.Any("groups", u.Groups)) - } + span.SetAttributes(attribute.Any("groups", u.Groups)) if len(u.Groups) > 0 { mustNotFail(render.Render(w, r, response.DataRender(&data.Groups{Groups: u.Groups}))) @@ -93,14 +91,12 @@ func (o Ocs) ListUserGroups(w http.ResponseWriter, r *http.Request) { o.logger.Error().Err(err).Int("count", len(groups)).Str("userid", account.Id).Msg("listing groups for user") - if o.config.Tracing.Enabled { - _, span := ocstracing.TraceProvider. - Tracer("ocs"). - Start(r.Context(), "ListUserGroups") - defer span.End() + _, span := ocstracing.TraceProvider. + Tracer("ocs"). + Start(r.Context(), "ListUserGroups") + defer span.End() - span.SetAttributes(attribute.Any("groups", groups)) - } + span.SetAttributes(attribute.Any("groups", groups)) mustNotFail(render.Render(w, r, response.DataRender(&data.Groups{Groups: groups}))) } @@ -265,14 +261,12 @@ func (o Ocs) ListGroups(w http.ResponseWriter, r *http.Request) { groups = append(groups, res.Groups[i].OnPremisesSamAccountName) } - if o.config.Tracing.Enabled { - _, span := ocstracing.TraceProvider. - Tracer("ocs"). - Start(r.Context(), "ListGroups") - defer span.End() + _, span := ocstracing.TraceProvider. + Tracer("ocs"). + Start(r.Context(), "ListGroups") + defer span.End() - span.SetAttributes(attribute.Any("groups", groups)) - } + span.SetAttributes(attribute.Any("groups", groups)) mustNotFail(render.Render(w, r, response.DataRender(&data.Groups{Groups: groups}))) } diff --git a/ocs/pkg/service/v0/users.go b/ocs/pkg/service/v0/users.go index 75a052365..cca80e0b1 100644 --- a/ocs/pkg/service/v0/users.go +++ b/ocs/pkg/service/v0/users.go @@ -148,14 +148,12 @@ func (o Ocs) GetUser(w http.ResponseWriter, r *http.Request) { }, } - if o.config.Tracing.Enabled { - _, span := ocstracing.TraceProvider. - Tracer("ocs"). - Start(r.Context(), "GetUser") - defer span.End() + _, span := ocstracing.TraceProvider. + Tracer("ocs"). + Start(r.Context(), "GetUser") + defer span.End() - span.SetAttributes(attribute.Any("user", d)) - } + span.SetAttributes(attribute.Any("user", d)) mustNotFail(render.Render(w, r, response.DataRender(d))) } diff --git a/ocs/pkg/tracing/tracing.go b/ocs/pkg/tracing/tracing.go index 228587b92..e8c6f101e 100644 --- a/ocs/pkg/tracing/tracing.go +++ b/ocs/pkg/tracing/tracing.go @@ -3,12 +3,12 @@ package tracing import ( pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/ocs/pkg/config" - sdktrace "go.opentelemetry.io/otel/sdk/trace" + "go.opentelemetry.io/otel/trace" ) var ( // TraceProvider is the global trace provider for the ocs service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = trace.NewNoopTracerProvider() ) func Configure(cfg *config.Config) error { diff --git a/onlyoffice/pkg/tracing/tracing.go b/onlyoffice/pkg/tracing/tracing.go index d775ffa4b..1713bfb6d 100644 --- a/onlyoffice/pkg/tracing/tracing.go +++ b/onlyoffice/pkg/tracing/tracing.go @@ -3,12 +3,12 @@ package tracing import ( pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/onlyoffice/pkg/config" - sdktrace "go.opentelemetry.io/otel/sdk/trace" + "go.opentelemetry.io/otel/trace" ) var ( // TraceProvider is the global trace provider for the onlyoffice service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = trace.NewNoopTracerProvider() ) func Configure(cfg *config.Config) error { diff --git a/proxy/pkg/proxy/proxy.go b/proxy/pkg/proxy/proxy.go index 5f4536e32..7aa16aa7f 100644 --- a/proxy/pkg/proxy/proxy.go +++ b/proxy/pkg/proxy/proxy.go @@ -222,10 +222,11 @@ func (p *MultiHostReverseProxy) ServeHTTP(w http.ResponseWriter, r *http.Request span trace.Span ) + tracer := proxytracing.TraceProvider.Tracer("proxy") + ctx, span = tracer.Start(ctx, fmt.Sprintf("%s %v", r.Method, r.URL.Path)) + defer span.End() + if p.config.Tracing.Enabled { - tracer := proxytracing.TraceProvider.Tracer("proxy") - ctx, span = tracer.Start(ctx, fmt.Sprintf("%s %v", r.Method, r.URL.Path)) - defer span.End() pkgtrace.Propagator.Inject(ctx, propagation.HeaderCarrier(r.Header)) } diff --git a/proxy/pkg/tracing/tracing.go b/proxy/pkg/tracing/tracing.go index ee9f3dfcf..ffe29a220 100644 --- a/proxy/pkg/tracing/tracing.go +++ b/proxy/pkg/tracing/tracing.go @@ -3,12 +3,12 @@ package tracing import ( pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/proxy/pkg/config" - sdktrace "go.opentelemetry.io/otel/sdk/trace" + "go.opentelemetry.io/otel/trace" ) var ( // TraceProvider is the global trace provider for the proxy service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = trace.NewNoopTracerProvider() ) func Configure(cfg *config.Config) error { diff --git a/settings/pkg/tracing/tracing.go b/settings/pkg/tracing/tracing.go index bc86e3af1..678ee7f55 100644 --- a/settings/pkg/tracing/tracing.go +++ b/settings/pkg/tracing/tracing.go @@ -3,12 +3,12 @@ package tracing import ( pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/settings/pkg/config" - sdktrace "go.opentelemetry.io/otel/sdk/trace" + "go.opentelemetry.io/otel/trace" ) var ( // TraceProvider is the global trace provider for the settings service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = trace.NewNoopTracerProvider() ) func Configure(cfg *config.Config) error { diff --git a/store/pkg/tracing/tracing.go b/store/pkg/tracing/tracing.go index 726566224..6f91bb967 100644 --- a/store/pkg/tracing/tracing.go +++ b/store/pkg/tracing/tracing.go @@ -3,12 +3,12 @@ package tracing import ( pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/store/pkg/config" - sdktrace "go.opentelemetry.io/otel/sdk/trace" + "go.opentelemetry.io/otel/trace" ) var ( // TraceProvider is the global trace provider for the store service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = trace.NewNoopTracerProvider() ) func Configure(cfg *config.Config) error { diff --git a/thumbnails/pkg/tracing/tracing.go b/thumbnails/pkg/tracing/tracing.go index c9c45e5ef..e5ca712bc 100644 --- a/thumbnails/pkg/tracing/tracing.go +++ b/thumbnails/pkg/tracing/tracing.go @@ -3,12 +3,12 @@ package tracing import ( pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/thumbnails/pkg/config" - sdktrace "go.opentelemetry.io/otel/sdk/trace" + "go.opentelemetry.io/otel/trace" ) var ( // TraceProvider is the global trace provider for the thumbnails service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = trace.NewNoopTracerProvider() ) func Configure(cfg *config.Config) error { diff --git a/web/pkg/tracing/tracing.go b/web/pkg/tracing/tracing.go index 1f788eca2..d3e2a9365 100644 --- a/web/pkg/tracing/tracing.go +++ b/web/pkg/tracing/tracing.go @@ -3,12 +3,12 @@ package tracing import ( pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/web/pkg/config" - sdktrace "go.opentelemetry.io/otel/sdk/trace" + "go.opentelemetry.io/otel/trace" ) var ( // TraceProvider is the global trace provider for the web service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = trace.NewNoopTracerProvider() ) func Configure(cfg *config.Config) error { diff --git a/webdav/pkg/tracing/tracing.go b/webdav/pkg/tracing/tracing.go index 6f1fbc9ac..ebc16f2f8 100644 --- a/webdav/pkg/tracing/tracing.go +++ b/webdav/pkg/tracing/tracing.go @@ -3,12 +3,12 @@ package tracing import ( pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/webdav/pkg/config" - sdktrace "go.opentelemetry.io/otel/sdk/trace" + "go.opentelemetry.io/otel/trace" ) var ( // TraceProvider is the global trace provider for the proxy service. - TraceProvider *sdktrace.TracerProvider + TraceProvider = trace.NewNoopTracerProvider() ) func Configure(cfg *config.Config) error { From 778ad717df09c309de90325e84913d30b0552e7c Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Thu, 12 Aug 2021 11:18:55 +0200 Subject: [PATCH 23/31] config: add reva required config --- go.mod | 14 ++++++----- go.sum | 32 ++++++++++++++++++++++++ ocis-pkg/config/utils.go | 8 ++++++ proxy/pkg/cs3/client.go | 15 +++++++++-- proxy/pkg/proxy/proxy.go | 10 +++----- storage/pkg/command/authbasic.go | 1 + storage/pkg/command/authbearer.go | 1 + storage/pkg/command/frontend.go | 1 + storage/pkg/command/gateway.go | 1 + storage/pkg/command/groups.go | 7 +++--- storage/pkg/command/sharing.go | 1 + storage/pkg/command/storagehome.go | 1 + storage/pkg/command/storagemetadata.go | 1 + storage/pkg/command/storagepubliclink.go | 1 + storage/pkg/command/storageusers.go | 1 + storage/pkg/command/users.go | 1 + 16 files changed, 77 insertions(+), 19 deletions(-) create mode 100644 ocis-pkg/config/utils.go diff --git a/go.mod b/go.mod index 93e617108..0dbaf9b55 100644 --- a/go.mod +++ b/go.mod @@ -3,9 +3,9 @@ module github.com/owncloud/ocis go 1.16 require ( - contrib.go.opencensus.io/exporter/jaeger v0.2.1 - contrib.go.opencensus.io/exporter/ocagent v0.7.0 - contrib.go.opencensus.io/exporter/zipkin v0.1.2 + contrib.go.opencensus.io/exporter/jaeger v0.2.1 // indirect + contrib.go.opencensus.io/exporter/ocagent v0.7.0 // indirect + contrib.go.opencensus.io/exporter/zipkin v0.1.2 // indirect github.com/CiscoM31/godata v0.0.0-20201003040028-eadcd34e7f06 github.com/GeertJohan/yubigo v0.0.0-20190917122436-175bc097e60e github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee @@ -50,8 +50,8 @@ require ( github.com/oklog/run v1.1.0 github.com/olekukonko/tablewriter v0.0.5 github.com/onsi/ginkgo v1.16.4 - github.com/onsi/gomega v1.14.0 - github.com/openzipkin/zipkin-go v0.2.5 + github.com/onsi/gomega v1.15.0 + github.com/openzipkin/zipkin-go v0.2.5 // indirect github.com/owncloud/open-graph-api-go v0.0.0-20210511151655-57894f7d46fb github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.10.0 @@ -66,6 +66,7 @@ require ( github.com/yaegashi/msgraph.go v0.1.4 go.etcd.io/etcd/pkg/v3 v3.5.0-pre // indirect go.opencensus.io v0.23.0 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.22.0 go.opentelemetry.io/otel v1.0.0-RC2 go.opentelemetry.io/otel/exporters/jaeger v1.0.0-RC2 go.opentelemetry.io/otel/sdk v1.0.0-RC2 @@ -77,7 +78,7 @@ require ( golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba // indirect golang.org/x/tools v0.1.2 // indirect google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1 - google.golang.org/grpc v1.39.0 + google.golang.org/grpc v1.39.1 google.golang.org/grpc/examples v0.0.0-20210802225658-edb9b3bc2266 // indirect google.golang.org/protobuf v1.27.1 gotest.tools v2.2.0+incompatible @@ -87,6 +88,7 @@ require ( replace ( github.com/crewjam/saml => github.com/crewjam/saml v0.4.5 + github.com/cs3org/reva => ../../refs/reva go.etcd.io/etcd/api/v3 => go.etcd.io/etcd/api/v3 v3.0.0-20210204162551-dae29bb719dd go.etcd.io/etcd/pkg/v3 => go.etcd.io/etcd/pkg/v3 v3.0.0-20210204162551-dae29bb719dd ) diff --git a/go.sum b/go.sum index 3a619422d..3179b54b0 100644 --- a/go.sum +++ b/go.sum @@ -73,6 +73,7 @@ github.com/Azure/go-autorest/tracing v0.1.0/go.mod h1:ROEEAFwXycQw7Sn3DXNtEedEvd github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c h1:/IBSNwUN8+eKzUzbJPqhK839ygXJ82sde8x3ogr6R28= github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/CiscoM31/godata v0.0.0-20201003040028-eadcd34e7f06 h1:FKxVU/j9Dd8Je0YkVkm8Fxpz9zIeN21SEkcbzA6NWgY= github.com/CiscoM31/godata v0.0.0-20201003040028-eadcd34e7f06/go.mod h1:tjaihnMBH6p5DVnGBksDQQHpErbrLvb9ek6cEWuyc7E= @@ -167,6 +168,8 @@ github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= github.com/aws/aws-sdk-go v1.40.0 h1:nTCSQAeahNt15SOYxuDwJ8XvMhOU3Uqe7eJUPv7+Vsk= github.com/aws/aws-sdk-go v1.40.0/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q= +github.com/aws/aws-sdk-go v1.40.17 h1:WcE72YOL7ChzAWlgpEv9YMOqAwJDM1yzkv4GxWyS5wk= +github.com/aws/aws-sdk-go v1.40.17/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/etree v1.1.0 h1:T0xke/WvNtMoCqgzPhkX2r4rjY3GDZFi+FjpRZY2Jbs= @@ -337,6 +340,7 @@ github.com/evanphx/json-patch/v5 v5.0.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2Vvl github.com/eventials/go-tus v0.0.0-20200718001131-45c7ec8f5d59/go.mod h1:XYuK1S5+kS6FGhlIUFuZFPvWiSrOIoLk6+ro33Xce3Y= github.com/exoscale/egoscale v0.18.1/go.mod h1:Z7OOdzzTOz1Q1PjQXumlz9Wn/CddH0zSYdCF3rnBKXE= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= @@ -581,10 +585,15 @@ github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyN github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v0.16.2 h1:K4ev2ib4LdQETX5cSZBG0DVLk1jwGqSPXBjdah3veNs= +github.com/hashicorp/go-hclog v0.16.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-plugin v1.4.2 h1:yFvG3ufXXpqiMiZx9HLcaK3XbIqQ1WJFR/F1a2CuVw0= +github.com/hashicorp/go-plugin v1.4.2/go.mod h1:5fGEH17QVwTTcR0zV7yhDPLLmFX9YSZ38b18Udy6vYQ= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= @@ -603,6 +612,8 @@ github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb h1:b5rjCoWHc7eqmAS4/qyk21ZsHyb6Mxv/jykxvNTkU4M= +github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.3.0 h1:gvV6jG9dTgFEncxo+AF7PH6MZXi/vZl25owA/8Dg8Wo= github.com/huandu/xstrings v1.3.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= @@ -624,6 +635,7 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i github.com/jedib0t/go-pretty v4.3.0+incompatible/go.mod h1:XemHduiw8R651AF9Pt4FwCTKeG3oo7hrHJAoznj9nag= github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jhump/protoreflect v1.6.0/go.mod h1:eaTn3RZAmMBcV0fifFvlm6VHNz3wSkYyXYWUh7ymB74= github.com/jinzhu/copier v0.0.0-20190924061706-b57f9002281a/go.mod h1:yL958EeXv8Ylng6IfnvG4oflryUi3vgA3xPs9hmII1s= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= @@ -713,6 +725,7 @@ github.com/mattermost/xml-roundtrip-validator v0.0.0-20201213122252-bcd7e1b9601e github.com/mattermost/xml-roundtrip-validator v0.0.0-20201213122252-bcd7e1b9601e/go.mod h1:qccnGMcpgwcNaBnxqpJpWWUiPNr5H3O8eDgGV9gT5To= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.7 h1:bQGKb3vps/j0E9GfJQ03JyhRuxsvdAanXlT9BTw3mdw= github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= @@ -720,6 +733,7 @@ github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= +github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= @@ -756,6 +770,8 @@ github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFW github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/go-testing-interface v1.0.0 h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-vnc v0.0.0-20150629162542-723ed9867aed/go.mod h1:3rdaFaCv4AyBgu5ALFM0+tSuHrBh6v692nyQe3ikrq0= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= @@ -837,6 +853,8 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.14.0 h1:ep6kpPVwmr/nTbklSx2nrLNSIO62DoYAhnPNIMhK8gI= github.com/onsi/gomega v1.14.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= +github.com/onsi/gomega v1.15.0 h1:WjP/FQ/sk43MRmnEcT+MlDw2TFvkrXlprrPST/IudjU= +github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= @@ -1165,12 +1183,21 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opentelemetry.io/contrib v0.22.0 h1:0F7gDEjgb1WGn4ODIjaCAg75hmqF+UN0LiVgwxsCodc= +go.opentelemetry.io/contrib v0.22.0/go.mod h1:EH4yDYeNoaTqn/8yCWQmfNB78VHfGX2Jt2bvnvzBlGM= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.22.0 h1:TjqELdtCtlOJQrTnXd2y+RP6wXKZUnnJer0HR0CSo18= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.22.0/go.mod h1:KjqwX4uJNaj479ZjFpADOMJKOM4rBXq4kN7nbeuGKrY= +go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= go.opentelemetry.io/otel v1.0.0-RC2 h1:SHhxSjB+omnGZPgGlKe+QMp3MyazcOHdQ8qwo89oKbg= go.opentelemetry.io/otel v1.0.0-RC2/go.mod h1:w1thVQ7qbAy8MHb0IFj8a5Q2QU0l2ksf8u/CN8m3NOM= go.opentelemetry.io/otel/exporters/jaeger v1.0.0-RC2 h1:RF0nWsIDpDBe+s06lkLxUw9CWQUAhO6hBSxxB7dz45s= go.opentelemetry.io/otel/exporters/jaeger v1.0.0-RC2/go.mod h1:sZZqN3Vb0iT+NE6mZ1S7sNyH3t4PFk6ElK5TLGFBZ7E= +go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= +go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= +go.opentelemetry.io/otel/oteltest v1.0.0-RC2/go.mod h1:kiQ4tw5tAL4JLTbcOYwK1CWI1HkT5aiLzHovgOVnz/A= go.opentelemetry.io/otel/sdk v1.0.0-RC2 h1:ROuteeSCBaZNjiT9JcFzZepmInDvLktR28Y6qKo8bCs= go.opentelemetry.io/otel/sdk v1.0.0-RC2/go.mod h1:fgwHyiDn4e5k40TD9VX243rOxXR+jzsWBZYA2P5jpEw= +go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/otel/trace v1.0.0-RC2 h1:dunAP0qDULMIT82atj34m5RgvsIK6LcsXf1c/MsYg1w= go.opentelemetry.io/otel/trace v1.0.0-RC2/go.mod h1:JPQ+z6nNw9mqEGT8o3eoPTdnNI+Aj5JcxEsVGREIAy4= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= @@ -1262,6 +1289,7 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180611182652-db08ff08e862/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1570,6 +1598,7 @@ google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCID google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20170818010345-ee236bd376b0/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -1621,6 +1650,7 @@ google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1 h1:E7wSQBXkH3T3diucK+9Z1kjn4+/9tNG7lZLr75oOhh8= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= @@ -1653,6 +1683,8 @@ google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.39.0 h1:Klz8I9kdtkIN6EpHHUOMLCYhTn/2WAe5a0s1hcBkdTI= google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.39.1 h1:f37vZbBVTiJ6jKG5mWz8ySOBxNqy6ViPgyhSdVnxF3E= +google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/grpc/examples v0.0.0-20210802225658-edb9b3bc2266 h1:b/FwCzmdYrUG3vM0A1hqRcvWh7ZTXaGPr485CpByznI= google.golang.org/grpc/examples v0.0.0-20210802225658-edb9b3bc2266/go.mod h1:bF8wuZSAZTcbF7ZPKrDI/qY52toTP/yxLpRRY4Eu9Js= diff --git a/ocis-pkg/config/utils.go b/ocis-pkg/config/utils.go new file mode 100644 index 000000000..9f3c32c9e --- /dev/null +++ b/ocis-pkg/config/utils.go @@ -0,0 +1,8 @@ +package config + +func TracingService(enabled bool) string { + if enabled { + return "opentelemetry" + } + return "" +} diff --git a/proxy/pkg/cs3/client.go b/proxy/pkg/cs3/client.go index 9eed1a361..68f52d2d7 100644 --- a/proxy/pkg/cs3/client.go +++ b/proxy/pkg/cs3/client.go @@ -2,12 +2,23 @@ package cs3 import ( gateway "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1" - + proxytracing "github.com/owncloud/ocis/proxy/pkg/tracing" + "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc" "google.golang.org/grpc" ) func newConn(endpoint string) (*grpc.ClientConn, error) { - conn, err := grpc.Dial(endpoint, grpc.WithInsecure()) + conn, err := grpc.Dial( + endpoint, + grpc.WithInsecure(), + grpc.WithUnaryInterceptor( + otelgrpc.UnaryClientInterceptor( + otelgrpc.WithTracerProvider( + proxytracing.TraceProvider, + ), + ), + ), + ) if err != nil { return nil, err } diff --git a/proxy/pkg/proxy/proxy.go b/proxy/pkg/proxy/proxy.go index 7aa16aa7f..b047ec53c 100644 --- a/proxy/pkg/proxy/proxy.go +++ b/proxy/pkg/proxy/proxy.go @@ -11,14 +11,12 @@ import ( "strings" "time" - pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" - - "go.opentelemetry.io/otel/propagation" - "github.com/owncloud/ocis/ocis-pkg/log" + pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/proxy/pkg/config" "github.com/owncloud/ocis/proxy/pkg/proxy/policy" proxytracing "github.com/owncloud/ocis/proxy/pkg/tracing" + "go.opentelemetry.io/otel/propagation" "go.opentelemetry.io/otel/trace" ) @@ -226,9 +224,7 @@ func (p *MultiHostReverseProxy) ServeHTTP(w http.ResponseWriter, r *http.Request ctx, span = tracer.Start(ctx, fmt.Sprintf("%s %v", r.Method, r.URL.Path)) defer span.End() - if p.config.Tracing.Enabled { - pkgtrace.Propagator.Inject(ctx, propagation.HeaderCarrier(r.Header)) - } + pkgtrace.Propagator.Inject(ctx, propagation.HeaderCarrier(r.Header)) p.ReverseProxy.ServeHTTP(w, r.WithContext(ctx)) } diff --git a/storage/pkg/command/authbasic.go b/storage/pkg/command/authbasic.go index 3e0d11db4..aade35027 100644 --- a/storage/pkg/command/authbasic.go +++ b/storage/pkg/command/authbasic.go @@ -95,6 +95,7 @@ func authBasicConfigFromStruct(c *cli.Context, cfg *config.Config) map[string]in "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, + "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/authbearer.go b/storage/pkg/command/authbearer.go index d15b726fc..f70e14333 100644 --- a/storage/pkg/command/authbearer.go +++ b/storage/pkg/command/authbearer.go @@ -90,6 +90,7 @@ func authBearerConfigFromStruct(c *cli.Context, cfg *config.Config) map[string]i "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, + "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/frontend.go b/storage/pkg/command/frontend.go index 32a2904d2..35ee3a4d4 100644 --- a/storage/pkg/command/frontend.go +++ b/storage/pkg/command/frontend.go @@ -122,6 +122,7 @@ func frontendConfigFromStruct(c *cli.Context, cfg *config.Config, filesCfg map[s "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, + "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/gateway.go b/storage/pkg/command/gateway.go index 50032f2e7..4c300a6c3 100644 --- a/storage/pkg/command/gateway.go +++ b/storage/pkg/command/gateway.go @@ -113,6 +113,7 @@ func gatewayConfigFromStruct(c *cli.Context, cfg *config.Config, logger log.Logg "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, + "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/groups.go b/storage/pkg/command/groups.go index 8113aef61..75fe051e6 100644 --- a/storage/pkg/command/groups.go +++ b/storage/pkg/command/groups.go @@ -7,18 +7,16 @@ import ( "path" "path/filepath" - "github.com/owncloud/ocis/storage/pkg/tracing" - - "github.com/owncloud/ocis/ocis-pkg/sync" - "github.com/cs3org/reva/cmd/revad/runtime" "github.com/gofrs/uuid" "github.com/micro/cli/v2" "github.com/oklog/run" ociscfg "github.com/owncloud/ocis/ocis-pkg/config" + "github.com/owncloud/ocis/ocis-pkg/sync" "github.com/owncloud/ocis/storage/pkg/config" "github.com/owncloud/ocis/storage/pkg/flagset" "github.com/owncloud/ocis/storage/pkg/server/debug" + "github.com/owncloud/ocis/storage/pkg/tracing" "github.com/thejerf/suture/v4" ) @@ -101,6 +99,7 @@ func groupsConfigFromStruct(c *cli.Context, cfg *config.Config) map[string]inter "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, + "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/sharing.go b/storage/pkg/command/sharing.go index 08958b058..17eda4899 100644 --- a/storage/pkg/command/sharing.go +++ b/storage/pkg/command/sharing.go @@ -109,6 +109,7 @@ func sharingConfigFromStruct(c *cli.Context, cfg *config.Config) map[string]inte "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, + "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/storagehome.go b/storage/pkg/command/storagehome.go index ccc80bd32..c75f15c9a 100644 --- a/storage/pkg/command/storagehome.go +++ b/storage/pkg/command/storagehome.go @@ -104,6 +104,7 @@ func storageHomeConfigFromStruct(c *cli.Context, cfg *config.Config) map[string] "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, + "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/storagemetadata.go b/storage/pkg/command/storagemetadata.go index e6d0e331b..d26003052 100644 --- a/storage/pkg/command/storagemetadata.go +++ b/storage/pkg/command/storagemetadata.go @@ -142,6 +142,7 @@ func storageMetadataFromStruct(c *cli.Context, cfg *config.Config) map[string]in "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, + "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/storagepubliclink.go b/storage/pkg/command/storagepubliclink.go index 87ca7e3ff..8180dbf36 100644 --- a/storage/pkg/command/storagepubliclink.go +++ b/storage/pkg/command/storagepubliclink.go @@ -85,6 +85,7 @@ func storagePublicLinkConfigFromStruct(c *cli.Context, cfg *config.Config) map[s "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, + "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/storageusers.go b/storage/pkg/command/storageusers.go index 168bc0c7f..88cc121fa 100644 --- a/storage/pkg/command/storageusers.go +++ b/storage/pkg/command/storageusers.go @@ -104,6 +104,7 @@ func storageUsersConfigFromStruct(c *cli.Context, cfg *config.Config) map[string "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, + "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/users.go b/storage/pkg/command/users.go index f087c9a56..8fd98475b 100644 --- a/storage/pkg/command/users.go +++ b/storage/pkg/command/users.go @@ -102,6 +102,7 @@ func usersConfigFromStruct(c *cli.Context, cfg *config.Config) map[string]interf "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, + "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ From 8499187315cbd91cd97db3613829ddf1ada24451 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Thu, 12 Aug 2021 12:13:52 +0200 Subject: [PATCH 24/31] add x-request-id to proxy root span --- proxy/pkg/proxy/proxy.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/proxy/pkg/proxy/proxy.go b/proxy/pkg/proxy/proxy.go index b047ec53c..cd7767821 100644 --- a/proxy/pkg/proxy/proxy.go +++ b/proxy/pkg/proxy/proxy.go @@ -11,6 +11,8 @@ import ( "strings" "time" + "go.opentelemetry.io/otel/attribute" + "github.com/owncloud/ocis/ocis-pkg/log" pkgtrace "github.com/owncloud/ocis/ocis-pkg/tracing" "github.com/owncloud/ocis/proxy/pkg/config" @@ -224,6 +226,12 @@ func (p *MultiHostReverseProxy) ServeHTTP(w http.ResponseWriter, r *http.Request ctx, span = tracer.Start(ctx, fmt.Sprintf("%s %v", r.Method, r.URL.Path)) defer span.End() + span.SetAttributes( + attribute.KeyValue{ + Key: "x-request-id", + Value: attribute.StringValue(r.Header.Get("X-Request-ID")), + }) + pkgtrace.Propagator.Inject(ctx, propagation.HeaderCarrier(r.Header)) p.ReverseProxy.ServeHTTP(w, r.WithContext(ctx)) From 6403e5c7e5382f0d00ee8a1e770845f352929ee5 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Thu, 12 Aug 2021 12:19:56 +0200 Subject: [PATCH 25/31] go mod: tidy --- go.mod | 6 +----- go.sum | 35 +++++++++++++++++++++-------------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/go.mod b/go.mod index 9f58f3227..ba37b9036 100644 --- a/go.mod +++ b/go.mod @@ -3,9 +3,6 @@ module github.com/owncloud/ocis go 1.16 require ( - contrib.go.opencensus.io/exporter/jaeger v0.2.1 // indirect - contrib.go.opencensus.io/exporter/ocagent v0.7.0 // indirect - contrib.go.opencensus.io/exporter/zipkin v0.1.2 // indirect github.com/CiscoM31/godata v0.0.0-20201003040028-eadcd34e7f06 github.com/GeertJohan/yubigo v0.0.0-20190917122436-175bc097e60e github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee @@ -42,7 +39,7 @@ require ( github.com/iancoleman/strcase v0.1.3 github.com/jmhodges/levigo v1.0.0 // indirect github.com/justinas/alice v1.2.0 - github.com/libregraph/lico v0.34.1-0.20210803054646-b584e0372224 // indirect + github.com/libregraph/lico v0.34.1-0.20210803054646-b584e0372224 github.com/mennanov/fieldmask-utils v0.3.3 github.com/micro/cli/v2 v2.1.2 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 @@ -52,7 +49,6 @@ require ( github.com/olekukonko/tablewriter v0.0.5 github.com/onsi/ginkgo v1.16.4 github.com/onsi/gomega v1.15.0 - github.com/openzipkin/zipkin-go v0.2.5 // indirect github.com/owncloud/open-graph-api-go v0.0.0-20210511151655-57894f7d46fb github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.10.0 diff --git a/go.sum b/go.sum index b15eaead3..8d938c2ad 100644 --- a/go.sum +++ b/go.sum @@ -22,6 +22,7 @@ cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKP cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0 h1:at8Tk2zUz63cLPR0JPWm5vp77pEZmzxEQBEfRKn1VV8= cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= @@ -44,12 +45,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 contrib.go.opencensus.io/exporter/jaeger v0.2.1 h1:yGBYzYMewVL0yO9qqJv3Z5+IRhPdU7e9o/2oKpX4YvI= contrib.go.opencensus.io/exporter/jaeger v0.2.1/go.mod h1:Y8IsLgdxqh1QxYxPC5IgXVmBaeLUeQFfBeBi9PbeZd0= contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= -contrib.go.opencensus.io/exporter/ocagent v0.7.0 h1:BEfdCTXfMV30tLZD8c9n64V/tIZX5+9sXiuFLnrr1k8= -contrib.go.opencensus.io/exporter/ocagent v0.7.0/go.mod h1:IshRmMJBhDfFj5Y67nVhMYTTIze91RUeT73ipWKs/GY= contrib.go.opencensus.io/exporter/prometheus v0.3.0 h1:08FMdJYpItzsknogU6PiiNo7XQZg/25GjH236+YCwD0= contrib.go.opencensus.io/exporter/prometheus v0.3.0/go.mod h1:rpCPVQKhiyH8oomWgm34ZmgIdZa8OVYO5WAIygPbBBE= -contrib.go.opencensus.io/exporter/zipkin v0.1.2 h1:YqE293IZrKtqPnpwDPH/lOqTWD/s3Iwabycam74JV3g= -contrib.go.opencensus.io/exporter/zipkin v0.1.2/go.mod h1:mP5xM3rrgOjpn79MM8fZbj3gsxcuytSqtH0dxSWW1RE= dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU= @@ -219,7 +216,6 @@ github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff/v4 v4.0.0/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg= github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= @@ -288,8 +284,6 @@ github.com/crewjam/saml v0.4.5/go.mod h1:qCJQpUtZte9R1ZjUBcW8qtCNlinbO363ooNl02S github.com/cs3org/cato v0.0.0-20200828125504-e418fc54dd5e/go.mod h1:XJEZ3/EQuI3BXTp/6DUzFr850vlxq11I6satRtz0YQ4= github.com/cs3org/go-cs3apis v0.0.0-20210802070913-970eec344e59 h1:cj9HxIbmbGn+HPpFP8nZ8oaNUsoFa0+cheCO8FUNoMc= github.com/cs3org/go-cs3apis v0.0.0-20210802070913-970eec344e59/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v1.11.1-0.20210809134415-3fe79c870fb5 h1:JFBmuZwnsShEuAA3U6BL+AY8mwKc5NnKUB7WkCeD5+8= -github.com/cs3org/reva v1.11.1-0.20210809134415-3fe79c870fb5/go.mod h1:9DgwsoB4cqlPaEC3hT7/NCdgJO7T1bY3kpxvWXc1DkA= github.com/cznic/b v0.0.0-20181122101859-a26611c4d92d h1:SwD98825d6bdB+pEuTxWOXiSjBrHdOl/UVp75eI7JT8= github.com/cznic/b v0.0.0-20181122101859-a26611c4d92d/go.mod h1:URriBxXwVq5ijiJ12C7iIZqlA69nTlI+LgI6/pwftG8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -365,7 +359,6 @@ github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31 h1:gclg6gY70GLy github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= github.com/go-acme/lego/v3 v3.4.0/go.mod h1:xYbLDuxq3Hy4bMUT1t9JIuz6GWIWb3m5X+TeTHYaT7M= github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= -github.com/go-asn1-ber/asn1-ber v1.4.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-asn1-ber/asn1-ber v1.5.1 h1:pDbRAunXzIUXfx4CB2QJFv5IuPiuoW+sWvr/Us009o8= github.com/go-asn1-ber/asn1-ber v1.5.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-chi/chi v4.1.2+incompatible h1:fGFk2Gmi/YKXk0OmGfBh0WgmN3XB8lVnEyNz34tQRec= @@ -871,8 +864,6 @@ github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTm github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/openzipkin/zipkin-go v0.2.5 h1:UwtQQx2pyPIgWYHRg+epgdx1/HnBQTgN3/oIYEJTQzU= -github.com/openzipkin/zipkin-go v0.2.5/go.mod h1:KpXfKdgRDnnhsxw4pNIH9Md5lyFqKUa4YDFlwRYAMyE= github.com/oracle/oci-go-sdk v7.0.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= github.com/orcaman/concurrent-map v0.0.0-20190826125027-8c72a8bb44f6 h1:lNCW6THrCKBiJBpz8kbVGjC7MgdCGKwuvBgc7LoD6sw= github.com/orcaman/concurrent-map v0.0.0-20190826125027-8c72a8bb44f6/go.mod h1:Lu3tH6HLW3feq74c2GC+jIMS/K2CFcDWnWD9XkenwhI= @@ -955,7 +946,6 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.0.10/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= @@ -1182,6 +1172,24 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opentelemetry.io/contrib v0.22.0 h1:0F7gDEjgb1WGn4ODIjaCAg75hmqF+UN0LiVgwxsCodc= +go.opentelemetry.io/contrib v0.22.0/go.mod h1:EH4yDYeNoaTqn/8yCWQmfNB78VHfGX2Jt2bvnvzBlGM= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.22.0 h1:TjqELdtCtlOJQrTnXd2y+RP6wXKZUnnJer0HR0CSo18= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.22.0/go.mod h1:KjqwX4uJNaj479ZjFpADOMJKOM4rBXq4kN7nbeuGKrY= +go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= +go.opentelemetry.io/otel v1.0.0-RC2 h1:SHhxSjB+omnGZPgGlKe+QMp3MyazcOHdQ8qwo89oKbg= +go.opentelemetry.io/otel v1.0.0-RC2/go.mod h1:w1thVQ7qbAy8MHb0IFj8a5Q2QU0l2ksf8u/CN8m3NOM= +go.opentelemetry.io/otel/exporters/jaeger v1.0.0-RC2 h1:RF0nWsIDpDBe+s06lkLxUw9CWQUAhO6hBSxxB7dz45s= +go.opentelemetry.io/otel/exporters/jaeger v1.0.0-RC2/go.mod h1:sZZqN3Vb0iT+NE6mZ1S7sNyH3t4PFk6ElK5TLGFBZ7E= +go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= +go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= +go.opentelemetry.io/otel/oteltest v1.0.0-RC2 h1:xNKqMhlZYkASSyvF4JwObZFMq0jhFN3c3SP+2rCzVPk= +go.opentelemetry.io/otel/oteltest v1.0.0-RC2/go.mod h1:kiQ4tw5tAL4JLTbcOYwK1CWI1HkT5aiLzHovgOVnz/A= +go.opentelemetry.io/otel/sdk v1.0.0-RC2 h1:ROuteeSCBaZNjiT9JcFzZepmInDvLktR28Y6qKo8bCs= +go.opentelemetry.io/otel/sdk v1.0.0-RC2/go.mod h1:fgwHyiDn4e5k40TD9VX243rOxXR+jzsWBZYA2P5jpEw= +go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= +go.opentelemetry.io/otel/trace v1.0.0-RC2 h1:dunAP0qDULMIT82atj34m5RgvsIK6LcsXf1c/MsYg1w= +go.opentelemetry.io/otel/trace v1.0.0-RC2/go.mod h1:JPQ+z6nNw9mqEGT8o3eoPTdnNI+Aj5JcxEsVGREIAy4= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= 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= @@ -1443,6 +1451,7 @@ golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1558,7 +1567,6 @@ google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/ google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.25.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= @@ -1662,6 +1670,7 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= google.golang.org/grpc v1.39.1 h1:f37vZbBVTiJ6jKG5mWz8ySOBxNqy6ViPgyhSdVnxF3E= google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= @@ -1755,8 +1764,6 @@ sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= -stash.kopano.io/kc/konnect v0.34.0 h1:aKjZpLu8fvrrqVvNU9b2vKZOn8lUusXLoycLWgMi3o0= -stash.kopano.io/kc/konnect v0.34.0/go.mod h1:GV6AxroXyHte83EsiJXA5ZygzofQ48zXCJ3qX9bK1JY= stash.kopano.io/kgol/kcc-go/v5 v5.0.1 h1:urR9hOR6TnTKjGkzZKac/a9cA8ws1WecWLTgiYubLQw= stash.kopano.io/kgol/kcc-go/v5 v5.0.1/go.mod h1:0ZmjWapy3zp+TAjZI6iCrcfh+BthZbB2WM1VfhDgNB4= stash.kopano.io/kgol/ksurveyclient-go v0.6.0/go.mod h1:LJMDQBROS2oXxBN04eSI6j1KhgWlqMFd8xKjXV4Irtw= From 50381b2225241aa35fa082ce321e27c166797cc3 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Tue, 17 Aug 2021 13:31:15 +0200 Subject: [PATCH 26/31] remove deprecated config option --- ocis-pkg/config/utils.go | 8 -------- storage/pkg/command/authbasic.go | 1 - storage/pkg/command/authbearer.go | 1 - storage/pkg/command/frontend.go | 1 - storage/pkg/command/gateway.go | 1 - storage/pkg/command/groups.go | 1 - storage/pkg/command/sharing.go | 1 - storage/pkg/command/storagehome.go | 1 - storage/pkg/command/storagemetadata.go | 1 - storage/pkg/command/storagepubliclink.go | 1 - storage/pkg/command/storageusers.go | 1 - storage/pkg/command/users.go | 1 - 12 files changed, 19 deletions(-) delete mode 100644 ocis-pkg/config/utils.go diff --git a/ocis-pkg/config/utils.go b/ocis-pkg/config/utils.go deleted file mode 100644 index 9f3c32c9e..000000000 --- a/ocis-pkg/config/utils.go +++ /dev/null @@ -1,8 +0,0 @@ -package config - -func TracingService(enabled bool) string { - if enabled { - return "opentelemetry" - } - return "" -} diff --git a/storage/pkg/command/authbasic.go b/storage/pkg/command/authbasic.go index aade35027..3e0d11db4 100644 --- a/storage/pkg/command/authbasic.go +++ b/storage/pkg/command/authbasic.go @@ -95,7 +95,6 @@ func authBasicConfigFromStruct(c *cli.Context, cfg *config.Config) map[string]in "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, - "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/authbearer.go b/storage/pkg/command/authbearer.go index f70e14333..d15b726fc 100644 --- a/storage/pkg/command/authbearer.go +++ b/storage/pkg/command/authbearer.go @@ -90,7 +90,6 @@ func authBearerConfigFromStruct(c *cli.Context, cfg *config.Config) map[string]i "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, - "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/frontend.go b/storage/pkg/command/frontend.go index 35ee3a4d4..32a2904d2 100644 --- a/storage/pkg/command/frontend.go +++ b/storage/pkg/command/frontend.go @@ -122,7 +122,6 @@ func frontendConfigFromStruct(c *cli.Context, cfg *config.Config, filesCfg map[s "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, - "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/gateway.go b/storage/pkg/command/gateway.go index 4c300a6c3..50032f2e7 100644 --- a/storage/pkg/command/gateway.go +++ b/storage/pkg/command/gateway.go @@ -113,7 +113,6 @@ func gatewayConfigFromStruct(c *cli.Context, cfg *config.Config, logger log.Logg "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, - "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/groups.go b/storage/pkg/command/groups.go index 3f0dfa0ca..47f0bbb4e 100644 --- a/storage/pkg/command/groups.go +++ b/storage/pkg/command/groups.go @@ -99,7 +99,6 @@ func groupsConfigFromStruct(c *cli.Context, cfg *config.Config) map[string]inter "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, - "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/sharing.go b/storage/pkg/command/sharing.go index 17eda4899..08958b058 100644 --- a/storage/pkg/command/sharing.go +++ b/storage/pkg/command/sharing.go @@ -109,7 +109,6 @@ func sharingConfigFromStruct(c *cli.Context, cfg *config.Config) map[string]inte "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, - "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/storagehome.go b/storage/pkg/command/storagehome.go index c75f15c9a..ccc80bd32 100644 --- a/storage/pkg/command/storagehome.go +++ b/storage/pkg/command/storagehome.go @@ -104,7 +104,6 @@ func storageHomeConfigFromStruct(c *cli.Context, cfg *config.Config) map[string] "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, - "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/storagemetadata.go b/storage/pkg/command/storagemetadata.go index d26003052..e6d0e331b 100644 --- a/storage/pkg/command/storagemetadata.go +++ b/storage/pkg/command/storagemetadata.go @@ -142,7 +142,6 @@ func storageMetadataFromStruct(c *cli.Context, cfg *config.Config) map[string]in "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, - "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/storagepubliclink.go b/storage/pkg/command/storagepubliclink.go index 8180dbf36..87ca7e3ff 100644 --- a/storage/pkg/command/storagepubliclink.go +++ b/storage/pkg/command/storagepubliclink.go @@ -85,7 +85,6 @@ func storagePublicLinkConfigFromStruct(c *cli.Context, cfg *config.Config) map[s "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, - "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/storageusers.go b/storage/pkg/command/storageusers.go index 88cc121fa..168bc0c7f 100644 --- a/storage/pkg/command/storageusers.go +++ b/storage/pkg/command/storageusers.go @@ -104,7 +104,6 @@ func storageUsersConfigFromStruct(c *cli.Context, cfg *config.Config) map[string "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, - "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ diff --git a/storage/pkg/command/users.go b/storage/pkg/command/users.go index 49e18dc98..f93171e1e 100644 --- a/storage/pkg/command/users.go +++ b/storage/pkg/command/users.go @@ -102,7 +102,6 @@ func usersConfigFromStruct(c *cli.Context, cfg *config.Config) map[string]interf "tracing_enabled": cfg.Tracing.Enabled, "tracing_endpoint": cfg.Tracing.Endpoint, "tracing_collector": cfg.Tracing.Collector, - "tracing_service": ociscfg.TracingService(cfg.Tracing.Enabled), "tracing_service_name": c.Command.Name, }, "shared": map[string]interface{}{ From 21e6aab85ee0535857efba0be3924939de5add50 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Tue, 17 Aug 2021 13:52:34 +0200 Subject: [PATCH 27/31] deps: update reva --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 5c4b88633..22f72b757 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/blevesearch/bleve/v2 v2.1.0 github.com/coreos/go-oidc/v3 v3.0.0 github.com/cs3org/go-cs3apis v0.0.0-20210802070913-970eec344e59 - github.com/cs3org/reva v1.11.1-0.20210813120759-674976af2f6b + github.com/cs3org/reva v1.11.1-0.20210817090727-aaf1fb8b8ead github.com/disintegration/imaging v1.6.2 github.com/glauth/glauth v1.1.3-0.20210729125545-b9aecdfcac31 github.com/go-chi/chi v4.1.2+incompatible diff --git a/go.sum b/go.sum index e3117b8bf..51e0ba224 100644 --- a/go.sum +++ b/go.sum @@ -297,6 +297,8 @@ github.com/cs3org/reva v1.11.1-0.20210812105259-756bdced1d22 h1:RZxu/fWJiTmu8fT6 github.com/cs3org/reva v1.11.1-0.20210812105259-756bdced1d22/go.mod h1:9DgwsoB4cqlPaEC3hT7/NCdgJO7T1bY3kpxvWXc1DkA= github.com/cs3org/reva v1.11.1-0.20210813120759-674976af2f6b h1:rujwiFtJopNtVAnko/QxpcEr0635owT954CxeWrfW5M= github.com/cs3org/reva v1.11.1-0.20210813120759-674976af2f6b/go.mod h1:9DgwsoB4cqlPaEC3hT7/NCdgJO7T1bY3kpxvWXc1DkA= +github.com/cs3org/reva v1.11.1-0.20210817090727-aaf1fb8b8ead h1:PxM0x/X/0roxieoKoKIYAfF1uNeX2vHiOJXCv18/lgc= +github.com/cs3org/reva v1.11.1-0.20210817090727-aaf1fb8b8ead/go.mod h1:Fx2PHTX2Y3s/aNG/APpCbmttg5STWnxjD4DpnqdwjQc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= From 1dd4644370dbb874423797b40cbaebaa8fc79b3e Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Wed, 18 Aug 2021 11:10:50 +0200 Subject: [PATCH 28/31] fix requestid --- go.sum | 8 -------- proxy/pkg/middleware/accesslog.go | 15 ++++++++++++++- proxy/pkg/proxy/proxy.go | 4 +++- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/go.sum b/go.sum index 51e0ba224..3c9881259 100644 --- a/go.sum +++ b/go.sum @@ -42,7 +42,6 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -contrib.go.opencensus.io/exporter/jaeger v0.2.1 h1:yGBYzYMewVL0yO9qqJv3Z5+IRhPdU7e9o/2oKpX4YvI= contrib.go.opencensus.io/exporter/jaeger v0.2.1/go.mod h1:Y8IsLgdxqh1QxYxPC5IgXVmBaeLUeQFfBeBi9PbeZd0= contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= contrib.go.opencensus.io/exporter/prometheus v0.3.0 h1:08FMdJYpItzsknogU6PiiNo7XQZg/25GjH236+YCwD0= @@ -293,10 +292,6 @@ github.com/crewjam/saml v0.4.5/go.mod h1:qCJQpUtZte9R1ZjUBcW8qtCNlinbO363ooNl02S github.com/cs3org/cato v0.0.0-20200828125504-e418fc54dd5e/go.mod h1:XJEZ3/EQuI3BXTp/6DUzFr850vlxq11I6satRtz0YQ4= github.com/cs3org/go-cs3apis v0.0.0-20210802070913-970eec344e59 h1:cj9HxIbmbGn+HPpFP8nZ8oaNUsoFa0+cheCO8FUNoMc= github.com/cs3org/go-cs3apis v0.0.0-20210802070913-970eec344e59/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v1.11.1-0.20210812105259-756bdced1d22 h1:RZxu/fWJiTmu8fT6pWfu0fdKq7ZUXAZI4TndUfiUIYI= -github.com/cs3org/reva v1.11.1-0.20210812105259-756bdced1d22/go.mod h1:9DgwsoB4cqlPaEC3hT7/NCdgJO7T1bY3kpxvWXc1DkA= -github.com/cs3org/reva v1.11.1-0.20210813120759-674976af2f6b h1:rujwiFtJopNtVAnko/QxpcEr0635owT954CxeWrfW5M= -github.com/cs3org/reva v1.11.1-0.20210813120759-674976af2f6b/go.mod h1:9DgwsoB4cqlPaEC3hT7/NCdgJO7T1bY3kpxvWXc1DkA= github.com/cs3org/reva v1.11.1-0.20210817090727-aaf1fb8b8ead h1:PxM0x/X/0roxieoKoKIYAfF1uNeX2vHiOJXCv18/lgc= github.com/cs3org/reva v1.11.1-0.20210817090727-aaf1fb8b8ead/go.mod h1:Fx2PHTX2Y3s/aNG/APpCbmttg5STWnxjD4DpnqdwjQc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -1114,7 +1109,6 @@ github.com/tus/tusd v1.1.0/go.mod h1:3DWPOdeCnjBwKtv98y5dSws3itPqfce5TVa0s59LRiA github.com/tus/tusd v1.1.1-0.20200416115059-9deabf9d80c2 h1:rcji4q9wMuSrz0tZt3kgIr/3WsB5kUqFja6RrgeCGEo= github.com/tus/tusd v1.1.1-0.20200416115059-9deabf9d80c2/go.mod h1:ygrT4B9ZSb27dx3uTnobX5nOFDnutBL6iWKLH4+KpA0= github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= -github.com/uber/jaeger-client-go v2.25.0+incompatible h1:IxcNZ7WRY1Y3G4poYlx24szfsn/3LvK9QHCq9oQw8+U= github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= @@ -1585,7 +1579,6 @@ google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34q google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.44.0 h1:URs6qR1lAxDsqWITsQXI4ZkGiYJ5dHtRNiCpfs2OeKA= google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1631,7 +1624,6 @@ google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200527145253-8367513e4ece/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= diff --git a/proxy/pkg/middleware/accesslog.go b/proxy/pkg/middleware/accesslog.go index 21c88ee1d..a45149c62 100644 --- a/proxy/pkg/middleware/accesslog.go +++ b/proxy/pkg/middleware/accesslog.go @@ -1,10 +1,12 @@ package middleware import ( + "context" "net/http" "time" "github.com/go-chi/chi/middleware" + chimiddleware "github.com/go-chi/chi/middleware" "github.com/owncloud/ocis/ocis-pkg/log" ) @@ -18,7 +20,7 @@ func AccessLog(logger log.Logger) func(http.Handler) http.Handler { logger.Info(). Str("proto", r.Proto). - Str("request", r.Header.Get("X-Request-ID")). + Str("request", ExtractRequestID(r.Context())). Str("remote-addr", r.RemoteAddr). Str("method", r.Method). Int("status", wrap.Status()). @@ -29,3 +31,14 @@ func AccessLog(logger log.Logger) func(http.Handler) http.Handler { }) } } + +// ExtractRequestID extracts the request ID from the context. Since we now use the go-chi middleware to write the request +// id, this is propagated using the context, therefore read it from there. +func ExtractRequestID(ctx context.Context) string { + var requestId string + if v, ok := ctx.Value(chimiddleware.RequestIDKey).(string); ok { + requestId = v + } + + return requestId +} diff --git a/proxy/pkg/proxy/proxy.go b/proxy/pkg/proxy/proxy.go index 563999d99..315803d4f 100644 --- a/proxy/pkg/proxy/proxy.go +++ b/proxy/pkg/proxy/proxy.go @@ -11,6 +11,8 @@ import ( "strings" "time" + "github.com/owncloud/ocis/proxy/pkg/middleware" + "go.opentelemetry.io/otel/attribute" "github.com/owncloud/ocis/ocis-pkg/log" @@ -229,7 +231,7 @@ func (p *MultiHostReverseProxy) ServeHTTP(w http.ResponseWriter, r *http.Request span.SetAttributes( attribute.KeyValue{ Key: "x-request-id", - Value: attribute.StringValue(r.Header.Get("X-Request-ID")), + Value: attribute.StringValue(middleware.ExtractRequestID(r.Context())), }) pkgtrace.Propagator.Inject(ctx, propagation.HeaderCarrier(r.Header)) From 0f0d305f6d2a6aadaf2f280f28e3af57302e0f11 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Wed, 18 Aug 2021 11:25:44 +0200 Subject: [PATCH 29/31] linter: fix var name --- proxy/pkg/middleware/accesslog.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/proxy/pkg/middleware/accesslog.go b/proxy/pkg/middleware/accesslog.go index a45149c62..96adabd63 100644 --- a/proxy/pkg/middleware/accesslog.go +++ b/proxy/pkg/middleware/accesslog.go @@ -35,10 +35,10 @@ func AccessLog(logger log.Logger) func(http.Handler) http.Handler { // ExtractRequestID extracts the request ID from the context. Since we now use the go-chi middleware to write the request // id, this is propagated using the context, therefore read it from there. func ExtractRequestID(ctx context.Context) string { - var requestId string + var rid string if v, ok := ctx.Value(chimiddleware.RequestIDKey).(string); ok { - requestId = v + rid = v } - return requestId + return rid } From 06fda516ecd5c14148f65f87c634414b09fdc832 Mon Sep 17 00:00:00 2001 From: Alex Unger <6905948+refs@users.noreply.github.com> Date: Wed, 18 Aug 2021 14:03:19 +0200 Subject: [PATCH 30/31] Update proxy/pkg/middleware/accesslog.go Co-authored-by: David Christofas --- proxy/pkg/middleware/accesslog.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proxy/pkg/middleware/accesslog.go b/proxy/pkg/middleware/accesslog.go index 96adabd63..de2cdd48c 100644 --- a/proxy/pkg/middleware/accesslog.go +++ b/proxy/pkg/middleware/accesslog.go @@ -20,7 +20,7 @@ func AccessLog(logger log.Logger) func(http.Handler) http.Handler { logger.Info(). Str("proto", r.Proto). - Str("request", ExtractRequestID(r.Context())). + Str("request", chimiddleware.GetReqID(r.Context())). Str("remote-addr", r.RemoteAddr). Str("method", r.Method). Int("status", wrap.Status()). From 46f0d6f7e4e1d6cfbbeaf1fb5cc4f90bfe797288 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Wed, 18 Aug 2021 14:06:02 +0200 Subject: [PATCH 31/31] remove dead code --- proxy/pkg/middleware/accesslog.go | 12 ------------ proxy/pkg/proxy/proxy.go | 4 ++-- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/proxy/pkg/middleware/accesslog.go b/proxy/pkg/middleware/accesslog.go index de2cdd48c..c8c5adb14 100644 --- a/proxy/pkg/middleware/accesslog.go +++ b/proxy/pkg/middleware/accesslog.go @@ -1,7 +1,6 @@ package middleware import ( - "context" "net/http" "time" @@ -31,14 +30,3 @@ func AccessLog(logger log.Logger) func(http.Handler) http.Handler { }) } } - -// ExtractRequestID extracts the request ID from the context. Since we now use the go-chi middleware to write the request -// id, this is propagated using the context, therefore read it from there. -func ExtractRequestID(ctx context.Context) string { - var rid string - if v, ok := ctx.Value(chimiddleware.RequestIDKey).(string); ok { - rid = v - } - - return rid -} diff --git a/proxy/pkg/proxy/proxy.go b/proxy/pkg/proxy/proxy.go index 315803d4f..f6b76ac23 100644 --- a/proxy/pkg/proxy/proxy.go +++ b/proxy/pkg/proxy/proxy.go @@ -11,7 +11,7 @@ import ( "strings" "time" - "github.com/owncloud/ocis/proxy/pkg/middleware" + chimiddleware "github.com/go-chi/chi/middleware" "go.opentelemetry.io/otel/attribute" @@ -231,7 +231,7 @@ func (p *MultiHostReverseProxy) ServeHTTP(w http.ResponseWriter, r *http.Request span.SetAttributes( attribute.KeyValue{ Key: "x-request-id", - Value: attribute.StringValue(middleware.ExtractRequestID(r.Context())), + Value: attribute.StringValue(chimiddleware.GetReqID(r.Context())), }) pkgtrace.Propagator.Inject(ctx, propagation.HeaderCarrier(r.Header))