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 +6/−27
- opentelemetry-lightstep.cabal +1/−2
- src/OpenTelemetry/Lightstep/Exporter.hs +1/−11
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),