!      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NonetracingA span's sampling decision.tracingA part of a trace. tracingMetadata attached to a span. tracingA relationship between spans.There are currently two types of references, both of which model direct causal relationships between a child and a parent. More background on references is available in the opentracing specification:  Ihttps://github.com/opentracing/specification/blob/master/specification.md. tracing  references imply that the parent span depends on the child span in some capacity. Note that this reference type is only valid within a single trace. tracing5If the parent does not depend on the child, we use a   reference.tracingnA fully qualified span identifier, containing both the ID of the trace the span belongs to and the span's ID.tracingA 64-bit span identifier.tracingA 128-bit trace identifier.tracingThe type of annotations' keys.JKeys starting with double underscores are reserved and should not be used.tracingThe name of a span.tracingHex-encodes a trace ID.tracing.Decodes a traced ID from a hex-encoded string.tracingGenerates a random trace ID.tracingHex-encodes a span ID.tracing,Decodes a span ID from a hex-encoded string.tracingGenerates a random span ID.tracing$Returns whether the span is sampled.tracing+Returns whether the span has debug enabled.# None8HV_kILtracing4An action to determine how a span should be sampled. tracingA span builder.  has an  instance, producing a span with the given string as name, no additional references, tags, or baggages. This allows convenient creation of spans via the OverloadedStrings pragma."tracingName of the generated span.#tracingThe trace ID of the generated span. If unset, the active span's trace ID will be used if present, otherwise a new ID will be generated.$tracingFThe ID of the generated span, otherwise the ID will be auto-generated.%tracingSpan references.&tracingInitial set of tags.'tracingSpan context baggages.(tracingHow the span should be sampled. If unset, the active's span sampling will be used if present, otherwise the span will not be sampled.)tracing8A monad capable of generating and modifying trace spans.0There are currently two instances of this monad:&, which emits spans for each trace in ( and is meant to be used in production.f, where tracing is a no-op and allows testing traced functions without any overhead or complex setup.*tracing/Trace an action, wrapping it inside a new span.+tracing'Extracts the currently active span, or # if the action is not being traced.,tracing0Adds information to the active span, if present.-tracing Returns a  9 with the given input as name and all other fields empty..tracing Returns a  which always samples./tracing Returns a  which never samples.0tracingReturns a debug !. Debug spans are always sampled.1tracing Returns a ' which samples a span iff the input is . It is equivalent to: 9sampledWhen b = if b then alwaysSampled else neverSampled2tracing Returns a  which randomly samples spans.3tracingStarts a new trace, customizing the span builder. Note that the sampling input will override any sampling customization set on the builder.4tracingStarts a new trace. For performance reasons, it is possible to customize how frequently tracing information is collected. This allows fine-grain control on the overhead induced by tracing. For example, you might only want to sample 1% of a very actively used call-path with sampledWithProbability 0.01.5tracingExtends a trace, same as 6" but also customizing the builder.6tracingExtends a trace: the active span's ID will be added as a reference to a newly created span and both spans will share the same trace ID. If no span is active, 6 is a no-op.7tracing$Generates a tag value from a double.8tracing6Generates a 64-bit integer tag value from any integer.9tracing#Generates a Unicode text tag value.:tracingGenerates a log value with the time of writing as timestamp. Note that the value may be written later than it is created. For more control on the timestamp, use ;.;tracing)Generates a log value with a custom time.<  !"#$%&'()*+,-./0123456789:;<  )*+, !"#$%&'(-4365./210 789:;None=?@AM_`FtracingA span generation monad.Gtracing A tracer is a producer of spans.More specifically, a tracer:runs ) actions via T,-transparently collects their generated spans,-and outputs them to a channel (available via S).oThese samples can then be consumed independently, decoupling downstream span processing from their production.Htracing,A sampled span, and its associated metadata.JtracingThe sampled span.Ktracing Tags collected during this span.Ltracing?Logs collected during this span, sorted in chronological order.MtracingThe time the span started at.NtracingThe span's duration.OtracingA collection of span logs.PtracingA collection of span tags.QtracingCreates a new G.RtracingPReturns the number of spans currently in flight (started but not yet completed).StracingoReturns all newly completed spans' samples. The samples become available in the same order they are completed.TtracingTrace an action, sampling its generated spans. This method is thread-safe and can be used to trace multiple actions concurrently.Unless you are implementing a custom span publication backend, you should not need to call this method explicitly. Instead, prefer to use the backend's functionality directly (e.g. 3 for Zipkin). To ease debugging in certain cases,  is also available.FGHIJKLMNOPQRSTGQTFSHIJKLMNPORNonek]tracingRuns a F action, returning any collected samples alongside its output. The samples are sorted chronologically by completion time (e.g. the head is the first span to complete).Spans which start before the action returns are guaranteed to be collected, even if they complete after (in this case collection will block until their completion). More precisely, ]^ will return the first time there are no pending spans after the action is done. For example: collectSpanSamples $ rootSpan alwaysSampled "parent" $ do forkIO $ childSpan "child" $ threadDelay 2000000 -- Asynchronous 2 second child span. threadDelay 1000000 -- Returns after one second, but the child span will still be sampled.]]NoneMP_k(*^tracingSInformation about a hosted service, included in spans and visible in the Zipkin UI.`tracingThe endpoint's service name.atracing-The endpoint's port, if applicable and known.btracingThe endpoint's IPv4 address.ctracingThe endpoint's IPv6 address.dtracing<Exportable trace information, used for cross-process traces.ftracingThe span's trace ID.gtracingThe span's ID.htracingWhether the span was sampled.itracingLWhether the span has debug enabled (which implies that the span is sampled).jtracingThe span's parent's ID, or  for root spans.ktracingA Zipkin trace publisher.HAll publisher functionality is thread-safe. In particular it is safe to v concurrently with u , and/or ur multiple actions concurrently. Note also that all sampled spans are retained in memory until they are published.ltracingk creation settings.ntracing*The Zipkin server's hostname, defaults to  localhost if unset.otracing8The port the Zipkin server is listening on, defaults to 9411 if unset.ptracing/Local endpoint included in all published spans.qtracingJAn optional HTTP manager to use for publishing spans on the Zipkin server.rtracingWIf set to a positive value, traces will be flushed in the background every such period.stracingCreates empty l&. You will typically use this (or the H instance) as starting point to only fill in the fields you care about: ;let settings = defaultSettings { settingsPort = Just 2222 }ttracing Creates a k publisher for the input l.utracingRuns a Fw action, sampling spans appropriately. Note that this method does not publish spans on its own; to do so, either call v! manually or specify a positive r to publish in the background.vtracing0Flushes all complete spans to the Zipkin server.wtracingConvenience method to start a k8, run an action, and publish all spans before returning.xtracingAdds a tag to the active span.ytracingBAdds a tag to a builder. This is a convenience method to use with 5, for example: 3childSpanWith (addTag "key" "value") "run" $ actionjNote that there is not difference with adding the tag after the span. So the above code is equivalent to: -childSpan "run" $ tag "key" "value" >> actionztracing;Adds an inherited tag to a builder. Unlike a tag added via y , this tag:$will be inherited by all the span's local children.,can only be added at span construction time.:For example, to add an ID tag to all spans inside a trace: KrootSpanWith (addInheritedTag "id" "abcd-efg") alwaysSampled "run" $ action{tracing1Annotates the active span using the current time.|tracing,Annotates the active span at the given time.}tracingSerializes the dV to multiple headers, suitable for HTTP requests. All byte-strings are UTF-8 encoded.~tracingDeserializes the d from multiple headers.tracingSerializes the dF to a single UTF-8 encoded header value. It will typically be set as  Ghttps://github.com/apache/incubator-zipkin-b3-propagation#single-header b3 header.tracing*Deserializes a single header value into a d.tracingGenerates a child span with CLIENT5 kind. This function also provides the corresponding d (or  if tracing is inactive) so that it can be forwarded to the server. For example, to emit an HTTP request and forward the trace information in the headers: import Network.HTTP.Simple clientSpan "api-call" $ \(Just b3) -> $ do res <- httpBS "http://host/api" & addRequestHeader "b3" (b3ToHeaderValue b3) process res -- Do something with the response.tracingjGenerates a client span, optionally modifying the span's builder. This can be useful in combination with 4 if the remote server does not have tracing enabled.tracingGenerates a child span with PRODUCER5 kind. This function also provides the corresponding d. so that it can be forwarded to the consumer.tracingGenerates a child span with SERVER kind. The client's d8 should be provided as input, for example parsed using ~.tracingjGenerates a server span, optionally modifying the span's builder. This can be useful in combination with 4 if the remote client does not have tracing enabled.tracingGenerates a child span with CONSUMER kind. The producer's d should be provided as input.tracingAn empty endpoint.tracingAdds a remote endpoint to a builder. This is mostly useful when generating cross-process spans where the remote endpoint is not already traced (otherwise Zipkin will associate the spans correctly automatically). For example when emitting a request to an outside server: 1clientSpanWith (addEndpoint "outside-api") -- ...tracing7Generates an endpoint with the given string as service.tracing5Generates settings with the given string as hostname.+^_`abcdefghijklmnopqrstuvwxyz{|}~+lmnopqrs^_`abcktuvwdefghij}~xyz{| None )./01246k )4./1206k     !"#$%&&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLLMNOPQRSTUVWXYZ[\]^_``abcdeefghijkllmnopqrstuvwxyz{|}~%tracing-0.0.4.0-zJnpALkQ118SUdDkEVaq5Control.Monad.Trace.ClassControl.Monad.TraceMonitor.Tracing.LocalMonitor.Tracing.ZipkinControl.Monad.Trace.InternalTraceTruncollectSpanSamplesMonitor.TracingSamplingDecisionAlwaysNeverDebugSpanspanName spanContextspanReferencesspanSamplingDecisionValue ReferenceChildOf FollowsFromContextcontextTraceID contextSpanIDcontextBaggagesSpanIDTraceIDKeyName encodeTraceID decodeTraceID encodeSpanID decodeSpanID spanIsSampled spanIsDebugSamplingPolicyBuilder builderNamebuilderTraceID builderSpanIDbuilderReferences builderTagsbuilderBaggagesbuilderSamplingPolicy MonadTracetrace activeSpan addSpanEntrybuilder alwaysSampled neverSampled debugEnabled sampledWhensampledWithProbability rootSpanWithrootSpan childSpanWith childSpantagDoubleValue tagInt64Value tagTextValuelogValue logValueAt$fIsStringBuilder$fMonadTraceIdentity$fMonadTraceWriterT$fMonadTraceWriterT0$fMonadTraceStateT$fMonadTraceStateT0$fMonadTraceRWST$fMonadTraceRWST0$fMonadTraceReaderT$fMonadTraceExceptTTracerSample sampleSpan sampleTags sampleLogs sampleStartsampleDurationLogsTags newTracerpendingSpanCount spanSamples runTraceT$fMonadUnliftIOTraceT$fMonadTraceTraceT$fMonadReaderrTraceT$fFunctorTraceT$fApplicativeTraceT $fMonadTraceT$fMonadIOTraceT$fMonadTransTraceTEndpointendpointService endpointPort endpointIPv4 endpointIPv6B3 b3TraceIDb3SpanID b3IsSampled b3IsDebugb3ParentSpanIDZipkinSettingssettingsHostname settingsPortsettingsEndpointsettingsManagersettingsPublishPerioddefaultSettingsnewpublishwithtagaddTagaddInheritedTagannotate annotateAt b3ToHeaders b3FromHeadersb3ToHeaderValueb3FromHeaderValue clientSpanclientSpanWithproducerSpanWith serverSpanserverSpanWithconsumerSpanWithdefaultEndpoint addEndpoint$fToJSONEndpoint$fIsStringEndpoint$fIsStringSettings$fToJSONZipkinAnnotation$fToJSONZipkinSpan$fEqB3$fOrdB3$fShowB3 $fEqEndpoint $fOrdEndpoint$fShowEndpoint randomTraceID randomSpanIDTagValueLogValuebase Data.StringIsStringghc-prim GHC.TypesIOData.Functor.IdentityIdentity GHC.MaybeNothingTrue