packages feed

opentelemetry-0.0.0.0: just-some-usage-code-that-must-compile/SomeUsageOfExplicitApi.hs

{-# LANGUAGE OverloadedStrings #-}

module SomeUsageOfExplicitApi where

import Control.Concurrent
import OpenTelemetry.Explicit
import OpenTelemetry.FileExporter

main :: IO ()
main = do
  exporter <- createFileSpanExporter "helloworld.trace"
  ot <- createOpenTelemetryClient exporter
  --
  mainSpan <- startRootSpan ot "main"
  threadDelay 10000
  warmUpSpan <- startChildSpan ot mainSpan "warm up the cache"
  threadDelay 5000
  addEvent ot warmUpSpan "still cold"
  threadDelay 10000
  addEvent ot warmUpSpan "warm now"
  setTag ot warmUpSpan "size" 9001
  endSpan ot warmUpSpan
  dataScienceSpan <- startChildSpan ot mainSpan "perform data science"
  threadDelay 100000
  setTag ot dataScienceSpan "reviews" 0
  endSpan ot dataScienceSpan
  threadDelay 10000
  endSpan ot mainSpan