packages feed

opentelemetry-extra 0.5.2 → 0.5.3

raw patch · 3 files changed

+32/−33 lines, 3 filesdep ~opentelemetry

Dependency ranges changed: opentelemetry

Files

opentelemetry-extra.cabal view
@@ -2,7 +2,7 @@ name:                opentelemetry-extra description:         The OpenTelemetry Haskell Client https://opentelemetry.io category:            OpenTelemetry-version: 0.5.2+version: 0.5.3 license-file:        LICENSE license:             Apache-2.0 author:              Dmitry Ivanov@@ -63,7 +63,7 @@     http-client,     http-client-tls,     http-types,-    opentelemetry >= 0.5.2,+    opentelemetry >= 0.5.3,     random >= 1.1,     scientific,     text-show,@@ -97,8 +97,9 @@     bytestring,     ghc-events,     hashable,-    opentelemetry >= 0.5.2,+    opentelemetry >= 0.5.3,     opentelemetry-extra,+    splitmix,     tasty,     tasty-discover,     tasty-hunit,@@ -120,7 +121,7 @@     filepath,     http-client,     http-client-tls,-    opentelemetry >= 0.5.2,+    opentelemetry >= 0.5.3,     opentelemetry-extra,     text,     typed-process@@ -139,7 +140,7 @@   build-depends:     base,     gauge >= 0.2.4,-    opentelemetry >= 0.5.2,+    opentelemetry >= 0.5.3,  executable eventlog-to-chrome   import: options@@ -149,7 +150,7 @@     base,     exceptions,     clock,-    opentelemetry >= 0.5.2,+    opentelemetry >= 0.5.3,     opentelemetry-extra,  executable eventlog-to-tracy@@ -160,7 +161,7 @@     base,     clock,     directory,-    opentelemetry >= 0.5.2,+    opentelemetry >= 0.5.3,     opentelemetry-extra,     process, @@ -172,7 +173,7 @@     base,     hashtables,     containers,-    opentelemetry >= 0.5.2,+    opentelemetry >= 0.5.3,     opentelemetry-extra,     hvega,     text
src/OpenTelemetry/EventlogStreaming_Internal.hs view
@@ -192,9 +192,6 @@               spans' = fmap (\live_span -> live_span {spanNanosecondsSpentInGC = (now - gcStartedAt) + spanNanosecondsSpentInGC live_span}) spans               st' = st {randomGen = randomGen', spans = spans'}            in (st', [sp], [Gauge now "gc" (fromIntegral $ now - gcStartedAt)])-        -- (HeapAllocated {allocBytes}, _, Just tid) ->-        --   (modifySpan tid (addEvent now "heap_alloc_bytes" (showT allocBytes)) st, [], [])-         (parseOpenTelemetry -> Just ev', _, fromMaybe 1 -> tid) ->           handleOpenTelemetryEventlogEvent ev' st (tid, now, m_trace_id)         _ -> (st, [], [])@@ -270,13 +267,7 @@                     spanNanosecondsSpentInGC = 0,                     spanParentId = parent                   }-           in ( st'-                  { spans = HM.insert span_id sp $ spans st,-                    thread2sid = HM.insert tid span_id $ thread2sid st-                  },-                [],-                []-              )+           in (createSpan span_id sp st', [], [])         Just span_id ->           let (st', sp) = emitSpan serial span_id st            in (st', [sp {spanFinishedAt = now}], [])@@ -298,17 +289,18 @@                     spanNanosecondsSpentInGC = 0,                     spanParentId = parent                   }-           in ( st'-                  { spans = HM.insert span_id sp (spans st),-                    thread2sid = HM.insert tid span_id (thread2sid st)-                  },-                [],-                []-              )+           in (createSpan span_id sp st', [], [])         Just span_id ->           let (st', sp) = emitSpan serial span_id st            in (st', [sp {spanOperation = operation, spanStartedAt = now, spanThreadId = tid}], []) +createSpan :: SpanId -> Span -> State -> State+createSpan span_id sp st =+  st+    { spans = HM.insert span_id sp (spans st),+      thread2sid = HM.insert (spanThreadId sp) span_id (thread2sid st)+    }+ emitSpan :: Word64 -> SpanId -> State -> (State, Span) emitSpan serial span_id st =   case (HM.lookup serial $ serial2sid st, HM.lookup span_id $ spans st) of@@ -362,9 +354,11 @@     }  inventSpanId :: Word64 -> State -> (State, SpanId)-inventSpanId serial st = (st {serial2sid = HM.insert serial sid (serial2sid st)}, sid)+inventSpanId serial st = (st', sid)   where-    sid = SId serial -- TODO: use random generator instead+    S {serial2sid, randomGen} = st+    (SId -> sid, randomGen') = R.nextWord64 randomGen+    st' = st {serial2sid = HM.insert serial sid serial2sid, randomGen = randomGen'}  parseText :: [T.Text] -> Maybe OpenTelemetryEventlogEvent parseText =@@ -416,7 +410,7 @@ lastStringP = (TE.decodeUtf8 . LBS.toStrict) <$> DBG.getRemainingLazyByteString  stringP :: Word32 -> DBG.Get T.Text-stringP len = TE.decodeUtf8  <$> DBG.getByteString (fromIntegral len)+stringP len = TE.decodeUtf8 <$> DBG.getByteString (fromIntegral len)  logEventBodyP :: MsgType -> DBG.Get OpenTelemetryEventlogEvent logEventBodyP msgType =
unit-tests/TestEventlogStreaming.hs view
@@ -14,9 +14,13 @@ import OpenTelemetry.Eventlog import OpenTelemetry.EventlogStreaming_Internal import OpenTelemetry.SpanContext+import qualified System.Random.SplitMix as R import Test.QuickCheck import TextShow +smgen0 :: R.SMGen+smgen0 = R.mkSMGen 0+ processEvents :: [Event] -> State -> (State, [Span], [Metric]) processEvents events st0 = foldl' go (st0, [], []) events   where@@ -31,7 +35,7 @@         [ Event 0 (logEventToUserBinaryMessage $ BeginSpanEv span_serial_number spanName) (Just 0),           Event 42 (logEventToUserBinaryMessage $ EndSpanEv span_serial_number) (Just 0)         ]-      (_end_state, emitted_spans, _emitted_metrics) = processEvents input_events (initialState 0 (error "randomGen seed"))+      (_end_state, emitted_spans, _emitted_metrics) = processEvents input_events (initialState 0 smgen0)    in length emitted_spans === length spans  prop_user_specified_span_ids_are_used :: [(SpanInFlight, SpanId, SpanName)] -> Property@@ -42,7 +46,7 @@           Event 1 (logEventToUserBinaryMessage $ SetSpanEv span_serial_number sid) (Just 0),           Event 42 (logEventToUserBinaryMessage $ EndSpanEv span_serial_number) (Just 0)         ]-      (_end_state, emitted_spans, _emitted_metrics) = processEvents input_events (initialState 0 (error "randomGen seed"))+      (_end_state, emitted_spans, _emitted_metrics) = processEvents input_events (initialState 0 smgen0)    in sort (map (\(_, x, _) -> x) spans) === sort (map spanId emitted_spans)  prop_user_specified_things_are_used :: [(SpanInFlight, SpanId, SpanName)] -> Property@@ -59,7 +63,7 @@               Event 4 (logEventToUserBinaryMessage $ EventEv span_serial_number (EventName "message") (EventVal $ showt sid')) (Just 0),               Event 42 (logEventToUserBinaryMessage $ EndSpanEv span_serial_number) (Just 0)             ]-          (_end_state, emitted_spans, _emitted_metrics) = processEvents input_events (initialState 0 (error "randomGen seed"))+          (_end_state, emitted_spans, _emitted_metrics) = processEvents input_events (initialState 0 smgen0)           corresponding_span_was_emitted (_serial, SId sid, _thread_id) =             emitted_spans               & filter@@ -90,7 +94,7 @@               Event 1 (logEventToUserBinaryMessage $ BeginSpanEv serial $ SpanName $ showt serial) (Just 0)             convert_end serial =               Event 42 (logEventToUserBinaryMessage $ EndSpanEv serial) (Just 0)-            (_end_state, emitted_spans, _emitted_metrics) = processEvents input_events (initialState 0 (error "randomGen seed"))+            (_end_state, emitted_spans, _emitted_metrics) = processEvents input_events (initialState 0 smgen0)             check_relationship (sp, psp) = spanParentId sp === Just (spanId psp)          in conjoin $ map check_relationship (zip (tail emitted_spans) emitted_spans) @@ -104,7 +108,7 @@           Event 4 (RunThread end_tid) (Just end_cap),           Event 5 (logEventToUserBinaryMessage $ EndSpanEv serial) (Just end_cap)         ]-      (end_state, emitted_spans, _emitted_metrics) = processEvents input_events (initialState 0 (error "randomGen seed"))+      (end_state, emitted_spans, _emitted_metrics) = processEvents input_events (initialState 0 smgen0)    in conjoin         [ length emitted_spans === 1,           spanOperation (head emitted_spans) === showt serial,