packages feed

opentelemetry-lightstep 0.4.2 → 0.5.0

raw patch · 3 files changed

+8/−40 lines, 3 files

Files

exe/eventlog-to-lightstep/Main.hs view
@@ -1,18 +1,12 @@ {-# 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, getEnvironment)+import System.Environment (getArgs) import System.FilePath-import System.IO-import System.Process.Typed import Text.Printf  main :: IO ()@@ -23,26 +17,11 @@       printf "Sending %s to Lightstep...\n" path       Just lsConfig <- getEnvConfig       let service_name = T.pack $ takeBaseName path-      exporter <- createLightstepSpanExporter lsConfig {lsServiceName = service_name}-      origin_timestamp <- fromIntegral . toNanoSecs <$> getTime Realtime-      work origin_timestamp exporter $ EventLogFilename path-      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 (\handle ->-          work origin_timestamp exporter $ EventLogHandle handle SleepAndRetryOnEOF)-      waitExitCode p-      wait restreamer-      shutdown exporter+      span_exporter <- createLightstepSpanExporter lsConfig {lsServiceName = service_name}+      let metric_exporter = noopExporter+      exportEventlog span_exporter metric_exporter path+      shutdown span_exporter+      shutdown metric_exporter       putStrLn "\nAll done."     _ -> do       putStrLn "Usage:"
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.4.2+version: 0.5.0 license-file:        LICENSE license:             Apache-2.0 author:              Dmitry Ivanov@@ -90,4 +90,3 @@     unordered-containers   main-is: Main.hs   hs-source-dirs: exe/eventlog-to-lightstep-
src/OpenTelemetry/Lightstep/Exporter.hs view
@@ -2,25 +2,15 @@  module OpenTelemetry.Lightstep.Exporter where -import Control.Concurrent.Async-import Control.Concurrent.STM import Control.Monad.IO.Class-import Data.Aeson-import qualified Data.HashMap.Strict as HM-import Data.Scientific-import qualified Data.Text as T-import Network.HTTP.Client-import Network.HTTP.Client.TLS-import Network.HTTP.Types import OpenTelemetry.Common import OpenTelemetry.Exporter import OpenTelemetry.Lightstep.Config-import OpenTelemetry.SpanContext import OpenTelemetry.ZipkinExporter import Text.Printf  createLightstepSpanExporter :: MonadIO m => LightstepConfig -> m (Exporter Span)-createLightstepSpanExporter cfg@(LightstepConfig {..}) = liftIO do+createLightstepSpanExporter LightstepConfig {..} = liftIO do   let zcfg =         ZipkinConfig           { zEndpoint = printf "https://%s:%d/api/v2/spans" lsHostName (fromIntegral lsPort :: Int),