Awesome
<p align="center"> <a href="https://github.com/sponsors/iand675"> <img alt="Support Haskell OpenTelemetry development" src="https://img.shields.io/github/sponsors/iand675?label=support%20development&logo=haskell&style=for-the-badge"> </a> <img alt="Alpha" src="https://img.shields.io/badge/status-alpha-informational?style=for-the-badge&logo=data:image/png;base64,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"> </p>
OpenTelemetry for Haskell
This repository provides an implementation of the OpenTelemetry API and OpenTelemetry SDK for the Haskell programming language.
Implementation Status
This library still has a number of areas that don't fully cover the breadth of the OpenTelemetry specification. The core aspects of the tracing system are implemented, but you may view the detailed conformance checklist here
Metrics and logs are not yet supported.
Usage
If you're instrumenting a library directly, or as a wrapper, use the hs-opentelemetry-api package.
If you're instrumenting an application, use the hs-opentelemetry-sdk package.
Examples
Fully instrumented application examples are available in the examples folder.
Provided Instrumentation Libraries
Package | OpenTelemetry Instrumentation |
---|---|
wai | hs-opentelemetry-instrumentation-wai |
yesod-core | hs-opentelemetry-instrumentation-yesod |
persistent | hs-opentelemetry-instrumentation-persistent |
esqueleto | hs-opentelemetry-instrumentation-persistent |
persistent-mysql | hs-opentelemetry-instrumentation-persistent-mysql |
postgresql-simple | hs-opentelemetry-instrumentation-postgresql-simple |
http-client | hs-opentelemetry-instrumentation-http-client |
http-conduit | hs-opentelemetry-instrumentation-http-client |
conduit | hs-opentelemetry-instrumentation-conduit |
Provided Exporters
Exporter | OpenTelemetry Package | Module | Support |
---|---|---|---|
OTLP | hs-opentelemetry-exporter-otlp | OpenTelemetry.SpanExporter.OTLP | :white_check_mark: |
Jaeger | Not Implemented. | ||
Zipkin | Not Implemented | ||
Honeycomb | (use hs-opentelemetry-exporter-otlp) | :white_check_mark: |
Provided Propagators
Propagator | OpenTelemetry Package | Module | Support |
---|---|---|---|
W3CBaggage | hs-opentelemetry-propagator-w3c | OpenTelemetry.Propagator.W3CBaggage | :white_check_mark: |
W3CTraceContext | hs-opentelemetry-propagator-w3c | OpenTelemetry.Propagator.W3CTraceContext | :white_check_mark: |
B3 | hs-opentelemetry-propagator-b3 | OpenTelemetry.Propagator.B3 | :white_check_mark: |
Jaeger | hs-opentelemetry-propagator-jaeger | OpenTelemetry.Propagator.Jaeger | Not implemented. |
Datadog | hs-opentelemetry-propagator-datadog | OpenTelemetry.Propagator.Datadog | :white_check_mark: |
Contributing
See CONTRIBUTING.md.
Maintainers:
PRs and Reviews
When creating a PR please follow the process described here.
PRs will be automatically associated with the reviewers based on CODEOWNERS. PRs will be also automatically assigned to one of the maintainers or approvers for facilitation.