소스 검색

use opentracing ext package when possible

bergquist 8 년 전
부모
커밋
89c86c7a22
1개의 변경된 파일9개의 추가작업 그리고 16개의 파일을 삭제
  1. 9 16
      pkg/middleware/request_tracing.go

+ 9 - 16
pkg/middleware/request_tracing.go

@@ -1,11 +1,11 @@
 package middleware
 package middleware
 
 
 import (
 import (
+	"fmt"
 	"net/http"
 	"net/http"
-	"time"
 
 
 	opentracing "github.com/opentracing/opentracing-go"
 	opentracing "github.com/opentracing/opentracing-go"
-	tlog "github.com/opentracing/opentracing-go/log"
+	"github.com/opentracing/opentracing-go/ext"
 
 
 	"gopkg.in/macaron.v1"
 	"gopkg.in/macaron.v1"
 )
 )
@@ -15,28 +15,21 @@ func RequestTracing() macaron.Handler {
 		rw := res.(macaron.ResponseWriter)
 		rw := res.(macaron.ResponseWriter)
 
 
 		var span opentracing.Span
 		var span opentracing.Span
-		opName := req.URL.Path
-		carrier := opentracing.HTTPHeadersCarrier(req.Header)
-
-		wireContext, err := opentracing.GlobalTracer().Extract(
-			opentracing.HTTPHeaders, carrier)
-		if err != nil {
-			span = opentracing.StartSpan(opName)
-		} else {
-			span = opentracing.StartSpan(opName, opentracing.ChildOf(wireContext))
-		}
+		tracer := opentracing.GlobalTracer()
+		wireContext, _ := tracer.Extract(opentracing.HTTPHeaders, opentracing.HTTPHeadersCarrier(req.Header))
+		spanName := fmt.Sprintf("HTTP %s %s", req.Method, req.URL.Path)
+		span = tracer.StartSpan(spanName, ext.RPCServerOption(wireContext))
 		defer span.Finish()
 		defer span.Finish()
 
 
 		ctx := opentracing.ContextWithSpan(req.Context(), span)
 		ctx := opentracing.ContextWithSpan(req.Context(), span)
 		req = req.WithContext(ctx)
 		req = req.WithContext(ctx)
-		start := time.Now()
 
 
 		c.Next()
 		c.Next()
 
 
 		status := rw.Status()
 		status := rw.Status()
 
 
-		span.LogFields(
-			tlog.Int("http.status_code", status),
-			tlog.Float64("waited.millis", float64(time.Since(start)/time.Millisecond)))
+		ext.HTTPStatusCode.Set(span, uint16(status))
+		ext.HTTPUrl.Set(span, req.RequestURI)
+		ext.HTTPMethod.Set(span, req.Method)
 	}
 	}
 }
 }