Skip to content

Commit

Permalink
Update to using otelutils
Browse files Browse the repository at this point in the history
  • Loading branch information
ianmcorvidae committed Apr 13, 2022
1 parent e1a1c2f commit 175acc7
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 76 deletions.
4 changes: 1 addition & 3 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ require (
github.com/DATA-DOG/go-sqlmock v1.3.0
github.com/cyverse-de/configurate v0.0.0-20171005230251-9b512d37328e
github.com/cyverse-de/dbutil v1.0.1
github.com/cyverse-de/go-mod/otelutils v0.0.2
github.com/cyverse-de/queries v1.0.1
github.com/gorilla/mux v1.8.0
github.com/hashicorp/hcl v0.0.0-20171017181929-23c074d0eceb // indirect
Expand All @@ -24,9 +25,6 @@ require (
github.com/spf13/viper v1.0.0
github.com/uptrace/opentelemetry-go-extra/otelsql v0.1.11 // indirect
go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux v0.30.0
go.opentelemetry.io/otel v1.6.1
go.opentelemetry.io/otel/exporters/jaeger v1.6.0
go.opentelemetry.io/otel/sdk v1.6.0
gopkg.in/airbrake/gobrake.v2 v2.0.9 // indirect
gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2 // indirect
)
27 changes: 10 additions & 17 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,10 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/cyverse-de/configurate v0.0.0-20171005230251-9b512d37328e h1:h6okcwNgr8hsFfd0hFdl8usV0AtdCQca4CNfpllCqxQ=
github.com/cyverse-de/configurate v0.0.0-20171005230251-9b512d37328e/go.mod h1:QMZ4G8bX5f0vKiH9+/2JqV687mN1byJ18tjZwIJIagI=
github.com/cyverse-de/dbutil v0.0.0-20160615220802-d6ccc51d67cd h1:cIUGNefDp8/c92Dk8fUbCUcnXGyt4gM71mQ5tuXfRLo=
github.com/cyverse-de/dbutil v0.0.0-20160615220802-d6ccc51d67cd/go.mod h1:ExgEsAIPqEEtubF/XyUlj8+4ReFsbyT9QChN6EsorN8=
github.com/cyverse-de/dbutil v1.0.0 h1:1bqPdGaboGdRSoFsqK3SqJcaGI8NqV7I9OcBUozRFNQ=
github.com/cyverse-de/dbutil v1.0.0/go.mod h1:DyVsTmbNNljQRUp9n35sZYfkj/Yn/UfYpEda0M+6GeU=
github.com/cyverse-de/dbutil v1.0.1 h1:aCfckMIIJcPGZw9kJ5a1sJSji03/swkCsC7iwD5cX9A=
github.com/cyverse-de/dbutil v1.0.1/go.mod h1:31IZYWBDxS/f4Gz3L/Nx17Q5HghARlB7VFdfjjv50M4=
github.com/cyverse-de/queries v0.0.0-20160412214440-1a09c989c99d h1:ctw5y3ycfdgwqGfX8hqsfcp2SZuzLACUO+d99KlbEdY=
github.com/cyverse-de/queries v0.0.0-20160412214440-1a09c989c99d/go.mod h1:YVclxEOFHTv0ZnVuJGiWh286GrxesamshwikcifVehA=
github.com/cyverse-de/queries v1.0.0 h1:PD882YqRpGKDnCpKMy5BQAzV3+WV9ML/IrDi0+U7rXE=
github.com/cyverse-de/queries v1.0.0/go.mod h1:AzLmCqSmI9iGqiWJi5tzsif2UHIAr3wrleDgQRhmDZk=
github.com/cyverse-de/go-mod/otelutils v0.0.2 h1:7O3jWQgf+PIIACSwtQM5SNtn6xTxxaLIUW6kjEKUpHM=
github.com/cyverse-de/go-mod/otelutils v0.0.2/go.mod h1:8P2jRGnvUsH4qtyVP0W6KiV5iSr102pLkzKFgkYJ4og=
github.com/cyverse-de/queries v1.0.1 h1:xODyzr9I0SMlcMAqSLiXSHn5xqzOoAJXCwILlmOuRHE=
github.com/cyverse-de/queries v1.0.1/go.mod h1:AzLmCqSmI9iGqiWJi5tzsif2UHIAr3wrleDgQRhmDZk=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
Expand Down Expand Up @@ -50,14 +44,14 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o=
github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/hashicorp/hcl v0.0.0-20171017181929-23c074d0eceb h1:1OvvPvZkn/yCQ3xBcM8y4020wdkMXPHLB4+NfoGWh4U=
github.com/hashicorp/hcl v0.0.0-20171017181929-23c074d0eceb/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/lib/pq v0.0.0-20180201184707-88edab080323 h1:Ou506ViB5uo2GloKFWIYi5hwRJn4AAOXuLVv8RMY9+4=
github.com/lib/pq v0.0.0-20180201184707-88edab080323/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lib/pq v1.10.4 h1:SO9z7FRPzA03QhHKJrH5BXA6HU1rS4V2nIVrrNC1iYk=
github.com/lib/pq v1.10.4/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/magiconair/properties v1.7.6 h1:U+1DqNen04MdEPgFiIwdOUiqZ8qPa37xgogX/sd3+54=
Expand All @@ -81,6 +75,8 @@ github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE=
github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs=
github.com/pelletier/go-toml v1.1.0 h1:cmiOvKzEunMsAxyhXSzpL5Q1CRKpVv0KQsnAIcSEVYM=
github.com/pelletier/go-toml v1.1.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/sirupsen/logrus v1.0.5-0.20180129181852-768a92a02685 h1:833faJBZ5DG4pN7wlypaNFWD9Ck7VpjhkJ1H42O/GmI=
Expand Down Expand Up @@ -110,23 +106,20 @@ go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux v0.30
go.opentelemetry.io/otel v1.4.0/go.mod h1:jeAqMFKy2uLIxCtKxoFj0FAL5zAPKQagc3+GtBWakzk=
go.opentelemetry.io/otel v1.4.1/go.mod h1:StM6F/0fSwpd8dKWDCdRr7uRvEPYdW0hBSlbdTiUde4=
go.opentelemetry.io/otel v1.5.0/go.mod h1:Jm/m+rNp/z0eqJc74H7LPwQ3G87qkU/AnnAydAjSAHk=
go.opentelemetry.io/otel v1.6.0 h1:YV6GkGe/Ag2PKsm4rjlqdSNs0w0A5ZzxeGkxhx1T+t4=
go.opentelemetry.io/otel v1.6.0/go.mod h1:bfJD2DZVw0LBxghOTlgnlI0CV3hLDu9XF/QKOUXMTQQ=
go.opentelemetry.io/otel v1.6.1 h1:6r1YrcTenBvYa1x491d0GGpTVBsNECmrc/K6b+zDeis=
go.opentelemetry.io/otel v1.6.1/go.mod h1:blzUabWHkX6LJewxvadmzafgh/wnvBSDBdOuwkAtrWQ=
go.opentelemetry.io/otel/exporters/jaeger v1.6.0 h1:S6NKcNwBf9DJPeVIWYp2MEsgtnM2hXcMkDh27E7U5c0=
go.opentelemetry.io/otel/exporters/jaeger v1.6.0/go.mod h1:2ZcEphvH09jWp3zi/RFeAELQp1AV7R2AOP71Fjx9h2A=
go.opentelemetry.io/otel/internal/metric v0.27.0 h1:9dAVGAfFiiEq5NVB9FUJ5et+btbDQAUIJehJ+ikyryk=
go.opentelemetry.io/otel/exporters/jaeger v1.6.1 h1:7xuwXr3qUWq48Chyuq+VvomV3KjXZLd5seQwg83s/sU=
go.opentelemetry.io/otel/exporters/jaeger v1.6.1/go.mod h1:Cu6mKJ+LLTPuOBX830xM4wVKIsVpHSXa50uN7aAxraQ=
go.opentelemetry.io/otel/internal/metric v0.27.0/go.mod h1:n1CVxRqKqYZtqyTh9U/onvKapPGv7y/rpyOTI+LFNzw=
go.opentelemetry.io/otel/metric v0.27.0/go.mod h1:raXDJ7uP2/Jc0nVZWQjJtzoyssOYWu/+pjZqRzfvZ7g=
go.opentelemetry.io/otel/metric v0.28.0 h1:o5YNh+jxACMODoAo1bI7OES0RUW4jAMae0Vgs2etWAQ=
go.opentelemetry.io/otel/metric v0.28.0/go.mod h1:TrzsfQAmQaB1PDcdhBauLMk7nyyg9hm+GoQq/ekE9Iw=
go.opentelemetry.io/otel/sdk v1.6.0 h1:JoriAoiNENuxxIQApR1O0k2h1Md5QegZhbentcRJpWk=
go.opentelemetry.io/otel/sdk v1.6.0/go.mod h1:PjLRUfDsoPy0zl7yrDGSUqjj43tL7rEtFdCEiGlxXRM=
go.opentelemetry.io/otel/sdk v1.6.1 h1:ZmcNyMhcuAYIb/Nr6QhBPTMopMTbov/47wHt1gibkoY=
go.opentelemetry.io/otel/sdk v1.6.1/go.mod h1:IVYrddmFZ+eJqu2k38qD3WezFR2pymCzm8tdxyh3R4E=
go.opentelemetry.io/otel/trace v1.4.0/go.mod h1:uc3eRsqDfWs9R7b92xbQbU42/eTNz4N+gLP8qJCi4aE=
go.opentelemetry.io/otel/trace v1.4.1/go.mod h1:iYEVbroFCNut9QkwEczV9vMRPHNKSSwYZjulEtsmhFc=
go.opentelemetry.io/otel/trace v1.5.0/go.mod h1:sq55kfhjXYr1zVSyexg0w1mpa03AYXR5eyTkB9NPPdE=
go.opentelemetry.io/otel/trace v1.6.0 h1:NDzPermp9ISkhxIaJXjBTi2O60xOSHDHP/EezjOL2wo=
go.opentelemetry.io/otel/trace v1.6.0/go.mod h1:qs7BrU5cZ8dXQHBGxHMOxwME/27YH2qEp4/+tZLLwJE=
go.opentelemetry.io/otel/trace v1.6.1 h1:f8c93l5tboBYZna1nWk0W9DYyMzJXDWdZcJZ0Kb400U=
go.opentelemetry.io/otel/trace v1.6.1/go.mod h1:RkFRM1m0puWIq10oxImnGEduNBzxiN7TXluRBtE+5j0=
Expand Down
61 changes: 5 additions & 56 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,54 +6,27 @@ import (
"flag"
"net/http"
"os"
"time"

"github.com/cyverse-de/configurate"
"github.com/cyverse-de/dbutil"
"github.com/cyverse-de/go-mod/otelutils"
_ "github.com/lib/pq"
log "github.com/sirupsen/logrus"
"github.com/spf13/viper"

"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/exporters/jaeger"
"go.opentelemetry.io/otel/propagation"
"go.opentelemetry.io/otel/sdk/resource"
tracesdk "go.opentelemetry.io/otel/sdk/trace"
semconv "go.opentelemetry.io/otel/semconv/v1.7.0"
)

const serviceName = "user-info"

// IplantSuffix is what is appended to a username in the database.
const IplantSuffix = "@iplantcollaborative.org"

func jaegerTracerProvider(url string) (*tracesdk.TracerProvider, error) {
// Create the Jaeger exporter
exp, err := jaeger.New(jaeger.WithCollectorEndpoint(jaeger.WithEndpoint(url)))
if err != nil {
return nil, err
}

tp := tracesdk.NewTracerProvider(
tracesdk.WithBatcher(exp),
tracesdk.WithResource(resource.NewWithAttributes(
semconv.SchemaURL,
semconv.ServiceNameKey.String(serviceName),
)),
)

return tp, nil
}

func main() {
var (
showVersion = flag.Bool("version", false, "Print the version information")
cfgPath = flag.String("config", "/etc/iplant/de/jobservices.yml", "The path to the config file")
port = flag.String("port", "60000", "The port number to listen on")
err error
cfg *viper.Viper

tracerProvider *tracesdk.TracerProvider
)

flag.Parse()
Expand All @@ -67,34 +40,10 @@ func main() {
log.Fatal("--config must be set")
}

otelTracesExporter := os.Getenv("OTEL_TRACES_EXPORTER")
if otelTracesExporter == "jaeger" {
jaegerEndpoint := os.Getenv("OTEL_EXPORTER_JAEGER_ENDPOINT")
if jaegerEndpoint == "" {
log.Warn("Jaeger set as OpenTelemetry trace exporter, but no Jaeger endpoint configured.")
} else {
tp, err := jaegerTracerProvider(jaegerEndpoint)
if err != nil {
log.Fatal(err)
}
tracerProvider = tp
otel.SetTracerProvider(tp)
otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{}))
}
}

if tracerProvider != nil {
tracerCtx, cancel := context.WithCancel(context.Background())
defer cancel()

defer func(tracerContext context.Context) {
ctx, cancel := context.WithTimeout(tracerContext, time.Second*5)
defer cancel()
if err := tracerProvider.Shutdown(ctx); err != nil {
log.Fatal(err)
}
}(tracerCtx)
}
var tracerCtx, cancel = context.WithCancel(context.Background())
defer cancel()
shutdown := otelutils.TracerProviderFromEnv(tracerCtx, serviceName, func(e error) { log.Fatal(e) })
defer shutdown()

if cfg, err = configurate.InitDefaults(*cfgPath, configurate.JobServicesDefaults); err != nil {
log.Fatal(err.Error())
Expand Down

0 comments on commit 175acc7

Please sign in to comment.