Skip to content

Commit a5d43bc

Browse files
authored
feat: add traces to ofrep endpoint (#1593)
Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
1 parent 11db29d commit a5d43bc

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

flagd/pkg/service/flag-evaluation/ofrep/handler.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ import (
1111
"github.com/open-feature/flagd/core/pkg/model"
1212
"github.com/open-feature/flagd/core/pkg/service/ofrep"
1313
"github.com/rs/xid"
14+
"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
15+
"go.opentelemetry.io/otel"
16+
"go.opentelemetry.io/otel/trace"
1417
)
1518

1619
const (
@@ -23,19 +26,21 @@ type handler struct {
2326
Logger *logger.Logger
2427
evaluator evaluator.IEvaluator
2528
contextValues map[string]any
29+
tracer trace.Tracer
2630
}
2731

2832
func NewOfrepHandler(logger *logger.Logger, evaluator evaluator.IEvaluator, contextValues map[string]any) http.Handler {
2933
h := handler{
3034
Logger: logger,
3135
evaluator: evaluator,
3236
contextValues: contextValues,
37+
tracer: otel.Tracer("flagd.ofrep.v1"),
3338
}
3439

3540
router := mux.NewRouter()
3641
router.HandleFunc(singleEvaluation, h.HandleFlagEvaluation).Methods("POST")
3742
router.HandleFunc(bulkEvaluation, h.HandleBulkEvaluation).Methods("POST")
38-
return router
43+
return otelhttp.NewHandler(router, "flagd.ofrep")
3944
}
4045

4146
func (h *handler) HandleFlagEvaluation(w http.ResponseWriter, r *http.Request) {
@@ -57,7 +62,6 @@ func (h *handler) HandleFlagEvaluation(w http.ResponseWriter, r *http.Request) {
5762
h.writeJSONToResponse(http.StatusBadRequest, ofrep.ContextErrorResponseFrom(flagKey), w)
5863
return
5964
}
60-
6165
context := flagdContext(h.Logger, requestID, request, h.contextValues)
6266
evaluation := h.evaluator.ResolveAsAnyValue(r.Context(), requestID, flagKey, context)
6367
if evaluation.Error != nil {

0 commit comments

Comments
 (0)