Popularity
7.2
Stable
Activity
5.4
Growing
10
7
5
Monthly Downloads: 8
Programming language: Haskell
License: Apache License 2.0
Tags:
Tools
Latest version: v0.10.3
lightstep-haskell alternatives and similar packages
Based on the "Tools" category.
Alternatively, view lightstep-haskell alternatives based on common mentions on social networks and blogs.
-
cabal-db
Various cabal query commands wrapped in a simple CLI tool -
fswatcher
A simple file/directory watcher for Linux and macOS and other BSDs -
technique
Check, simulate, and run procedures written in the Technique programming language -
fswait
Wait and observe events on the filesystem for a path, with a timeout -
hsmodetweaks
Tool for generating .dir-locals.el for intero -
posplyu
Sleep tracker for X11, using XScreenSaver extension and manual input. -
binsm
binary files splitter and merger, makes working with offsets in your shell less painful -
newt
A simple text template instantiation tool. Newt creates boilerplate. -
Monadoro
A minimalistic CLI Pomodoro timer, based on a library of the same purpose.
Clean code begins in your IDE with SonarLint
Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.
Promo
www.sonarlint.org
Do you think we are missing an alternative of lightstep-haskell or a related project?
README
What is it?
A library for instrumenting your code and sending traces to LightStep.
How to use it?
Example usage:
{-# LANGUAGE OverloadedStrings #-}
import Control.Concurrent
import Control.Concurrent.Async
import LightStep.HighLevel.IO (LogEntryKey (..), addLog, currentSpanContext, getEnvConfig, setParentSpanContext, setTag, withSingletonLightStep, withSpan)
seriousBusinessMain :: IO ()
seriousBusinessMain = concurrently_ frontend backend >> threadDelay 1000000
where
frontend =
withSpan "RESTful API" $ do
threadDelay 10000
setTag "foo" "bar"
withSpan "Kafka" $ do
threadDelay 20000
setTag "foo" "baz"
threadDelay 30000
withSpan "GraphQL" $ do
threadDelay 40000
setTag "foo" "quux"
addLog Event "monkey-job"
addLog (Custom "foo") "bar"
withSpan "Mongodb" $ do
threadDelay 50000
setTag "lorem" "ipsum"
threadDelay 60000
withSpan "data->json" $ pure ()
withSpan "json->yaml" $ pure ()
withSpan "yaml->xml" $ pure ()
withSpan "xml->protobuf" $ pure ()
withSpan "protobuf->thrift" $ pure ()
withSpan "thrift->base64" $ pure ()
threadDelay 70000
backend =
withSpan "Background Data Science" $ do
threadDelay 10000
withSpan "Tensorflow" $ do
threadDelay 100000
setTag "learning" "deep"
withSpan "Torch" $ do
threadDelay 100000
setTag "learning" "very_deep"
withSpan "Hadoop" $ do
threadDelay 100000
setTag "learning" "super_deep"
withSpan "Parallel map reduce" $ do
result <- withSpan "Reduce" $ do
Just ctx <- currentSpanContext
(a, b) <- do
threadDelay 100000
concurrently
( withSpan "Calculate a" $ do
setParentSpanContext ctx
threadDelay 100000
return "Lorem "
)
( withSpan "Calculate b" $ do
setParentSpanContext ctx
threadDelay 100000
return "ipsum"
)
threadDelay 100000
pure (a <> b)
setTag "result" result
main :: IO ()
main = do
-- Construct a config from env variables
-- - LIGHTSTEP_ACCESS_TOKEN
-- - LIGHTSTEP_HOST (optional)
-- - LIGHTSTEP_PORT (optional)
-- - LIGHTSTEP_SERVICE (optional)
Just lsConfig <- getEnvConfig
withSingletonLightStep lsConfig seriousBusinessMain
putStrLn "All done"