frontend/checkoutservice: add tracing

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
This commit is contained in:
Ahmet Alp Balkan 2018-07-12 10:46:43 -07:00
parent 89618dbeb6
commit 555c8a4c05
4 changed files with 39 additions and 2 deletions

View file

@ -11,7 +11,9 @@ RUN go get -d github.com/google/uuid \
google.golang.org/grpc/codes \
google.golang.org/grpc/status \
go.opencensus.io/plugin/ochttp \
go.opencensus.io/plugin/ochttp/propagation/b3
go.opencensus.io/plugin/ochttp/propagation/b3 \
go.opencensus.io/exporter/stackdriver \
go.opencensus.io/trace
# copy go-only part of the build
COPY *.go ./

View file

@ -3,6 +3,7 @@ package main
import (
"context"
"fmt"
"log"
"net/http"
"os"
"time"
@ -10,9 +11,11 @@ import (
"github.com/gorilla/mux"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"go.opencensus.io/exporter/stackdriver"
"go.opencensus.io/plugin/ocgrpc"
"go.opencensus.io/plugin/ochttp"
"go.opencensus.io/plugin/ochttp/propagation/b3"
"go.opencensus.io/trace"
"google.golang.org/grpc"
)
@ -64,6 +67,8 @@ func main() {
log.Level = logrus.DebugLevel
log.Formatter = &logrus.TextFormatter{}
initTracing()
srvPort := port
if os.Getenv("PORT") != "" {
srvPort = os.Getenv("PORT")
@ -106,6 +111,18 @@ func main() {
log.Fatal(http.ListenAndServe(addr+":"+srvPort, handler))
}
func initTracing() {
exporter, err := stackdriver.NewExporter(stackdriver.Options{})
if err != nil {
log.Printf("failed to initialize stackdriver exporter: %+v", err)
log.Println("skipping uploading traces to stackdriver")
} else {
trace.RegisterExporter(exporter)
trace.ApplyConfig(trace.Config{DefaultSampler: trace.AlwaysSample()})
log.Println("registered stackdriver tracing")
}
}
func mustMapEnv(target *string, envKey string) {
v := os.Getenv(envKey)
if v == "" {