opentelemetry-wai 0.5.3 → 0.6.0
raw patch · 2 files changed
+19/−16 lines, 2 filesdep ~opentelemetry
Dependency ranges changed: opentelemetry
Files
opentelemetry-wai.cabal view
@@ -2,7 +2,7 @@ name: opentelemetry-wai description: OpenTelemetry middleware for wai category: OpenTelemetry-version: 0.5.3+version: 0.6.0 license-file: LICENSE license: Apache-2.0 author: Dmitry Ivanov@@ -50,7 +50,7 @@ build-depends: base >= 4.12 && < 5, bytestring,- opentelemetry >= 0.5.3,+ opentelemetry >= 0.6.0, http-types, text, wai
src/OpenTelemetry/Network/Wai/Middleware.hs view
@@ -11,17 +11,20 @@ -- Semantic conventions for HTTP spans: -- https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/http.md -middleware :: Application -> Application-middleware app = \req sendResp -> do- withSpan "WAI handler" $ \sp -> do- case propagateFromHeaders w3cTraceContext (requestHeaders req) of- Just ctx -> setParentSpanContext sp ctx- _ -> pure ()- setTag sp "span.kind" "server"- setTag sp "component" "http"- setTag sp "http.method" $ requestMethod req- setTag sp "http.target" $ rawPathInfo req- setTag sp "http.flavor" $ BS8.pack $ show (httpVersion req)- app req $ \resp -> do- setTag sp "http.status_code" (BS8.pack $ show $ statusCode $ responseStatus resp)- sendResp resp+mkMiddleware :: IO (Application -> Application)+mkMiddleware = do+ requestCounter <- mkCounter "requests"+ return $ \app req sendResp -> do+ withSpan "WAI handler" $ \sp -> do+ add requestCounter 1+ case propagateFromHeaders w3cTraceContext (requestHeaders req) of+ Just ctx -> setParentSpanContext sp ctx+ _ -> pure ()+ setTag sp "span.kind" "server"+ setTag sp "component" "http"+ setTag sp "http.method" $ requestMethod req+ setTag sp "http.target" $ rawPathInfo req+ setTag sp "http.flavor" $ BS8.pack $ show (httpVersion req)+ app req $ \resp -> do+ setTag sp "http.status_code" (BS8.pack $ show $ statusCode $ responseStatus resp)+ sendResp resp