hs-opentelemetry-api: OpenTelemetry API for use by libraries for direct instrumentation or wrapper packages.

[ bsd3, library, metrics, monitoring, observability, opentelemetry, telemetry ] [ Propose Tags ]
Versions [RSS],,,,,,,
Change log ChangeLog.md
Dependencies async, attoparsec, base (>=4.7 && <5), binary, bytestring, charset, clock, containers, ghc-prim, hashable, http-types, memory, mtl, template-haskell, text, thread-utils-context (>=0.2 && <0.3), unliftio-core, unordered-containers, vault, vector, vector-builder [details]
License BSD-3-Clause
Copyright 2021 Ian Duncan
Author Ian Duncan
Maintainer ian@iankduncan.com
Category OpenTelemetry, Telemetry, Monitoring, Observability, Metrics
Home page https://github.com/iand675/hs-opentelemetry#readme
Bug tracker https://github.com/iand675/hs-opentelemetry/issues
Source repo head: git clone https://github.com/iand675/hs-opentelemetry
Uploaded by IanDuncan at 2022-06-07T02:49:26Z
Distributions NixOS:
Downloads 323 total (55 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2022-06-07 [all 1 reports]

Readme for hs-opentelemetry-api-

[back to package description]

OpenTelemetry API for Haskell

This package provides an interface for instrumentors to use when instrumenting a library directly or implementing a wrapper API around an existing project.

The methods in this package can be safely called by libraries or end-user applications regardless of whether the application has registered an OpenTelemetry SDK configuration or not. When the OpenTelemetry SDK has not registered a tracer provider with any span processors, there API incurs minimal performance overhead, as most of the core interface performs no-ops.

In order to generate and export telemetry data, you will also need to use the OpenTelemetry Haskell SDK.

The inspiration of the OpenTelemetry project is to make every library and application observable out of the box by having them call the OpenTelemetry API directly. Until that happens, there is a need for a separate library which can inject this information. A library that enables observability for another library is called an instrumentation library. In the case of Haskell, instrumentation is currently entirely manual.

Visit the GitHub project for a list of provided instrumentation libraries.

Install Dependencies

Add hs-opentelemetry-api to your package.yaml or Cabal file.