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