Skip to content

Commit

Permalink
pass tracer in context, traces in POST /decisions
Browse files Browse the repository at this point in the history
  • Loading branch information
augustin-marble committed Jan 16, 2024
1 parent dee2a2c commit c0af8c7
Show file tree
Hide file tree
Showing 13 changed files with 199 additions and 126 deletions.
112 changes: 56 additions & 56 deletions api/tracing/tracing.go
Original file line number Diff line number Diff line change
@@ -1,58 +1,58 @@
package tracing

import (
"context"
"fmt"

texporter "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace"
gcppropagator "github.com/GoogleCloudPlatform/opentelemetry-operations-go/propagator"
"go.opentelemetry.io/contrib/detectors/gcp"
"go.opentelemetry.io/otel"
"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.21.0"
)

type Configuration struct {
Enabled bool
ApplicationName string
ProjectID string
}

func Init(configuration Configuration) error {
if !configuration.Enabled {
return nil
}

exporter, err := texporter.New(texporter.WithProjectID(configuration.ProjectID))
if err != nil {
return fmt.Errorf("texporter.New error: %v", err)
}

res, err := resource.New(context.Background(),
resource.WithDetectors(gcp.NewDetector()),
resource.WithTelemetrySDK(),
resource.WithAttributes(
semconv.ServiceNameKey.String(configuration.ApplicationName),
),
)
if err != nil {
return fmt.Errorf("resource.New error: %w", err)
}

tp := sdktrace.NewTracerProvider(
sdktrace.WithBatcher(exporter),
sdktrace.WithResource(res),
)

otel.SetTextMapPropagator(
propagation.NewCompositeTextMapPropagator(
gcppropagator.CloudTraceFormatPropagator{},
propagation.TraceContext{},
propagation.Baggage{},
),
)
otel.SetTracerProvider(tp)
return nil
}
// import (
// "context"
// "fmt"

// texporter "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace"
// gcppropagator "github.com/GoogleCloudPlatform/opentelemetry-operations-go/propagator"
// "go.opentelemetry.io/contrib/detectors/gcp"
// "go.opentelemetry.io/otel"
// "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.21.0"
// )

// type Configuration struct {
// Enabled bool
// ApplicationName string
// ProjectID string
// }

// func Init(configuration Configuration) error {
// if !configuration.Enabled {
// return nil
// }

// exporter, err := texporter.New(texporter.WithProjectID(configuration.ProjectID))
// if err != nil {
// return fmt.Errorf("texporter.New error: %v", err)
// }

// res, err := resource.New(context.Background(),
// resource.WithDetectors(gcp.NewDetector()),
// resource.WithTelemetrySDK(),
// resource.WithAttributes(
// semconv.ServiceNameKey.String(configuration.ApplicationName),
// ),
// )
// if err != nil {
// return fmt.Errorf("resource.New error: %w", err)
// }

// tp := sdktrace.NewTracerProvider(
// sdktrace.WithBatcher(exporter),
// sdktrace.WithResource(res),
// )

// otel.SetTextMapPropagator(
// propagation.NewCompositeTextMapPropagator(
// gcppropagator.CloudTraceFormatPropagator{},
// propagation.TraceContext{},
// propagation.Baggage{},
// ),
// )
// otel.SetTracerProvider(tp)
// return nil
// }
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ require (
github.com/getsentry/sentry-go v0.25.0
github.com/gin-contrib/cors v1.4.0
github.com/gin-contrib/size v0.0.0-20231211133737-500859255df8
github.com/gin-contrib/timeout v0.0.6
github.com/gin-gonic/gin v1.9.1
github.com/go-playground/validator/v10 v10.15.3
github.com/gofrs/uuid v4.4.0+incompatible
Expand All @@ -36,6 +37,7 @@ require (
go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.46.1
go.opentelemetry.io/otel v1.21.0
go.opentelemetry.io/otel/sdk v1.21.0
go.opentelemetry.io/otel/trace v1.21.0
golang.org/x/net v0.18.0
google.golang.org/api v0.138.0
)
Expand Down Expand Up @@ -84,7 +86,6 @@ require (
github.com/docker/go-units v0.5.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
github.com/gin-contrib/sse v0.1.0 // indirect
github.com/gin-contrib/timeout v0.0.6 // indirect
github.com/go-logr/logr v1.3.0 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-playground/locales v0.14.1 // indirect
Expand Down Expand Up @@ -133,7 +134,6 @@ require (
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/otel/metric v1.21.0 // indirect
go.opentelemetry.io/otel/trace v1.21.0 // indirect
golang.org/x/arch v0.5.0 // indirect
golang.org/x/crypto v0.15.0 // indirect
golang.org/x/mod v0.12.0 // indirect
Expand Down
15 changes: 0 additions & 15 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,6 @@ github.com/aws/smithy-go v1.14.2/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY=
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4=
github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s=
github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U=
github.com/bytedance/sonic v1.10.0-rc/go.mod h1:ElCzW+ufi8qKqNW0FY314xriJhyJhuoJ3gFZdAHF7NM=
github.com/bytedance/sonic v1.10.0 h1:qtNZduETEIWJVIyDl01BeNxur2rW9OwTQ/yBqFRkKEk=
github.com/bytedance/sonic v1.10.0/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4=
Expand All @@ -97,7 +95,6 @@ github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyY
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY=
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams=
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk=
github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d h1:77cEq6EriyTZ0g/qfRdp61a3Uu/AWrgIq2s0ClJV1g0=
github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d/go.mod h1:8EPpVsBuRksnlj1mLy4AWzRNQYxauNi62uWcE3to6eA=
Expand Down Expand Up @@ -175,8 +172,6 @@ github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos=
github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js=
github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
github.com/go-playground/validator/v10 v10.15.3 h1:S+sSpunYjNPDuXkWbK+x+bA7iXiW296KG4dL3X7xUZo=
github.com/go-playground/validator/v10 v10.15.3/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI=
Expand Down Expand Up @@ -245,8 +240,6 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI
github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk=
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
github.com/jackc/pgx/v5 v5.4.3 h1:cxFyXhxlvAifxnkKKdlxv8XqUf59tDlYjnV5YYfsJJY=
github.com/jackc/pgx/v5 v5.4.3/go.mod h1:Ig06C2Vu0t5qXC60W8sqIthScaEnFvojjj9dSljmHRA=
github.com/jackc/pgx/v5 v5.5.1 h1:5I9etrGkLrN+2XPCsi6XLlV5DITbSL/xBZdmAxFcXPI=
github.com/jackc/pgx/v5 v5.5.1/go.mod h1:Ig06C2Vu0t5qXC60W8sqIthScaEnFvojjj9dSljmHRA=
github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk=
Expand All @@ -262,8 +255,6 @@ github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:C
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk=
github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg=
github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M=
Expand Down Expand Up @@ -308,8 +299,6 @@ github.com/opencontainers/runc v1.1.9/go.mod h1:CbUumNnWCuTGFukNXahoo/RFBZvDAgRh
github.com/ory/dockertest/v3 v3.10.0 h1:4K3z2VMe8Woe++invjaTB7VRyQXQy5UY+loujO4aNE4=
github.com/ory/dockertest/v3 v3.10.0/go.mod h1:nr57ZbRWMqfsdGdFNLHz5jjNdDb7VVFnzAeW1n5N1Lg=
github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4=
github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4=
Expand Down Expand Up @@ -349,7 +338,6 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/tidwall/gjson v1.17.0 h1:/Jocvlh98kcTfpN2+JzGQWQcqrPQwDrVEMApx/M5ZwM=
Expand Down Expand Up @@ -392,8 +380,6 @@ go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8
go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ=
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k=
golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
golang.org/x/arch v0.5.0 h1:jpGode6huXQxcskEIpOCvrU+tzo81b6+oFLUYXWtH/Y=
golang.org/x/arch v0.5.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
Expand Down Expand Up @@ -455,7 +441,6 @@ golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
Expand Down
23 changes: 13 additions & 10 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,30 +15,32 @@ import (
"time"

"github.com/segmentio/analytics-go/v3"
"go.opentelemetry.io/otel/trace"

"github.com/checkmarble/marble-backend/api"
"github.com/checkmarble/marble-backend/api/tracing"
"github.com/checkmarble/marble-backend/infra"
"github.com/checkmarble/marble-backend/jobs"
"github.com/checkmarble/marble-backend/models"
"github.com/checkmarble/marble-backend/repositories"
"github.com/checkmarble/marble-backend/repositories/firebase"
"github.com/checkmarble/marble-backend/repositories/postgres"
"github.com/checkmarble/marble-backend/tracing"
"github.com/checkmarble/marble-backend/usecases"
"github.com/checkmarble/marble-backend/usecases/datamodel"
"github.com/checkmarble/marble-backend/usecases/token"
"github.com/checkmarble/marble-backend/utils"
)

type dependencies struct {
Authentication *api.Authentication
TokenHandler *api.TokenHandler
DataModelHandler *api.DataModelHandler
SegmentClient analytics.Client
Authentication *api.Authentication
TokenHandler *api.TokenHandler
DataModelHandler *api.DataModelHandler
SegmentClient analytics.Client
OpenTelemetryTracer trace.Tracer
}

func initDependencies(conf AppConfiguration, signingKey *rsa.PrivateKey) (dependencies, error) {
err := tracing.Init(tracing.Configuration{
tracer, err := tracing.Init(tracing.Configuration{
Enabled: conf.env != "development",
ApplicationName: "marble-backend",
ProjectID: conf.gcpProject,
Expand Down Expand Up @@ -66,10 +68,11 @@ func initDependencies(conf AppConfiguration, signingKey *rsa.PrivateKey) (depend
segmentClient := analytics.New(conf.config.SegmentWriteKey)

return dependencies{
Authentication: api.NewAuthentication(tokenValidator),
TokenHandler: api.NewTokenHandler(tokenGenerator),
DataModelHandler: api.NewDataModelHandler(dataModelUseCase),
SegmentClient: segmentClient,
Authentication: api.NewAuthentication(tokenValidator),
TokenHandler: api.NewTokenHandler(tokenGenerator),
DataModelHandler: api.NewDataModelHandler(dataModelUseCase),
SegmentClient: segmentClient,
OpenTelemetryTracer: tracer,
}, nil
}

Expand Down
1 change: 1 addition & 0 deletions router.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ func initRouter(ctx context.Context, conf AppConfiguration, deps dependencies) *
r.Use(otelgin.Middleware("marble-backend"))
r.Use(utils.StoreLoggerInContextMiddleware(logger))
r.Use(utils.StoreSegmentClientInContextMiddleware(deps.SegmentClient))
r.Use(utils.StoreOpenTelemetryTracerInContextMiddleware(deps.OpenTelemetryTracer))

r.GET("/liveness", api.HandleLivenessProbe)
r.POST("/crash", api.HandleCrash)
Expand Down
16 changes: 11 additions & 5 deletions tracing/tracing.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,15 @@ import (

texporter "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace"
gcppropagator "github.com/GoogleCloudPlatform/opentelemetry-operations-go/propagator"

"go.opentelemetry.io/contrib/detectors/gcp"
"go.opentelemetry.io/otel"
"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.21.0"
"go.opentelemetry.io/otel/trace"
"go.opentelemetry.io/otel/trace/noop"
)

type Configuration struct {
Expand All @@ -20,14 +23,14 @@ type Configuration struct {
ProjectID string
}

func Init(configuration Configuration) error {
func Init(configuration Configuration) (trace.Tracer, error) {
if !configuration.Enabled {
return nil
return &noop.Tracer{}, nil
}

exporter, err := texporter.New(texporter.WithProjectID(configuration.ProjectID))
if err != nil {
return fmt.Errorf("texporter.New error: %v", err)
return nil, fmt.Errorf("texporter.New error: %v", err)
}

res, err := resource.New(context.Background(),
Expand All @@ -38,7 +41,7 @@ func Init(configuration Configuration) error {
),
)
if err != nil {
return fmt.Errorf("resource.New error: %w", err)
return nil, fmt.Errorf("resource.New error: %w", err)
}

tp := sdktrace.NewTracerProvider(
Expand All @@ -54,5 +57,8 @@ func Init(configuration Configuration) error {
),
)
otel.SetTracerProvider(tp)
return nil

tracer := tp.Tracer(configuration.ApplicationName)
return tracer, nil

}
4 changes: 4 additions & 0 deletions usecases/decision_usecase.go
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,10 @@ func (usecase *DecisionUsecase) validateTriggerObjects(ctx context.Context, filt

func (usecase *DecisionUsecase) CreateDecision(ctx context.Context, input models.CreateDecisionInput, logger *slog.Logger) (models.Decision, error) {

tracer := utils.OpenTelemetryTracerFromContext(ctx)
ctx, span := tracer.Start(ctx, "DecisionUsecase.CreateDecision")
defer span.End()

if err := usecase.enforceSecurity.CreateDecision(input.OrganizationId); err != nil {
return models.Decision{}, err
}
Expand Down
Loading

0 comments on commit c0af8c7

Please sign in to comment.