packages feed

opentelemetry-wai 0.2.0 → 0.3.0

raw patch · 2 files changed

+12/−13 lines, 2 filesdep +bytestringdep ~opentelemetryPVP ok

version bump matches the API change (PVP)

Dependencies added: bytestring

Dependency ranges changed: opentelemetry

API changes (from Hackage documentation)

Files

opentelemetry-wai.cabal view
@@ -2,7 +2,7 @@ name:                opentelemetry-wai description:         OpenTelemetry middleware for wai category:            OpenTelemetry-version:             0.2.0+version:             0.3.0 license-file:        LICENSE license:             Apache-2.0 author:              Dmitry Ivanov@@ -41,7 +41,6 @@     -Wincomplete-record-updates     -Wincomplete-uni-patterns     -Wpartial-fields-    -Wredundant-constraints     -fhide-source-paths     -ferror-spans     -freverse-errors@@ -50,7 +49,8 @@   import: options   build-depends:     base >= 4.12 && < 5,-    opentelemetry,+    bytestring,+    opentelemetry >= 0.3.0,     http-types,     text,     wai
src/OpenTelemetry/Network/Wai/Middleware.hs view
@@ -2,11 +2,10 @@  module OpenTelemetry.Network.Wai.Middleware where -import qualified Data.Text as T-import qualified Data.Text.Encoding as T+import qualified Data.ByteString.Char8 as BS8 import Network.HTTP.Types import Network.Wai-import OpenTelemetry.Implicit+import OpenTelemetry.Eventlog import OpenTelemetry.Propagation  -- Semantic conventions for HTTP spans:@@ -15,14 +14,14 @@ middleware :: Application -> Application middleware app = \req sendResp -> do   withSpan "WAI handler" $ do-    case extractSpanContextFromHeaders (requestHeaders req) of+    case propagateFromHeaders w3cTraceContext (requestHeaders req) of       Just ctx -> setParentSpanContext ctx       _ -> pure ()-    setTag "span.kind" ("server" :: T.Text)-    setTag "component" ("http" :: T.Text)-    setTag "http.method" $ T.decodeUtf8 (requestMethod req)-    setTag "http.target" $ T.decodeUtf8 (rawPathInfo req)-    setTag "http.flavor" $ show (httpVersion req)+    setTag "span.kind" "server"+    setTag "component" "http"+    setTag "http.method" $ requestMethod req+    setTag "http.target" $ rawPathInfo req+    setTag "http.flavor" $ BS8.pack $ show (httpVersion req)     app req $ \resp -> do-      setTag "http.status_code" (statusCode $ responseStatus resp)+      setTag "http.status_code" (BS8.pack $ show $ statusCode $ responseStatus resp)       sendResp resp