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