From b9502897fdc2d47247e7c193c75105091556fac3 Mon Sep 17 00:00:00 2001 From: drlkf Date: Mon, 26 Oct 2026 00:15:02 +0100 Subject: [PATCH] fix: update opentelemetry sdk to 1 --- .../effectful-data-cache-opentelemetry.cabal | 2 +- .../package.yaml | 2 +- .../test/Effectful/Cache/OpenTelemetrySpec.hs | 19 ++-- stack.yaml | 15 +++ stack.yaml.lock | 100 +++++++++++++++++- 5 files changed, 126 insertions(+), 12 deletions(-) diff --git a/effectful-data-cache-opentelemetry/effectful-data-cache-opentelemetry.cabal b/effectful-data-cache-opentelemetry/effectful-data-cache-opentelemetry.cabal index b1e5a7a..a6ea201 100644 --- a/effectful-data-cache-opentelemetry/effectful-data-cache-opentelemetry.cabal +++ b/effectful-data-cache-opentelemetry/effectful-data-cache-opentelemetry.cabal @@ -38,7 +38,7 @@ library base >=4.7 && <5 , effectful-core >=2.3 && <3 , effectful-data-cache >=0.1.0.4 && <0.3 - , hs-opentelemetry-api ==0.3.* + , hs-opentelemetry-api ==1.0.* , text >=2.1 && <3 default-language: Haskell2010 diff --git a/effectful-data-cache-opentelemetry/package.yaml b/effectful-data-cache-opentelemetry/package.yaml index 90e23eb..c78f3eb 100644 --- a/effectful-data-cache-opentelemetry/package.yaml +++ b/effectful-data-cache-opentelemetry/package.yaml @@ -23,7 +23,7 @@ dependencies: - base >= 4.7 && < 5 - effectful-core >= 2.3 && < 3 - effectful-data-cache >= 0.1.0.4 && < 0.3 - - hs-opentelemetry-api >= 0.3 && < 0.4 + - hs-opentelemetry-api >= 1.0 && < 1.1 - text >= 2.1 && < 3 ghc-options: diff --git a/effectful-data-cache-opentelemetry/test/Effectful/Cache/OpenTelemetrySpec.hs b/effectful-data-cache-opentelemetry/test/Effectful/Cache/OpenTelemetrySpec.hs index 0f5fea7..3eac8f4 100644 --- a/effectful-data-cache-opentelemetry/test/Effectful/Cache/OpenTelemetrySpec.hs +++ b/effectful-data-cache-opentelemetry/test/Effectful/Cache/OpenTelemetrySpec.hs @@ -19,6 +19,7 @@ import OpenTelemetry.Trace ( shutdownTracerProvider, tracerOptions, ) +import OpenTelemetry.Trace.Core (SpanHot (..)) import Test.Hspec import Prelude hiding (lookup) @@ -26,21 +27,21 @@ import Prelude hiding (lookup) -- result plus every span that was exported. traced :: Eff '[Cache String Int, IOE] a - -> IO (a, [ImmutableSpan]) + -> IO (a, [SpanHot]) traced prog = do (processor, ref) <- inMemoryListExporter provider <- createTracerProvider [processor] emptyTracerProviderOptions let tracer = makeTracer provider "effectful-data-cache-test" tracerOptions r <- runEff . runCache @String @Int Nothing $ traceCache @String @Int tracer prog - shutdownTracerProvider provider - spans <- readIORef ref - pure (r, reverse spans) + _ <- shutdownTracerProvider provider Nothing + spans <- traverse (readIORef . spanHot) . reverse =<< readIORef ref + pure (r, spans) attr - :: ImmutableSpan + :: SpanHot -> Text -> Maybe Attribute -attr s = lookupAttribute (spanAttributes s) +attr s = lookupAttribute (hotAttributes s) spec :: Spec spec = do @@ -49,7 +50,7 @@ spec = do insert @String @Int "a" (1 :: Int) _ <- lookup @String @Int "a" purge @String @Int - fmap spanName spans `shouldBe` ["cache.insert", "cache.lookup", "cache.purge"] + fmap hotName spans `shouldBe` ["cache.insert", "cache.lookup", "cache.purge"] it "records hits and misses" $ do (_, spans) <- traced $ do @@ -57,7 +58,7 @@ spec = do _ <- lookup @String @Int "a" _ <- lookup @String @Int "nope" pure () - let hits = [attr s "cache.hit" | s <- spans, spanName s == "cache.lookup"] + let hits = [attr s "cache.hit" | s <- spans, hotName s == "cache.lookup"] hits `shouldBe` [ Just (AttributeValue (BoolAttribute True)) , Just (AttributeValue (BoolAttribute False)) @@ -69,7 +70,7 @@ spec = do insert @String @Int "b" (2 :: Int) _ <- size @String @Int pure () - [attr s "cache.size" | s <- spans, spanName s == "cache.size"] + [attr s "cache.size" | s <- spans, hotName s == "cache.size"] `shouldBe` [Just (AttributeValue (IntAttribute 2))] it "still returns the underlying result" $ do diff --git a/stack.yaml b/stack.yaml index da99845..e24e516 100644 --- a/stack.yaml +++ b/stack.yaml @@ -3,3 +3,18 @@ snapshot: lts-24.59 packages: - . - effectful-data-cache-opentelemetry +extra-deps: + - hs-opentelemetry-api-1.0.0.0 + - hs-opentelemetry-api-types-1.0.0.0 + - hs-opentelemetry-semantic-conventions-1.40.0.0 + - hs-opentelemetry-otlp-1.0.0.0 + - hs-opentelemetry-sdk-1.0.0.0 + - hs-opentelemetry-exporter-in-memory-1.0.0.0 + - hs-opentelemetry-exporter-handle-1.0.0.0 + - hs-opentelemetry-exporter-otlp-1.0.0.0 + - hs-opentelemetry-propagator-b3-1.0.0.0 + - hs-opentelemetry-propagator-datadog-1.0.0.0 + - hs-opentelemetry-propagator-jaeger-1.0.0.0 + - hs-opentelemetry-propagator-w3c-1.0.0.0 + - hs-opentelemetry-propagator-xray-1.0.0.0 + - thread-utils-context-0.4.1.1 diff --git a/stack.yaml.lock b/stack.yaml.lock index e3f9041..0b132f1 100644 --- a/stack.yaml.lock +++ b/stack.yaml.lock @@ -3,7 +3,105 @@ # For more information, please see the documentation at: # https://docs.haskellstack.org/en/stable/topics/lock_files -packages: [] +packages: +- completed: + hackage: hs-opentelemetry-api-1.0.0.0@sha256:9faf9d6abf556b7dbe393353eaca1088039593902dd05b859e3505ade80afd77,5993 + pantry-tree: + sha256: 4da8c0c5bd66724000861f08988007dc4505ca5c6d6fc7402063b7c9e5df5546 + size: 7222 + original: + hackage: hs-opentelemetry-api-1.0.0.0 +- completed: + hackage: hs-opentelemetry-api-types-1.0.0.0@sha256:28e1b64c5f20bf3e6ead77c3b40aadf9a5b0e07d197eeb462b987d391dd1f513,1211 + pantry-tree: + sha256: f55a01738bf7e5696bd014af0275d082605397926d12ef873dbd69d7f227fc12 + size: 334 + original: + hackage: hs-opentelemetry-api-types-1.0.0.0 +- completed: + hackage: hs-opentelemetry-semantic-conventions-1.40.0.0@sha256:7bb8cdd2d9facde4613c1b271b1a57ac218ed471b05943f6fcbf38b509913d24,2511 + pantry-tree: + sha256: 006366fa75093c79eba2d2b965644c1e6a263aace53fd38b27f574af3172b768 + size: 327 + original: + hackage: hs-opentelemetry-semantic-conventions-1.40.0.0 +- completed: + hackage: hs-opentelemetry-otlp-1.0.0.0@sha256:0ea827edde0a66b5c80c0d01a62665d58dbc2efde23412ed5e2bb9fb78571e64,3138 + pantry-tree: + sha256: 7d528da65ca5aab7f7c1a944ca6534dbb65c68b50a721a56524cf2945f3ee12d + size: 3286 + original: + hackage: hs-opentelemetry-otlp-1.0.0.0 +- completed: + hackage: hs-opentelemetry-sdk-1.0.0.0@sha256:461ed9f6e0c728e852162b08090ca251b6340fd87ec84994f596b32203dc9d83,6169 + pantry-tree: + sha256: 3b9fff4f8cf0a090dd9bc06d5226cf388d0f90d4a2b85c251beab304a22ff739 + size: 4446 + original: + hackage: hs-opentelemetry-sdk-1.0.0.0 +- completed: + hackage: hs-opentelemetry-exporter-in-memory-1.0.0.0@sha256:8f75b4e8484ba5d39f8a191ffe79ca7933305c9f7100ef91ac7fe091e2c252f7,1846 + pantry-tree: + sha256: 7e78c2062a1ae8787b3d66b40bc87fc4a2c527a43a3e3db71d0611cf2962dfad + size: 759 + original: + hackage: hs-opentelemetry-exporter-in-memory-1.0.0.0 +- completed: + hackage: hs-opentelemetry-exporter-handle-1.0.0.0@sha256:93f36c289d7aaa60795a32b30661da7daf257155922d811e9f1f77218dce5b26,1762 + pantry-tree: + sha256: 7d0448429033d3532877f9cfe5de3e90b7b1ccae32597851f8b53ddeb67feed7 + size: 658 + original: + hackage: hs-opentelemetry-exporter-handle-1.0.0.0 +- completed: + hackage: hs-opentelemetry-exporter-otlp-1.0.0.0@sha256:5dad7c5bce3d83fcd560fdb2749aebcfab6b535bbee7f54f82ccdc390da3268b,2456 + pantry-tree: + sha256: 4cb316109d353da40140781e9fdc3e1f3cea8f00d79fb1dd7e0b320801c66966 + size: 825 + original: + hackage: hs-opentelemetry-exporter-otlp-1.0.0.0 +- completed: + hackage: hs-opentelemetry-propagator-b3-1.0.0.0@sha256:9bd5d015f1e07472cf01efb1f130eb1805e75828f9f72b5ed730dde9fd1f3ca4,1697 + pantry-tree: + sha256: 5d5b13dc09de91f447c73e64e1c6ed9d446cb09b0b6cbb155c93ae10134436f4 + size: 486 + original: + hackage: hs-opentelemetry-propagator-b3-1.0.0.0 +- completed: + hackage: hs-opentelemetry-propagator-datadog-1.0.0.0@sha256:93c92b64a11cea551bf9fdf899cf30cbb4f3bb712e3dc0409517c2380dc2be65,3171 + pantry-tree: + sha256: 346587da340150b7d4504463eb8258459d57f45980c56d8f620a8d210a455167 + size: 783 + original: + hackage: hs-opentelemetry-propagator-datadog-1.0.0.0 +- completed: + hackage: hs-opentelemetry-propagator-jaeger-1.0.0.0@sha256:c3036258df0a56445e914f1f491daaea64ad3797a3879260058c5bbcdca78109,2241 + pantry-tree: + sha256: c15500c07c755d42634bcc3ba489ccb632d4a03dbb84f6b19ec93a88d8e1d4be + size: 535 + original: + hackage: hs-opentelemetry-propagator-jaeger-1.0.0.0 +- completed: + hackage: hs-opentelemetry-propagator-w3c-1.0.0.0@sha256:666cd59079141ea6d43fd7329f364ae6b5c38897487551c91d4d98891e79cccf,1988 + pantry-tree: + sha256: 12e0b78e9d6ed726bf6ea4d51957bae299bca806f02d5b61649eeafc160f2b44 + size: 865 + original: + hackage: hs-opentelemetry-propagator-w3c-1.0.0.0 +- completed: + hackage: hs-opentelemetry-propagator-xray-1.0.0.0@sha256:70c9fcbe6255f22da749b0b70c69f186a0eab596f47e499c33a386ac5a82aac2,2286 + pantry-tree: + sha256: 777283c45c69b786c4f97a913845e2ac50b9164f5422d6a9d3daa131a5eb80f6 + size: 479 + original: + hackage: hs-opentelemetry-propagator-xray-1.0.0.0 +- completed: + hackage: thread-utils-context-0.4.1.1@sha256:171dd454081641b594042d412874f3ebcd6d0345447a7a6581924aeafaf8c2fb,2274 + pantry-tree: + sha256: ae00c514eead68cd1ae6b8ee9866700669e9a31057fb31fc325e5255612ec6e1 + size: 632 + original: + hackage: thread-utils-context-0.4.1.1 snapshots: - completed: sha256: 0f728e30e843d7f00460ad56858b995a3b227fca683659c7df9f2fc3988a3ce1