Add back copyTraceHeaders() as OpenTelemetry does not default propagate

This commit is contained in:
Rajat Vig
2021-12-16 14:12:32 +00:00
parent 3970a3a323
commit 2c85a72737
4 changed files with 48 additions and 25 deletions
+1 -1
View File
@@ -53,7 +53,7 @@ func main() {
fs.Int("stress-cpu", 0, "number of CPU cores with 100 load")
fs.Int("stress-memory", 0, "MB of data to load into memory")
fs.String("cache-server", "", "Redis address in the format <host>:<port>")
fs.String("otel-service-name", "podinfo", "Redis address in the format <host>:<port>")
fs.String("otel-service-name", "podinfo", "service name for reporting to open telemetry address")
versionFlag := fs.BoolP("version", "v", false, "get version number")
+22
View File
@@ -55,6 +55,9 @@ func (s *Server) echoHandler(w http.ResponseWriter, r *http.Request) {
return
}
// forward headers
copyTracingHeaders(r, backendReq)
backendReq.Header.Set("X-API-Version", version.VERSION)
backendReq.Header.Set("X-API-Revision", version.REVISION)
@@ -104,3 +107,22 @@ func (s *Server) echoHandler(w http.ResponseWriter, r *http.Request) {
w.Write(body)
}
}
func copyTracingHeaders(from *http.Request, to *http.Request) {
headers := []string{
"x-request-id",
"x-b3-traceid",
"x-b3-spanid",
"x-b3-parentspanid",
"x-b3-sampled",
"x-b3-flags",
"x-ot-span-context",
}
for i := range headers {
headerValue := from.Header.Get(headers[i])
if len(headerValue) > 0 {
to.Header.Set(headers[i], headerValue)
}
}
}
+24 -24
View File
@@ -1,34 +1,34 @@
package api
import (
"go.opentelemetry.io/otel/trace"
"time"
"go.opentelemetry.io/otel/trace"
"time"
"github.com/gorilla/mux"
"go.uber.org/zap"
"github.com/gorilla/mux"
"go.uber.org/zap"
)
func NewMockServer() *Server {
config := &Config{
Port: "9898",
HttpServerShutdownTimeout: 5 * time.Second,
HttpServerTimeout: 30 * time.Second,
BackendURL: []string{},
ConfigPath: "/config",
DataPath: "/data",
HttpClientTimeout: 30 * time.Second,
UIColor: "blue",
UIPath: ".ui",
UIMessage: "Greetings",
Hostname: "localhost",
}
config := &Config{
Port: "9898",
HttpServerShutdownTimeout: 5 * time.Second,
HttpServerTimeout: 30 * time.Second,
BackendURL: []string{},
ConfigPath: "/config",
DataPath: "/data",
HttpClientTimeout: 30 * time.Second,
UIColor: "blue",
UIPath: ".ui",
UIMessage: "Greetings",
Hostname: "localhost",
}
logger, _ := zap.NewDevelopment()
logger, _ := zap.NewDevelopment()
return &Server{
router: mux.NewRouter(),
logger: logger,
config: config,
tracer: trace.NewNoopTracerProvider().Tracer("mock"),
}
return &Server{
router: mux.NewRouter(),
logger: logger,
config: config,
tracer: trace.NewNoopTracerProvider().Tracer("mock"),
}
}
+1
View File
@@ -1,3 +1,4 @@
//go:build !windows
// +build !windows
package signals