Feat: update the pr as per comment
This commit is contained in:
@@ -65,4 +65,3 @@ func newHandlerMetrics() (*HandlerMetrics, error) {
|
||||
|
||||
return m, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"github.com/beckn-one/beckn-onix/pkg/telemetry"
|
||||
@@ -79,10 +80,10 @@ func RecordHTTPRequest(ctx context.Context, statusCode int, action, role, sender
|
||||
|
||||
metric_code := action + "_api_total_count"
|
||||
category := "NetworkHealth"
|
||||
if action == "/search" || action == "/discovery" {
|
||||
if strings.HasSuffix(action, "/search") || strings.HasSuffix(action, "/discovery") {
|
||||
category = "Discovery"
|
||||
}
|
||||
attributes = append(attributes, specHttpMetricAttr(metric_code, category)...) //TODO: need to update as per the furthur discussion
|
||||
attributes = append(attributes, specHttpMetricAttr(metric_code, category)...)
|
||||
m.HttpRequestCount.Add(ctx, 1, metric.WithAttributes(attributes...))
|
||||
}
|
||||
|
||||
|
||||
@@ -122,19 +122,7 @@ func (h *stdHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
record: nil,
|
||||
}
|
||||
|
||||
selfID := h.SubscriberID
|
||||
remoteID := ""
|
||||
if v, ok := r.Context().Value(model.ContextKeyRemoteID).(string); ok {
|
||||
remoteID = v
|
||||
}
|
||||
var senderID, receiverID string
|
||||
if strings.Contains(h.moduleName, "Caller") {
|
||||
senderID = selfID
|
||||
receiverID = remoteID
|
||||
} else {
|
||||
senderID = remoteID
|
||||
receiverID = selfID
|
||||
}
|
||||
senderID, receiverID := h.resolveDirection(r.Context())
|
||||
httpMeter, _ := GetHTTPMetrics(r.Context())
|
||||
if httpMeter != nil {
|
||||
recordOnce = func() {
|
||||
@@ -161,7 +149,7 @@ func (h *stdHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
body := stepCtx.Body
|
||||
go telemetry.EmitAuditLogs(r.Context(), body, auditlog.Int("http.response.status_code", wrapped.statusCode), auditlog.String("http.response.error", errString(err)))
|
||||
telemetry.EmitAuditLogs(r.Context(), body, auditlog.Int("http.response.status_code", wrapped.statusCode), auditlog.String("http.response.error", errString(err)))
|
||||
span.End()
|
||||
}()
|
||||
|
||||
@@ -385,21 +373,17 @@ func (h *stdHandler) initSteps(ctx context.Context, mgr PluginManager, cfg *Conf
|
||||
return nil
|
||||
}
|
||||
|
||||
func setBecknAttr(span trace.Span, r *http.Request, h *stdHandler) {
|
||||
func (h *stdHandler) resolveDirection(ctx context.Context) (senderID, receiverID string) {
|
||||
selfID := h.SubscriberID
|
||||
remoteID := ""
|
||||
if v, ok := r.Context().Value(model.ContextKeyRemoteID).(string); ok {
|
||||
remoteID = v
|
||||
}
|
||||
|
||||
var senderID, receiverID string
|
||||
remoteID, _ := ctx.Value(model.ContextKeyRemoteID).(string)
|
||||
if strings.Contains(h.moduleName, "Caller") {
|
||||
senderID = selfID
|
||||
receiverID = remoteID
|
||||
} else {
|
||||
senderID = remoteID
|
||||
receiverID = selfID
|
||||
return selfID, remoteID
|
||||
}
|
||||
return remoteID, selfID
|
||||
}
|
||||
|
||||
func setBecknAttr(span trace.Span, r *http.Request, h *stdHandler) {
|
||||
senderID, receiverID := h.resolveDirection(r.Context())
|
||||
attrs := []attribute.KeyValue{
|
||||
telemetry.AttrRecipientID.String(receiverID),
|
||||
telemetry.AttrSenderID.String(senderID),
|
||||
|
||||
@@ -41,28 +41,25 @@ func (s *signStep) Run(ctx *model.StepContext) error {
|
||||
return model.NewBadReqErr(fmt.Errorf("subscriberID not set"))
|
||||
}
|
||||
|
||||
tracer := otel.Tracer("beckn-onix")
|
||||
tracer := otel.Tracer(telemetry.ScopeName, trace.WithInstrumentationVersion(telemetry.ScopeVersion))
|
||||
|
||||
var keySet *model.Keyset
|
||||
{
|
||||
// to create span to finding the key set
|
||||
keySetCtx, keySetSpan := tracer.Start(ctx.Context, "keyset")
|
||||
defer keySetSpan.End()
|
||||
ks, err := s.km.Keyset(keySetCtx, ctx.SubID)
|
||||
keySetSpan.End()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to get signing key: %w", err)
|
||||
}
|
||||
keySet = ks
|
||||
|
||||
}
|
||||
|
||||
{
|
||||
// to create span for the signa
|
||||
signerCtx, signerSpan := tracer.Start(ctx.Context, "sign")
|
||||
defer signerSpan.End()
|
||||
createdAt := time.Now().Unix()
|
||||
validTill := time.Now().Add(5 * time.Minute).Unix()
|
||||
sign, err := s.signer.Sign(signerCtx, ctx.Body, keySet.SigningPrivate, createdAt, validTill)
|
||||
signerSpan.End()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to sign request: %w", err)
|
||||
}
|
||||
@@ -73,7 +70,6 @@ func (s *signStep) Run(ctx *model.StepContext) error {
|
||||
header = model.AuthHeaderGateway
|
||||
}
|
||||
ctx.Request.Header.Set(header, authHeader)
|
||||
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user