Add draft of tracing package.

This commit is contained in:
2024-06-20 00:23:00 +01:00
parent 16844e325e
commit 934bddae1b
7 changed files with 190 additions and 7 deletions
+19
View File
@@ -1,6 +1,7 @@
package main
import (
"context"
"fmt"
"strconv"
"time"
@@ -14,6 +15,7 @@ import (
libpack_config "github.com/lukaszraczylo/graphql-monitoring-proxy/config"
libpack_logger "github.com/lukaszraczylo/graphql-monitoring-proxy/logging"
libpack_monitoring "github.com/lukaszraczylo/graphql-monitoring-proxy/monitoring"
libpack_trace "github.com/lukaszraczylo/graphql-monitoring-proxy/trace"
)
// StartHTTPProxy starts the HTTP and points it to the GraphQL server.
@@ -109,6 +111,23 @@ func processGraphQLRequest(c *fiber.Ctx) error {
extractedRoleName := "-"
var queryCacheHash string
if cfg.Trace.Enable {
trace_header := c.Request().Header.Peek("X-Trace-Span")
if trace_header != nil {
traceHeaders := make(map[string]string)
err := json.Unmarshal([]byte(trace_header), &traceHeaders)
if err != nil {
cfg.Logger.Error(&libpack_logger.LogMessage{
Message: "Error unmarshalling tracer header",
Pairs: map[string]interface{}{"error": err},
})
}
ctx := libpack_trace.TraceContextExtract(context.Background(), traceHeaders)
_, span := libpack_trace.ContinueSpanFromContext(ctx, "processingGraphQLRequest")
defer span.End()
}
}
authorization := c.Request().Header.Peek("Authorization")
if authorization != nil && (len(cfg.Client.JWTUserClaimPath) > 0 || len(cfg.Client.JWTRoleClaimPath) > 0) {
extractedUserID, extractedRoleName = extractClaimsFromJWTHeader(string(authorization))