@@ -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
1619const (
@@ -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
2832func 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
4146func (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