packages feed

opentelemetry-lightstep 0.3.2 → 0.4.0

raw patch · 2 files changed

+24/−5 lines, 2 filesdep +typed-processdep ~opentelemetry

Dependencies added: typed-process

Dependency ranges changed: opentelemetry

Files

exe/eventlog-to-lightstep/Main.hs view
@@ -1,14 +1,18 @@ {-# LANGUAGE OverloadedStrings #-} +import Control.Concurrent.Async+import Control.Monad+import Data.Function import qualified Data.Text as T import OpenTelemetry.EventlogStreaming_Internal import OpenTelemetry.Exporter import OpenTelemetry.Lightstep.Config import OpenTelemetry.Lightstep.Exporter import System.Clock-import System.Environment (getArgs)+import System.Environment (getArgs, getEnvironment) import System.FilePath import System.IO+import System.Process.Typed import Text.Printf  main :: IO ()@@ -21,9 +25,23 @@       let service_name = T.pack $ takeBaseName path       exporter <- createLightstepSpanExporter lsConfig {lsServiceName = service_name}       origin_timestamp <- fromIntegral . toNanoSecs <$> getTime Realtime-      withFile path ReadMode (work origin_timestamp exporter)+      withFile path ReadMode (work StopOnEOF origin_timestamp exporter)       shutdown exporter       putStrLn "\nAll done.\n"+    ("run" : program : "--" : args') -> do+      printf "Streaming eventlog of %s to Lightstep...\n" program+      Just lsConfig <- getEnvConfig+      exporter <- createLightstepSpanExporter lsConfig {lsServiceName = T.pack program}+      let pipe = program <> "-opentelemetry.pipe"+      runProcess $ proc "mkfifo" [pipe]+      env <- (("GHCRTS", "-l -ol" <> pipe) :) <$> getEnvironment -- TODO(divanov): please append to existing GHCRTS instead of overwriting+      p <- startProcess (proc program args' & setEnv env)+      origin_timestamp <- fromIntegral . toNanoSecs <$> getTime Realtime+      restreamer <- async $ withFile pipe ReadMode (work SleepAndRetryOnEOF origin_timestamp exporter)+      waitExitCode p+      wait restreamer+      shutdown exporter+      putStrLn "\nAll done."     _ -> do       putStrLn "Usage:"       putStrLn ""
opentelemetry-lightstep.cabal view
@@ -2,7 +2,7 @@ name:                opentelemetry-lightstep description:         The OpenTelemetry Haskell Client (Lightstep exporter) https://opentelemetry.io category:            OpenTelemetry-version: 0.3.2+version: 0.4.0 license-file:        LICENSE license:             Apache-2.0 author:              Dmitry Ivanov@@ -53,7 +53,7 @@     http-client-tls,     http-types,     network,-    opentelemetry >= 0.3.0,+    opentelemetry >= 0.4.0,     opentelemetry-extra,     scientific,     stm,@@ -81,11 +81,12 @@     ghc-events >= 0.13.0,     http-client,     http-types,-    opentelemetry >= 0.3.0,+    opentelemetry >= 0.4.0,     opentelemetry-extra,     opentelemetry-lightstep,     splitmix,     text,+    typed-process,     unordered-containers   main-is: Main.hs   hs-source-dirs: exe/eventlog-to-lightstep