Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/iand675/hs-opentelemetry

OpenTelemetry support for the Haskell programming language
https://github.com/iand675/hs-opentelemetry

haskell honeycomb logging metrics observability opentelemetry performance prometheus tracing

Last synced: 3 days ago
JSON representation

OpenTelemetry support for the Haskell programming language

Awesome Lists containing this project

README

        

---



Support Haskell OpenTelemetry development

Alpha

---

# 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](spec-compliance.md)

Metrics and logs are not yet supported.

## Usage

If you're instrumenting a library directly, or as a wrapper, use the [hs-opentelemetry-api](api/) package.

If you're instrumenting an application, use the [hs-opentelemetry-sdk](sdk/) package.

## Examples

Fully instrumented application examples are available in the [examples](examples/) folder.

- [Yesod application](examples/yesod-minimal)

## Provided Instrumentation Libraries

| Package | OpenTelemetry Instrumentation |
|-------------------|-----------------------------------------------------------------------------------------|
| wai | [hs-opentelemetry-instrumentation-wai](instrumentation/wai) |
| yesod-core | [hs-opentelemetry-instrumentation-yesod](instrumentation/yesod) |
| persistent | [hs-opentelemetry-instrumentation-persistent](instrumentation/persistent) |
| esqueleto | [hs-opentelemetry-instrumentation-persistent](instrumentation/persistent) |
| persistent-mysql | [hs-opentelemetry-instrumentation-persistent-mysql](instrumentation/persistent-mysql) |
| postgresql-simple | [hs-opentelemetry-instrumentation-postgresql-simple](instrumentation/postgresql-simple) |
| http-client | [hs-opentelemetry-instrumentation-http-client](instrumentation/http-client) |
| http-conduit | [hs-opentelemetry-instrumentation-http-client](instrumentation/http-client) |
| conduit | [hs-opentelemetry-instrumentation-conduit](instrumentation/conduit) |

## Provided Exporters

| Exporter | OpenTelemetry Package | Module | Support |
|-----------|--------------------------------------------------|------------------------------|--------------------|
| OTLP | [hs-opentelemetry-exporter-otlp](exporters/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](propagators/w3c) | OpenTelemetry.Propagator.W3CBaggage | :white_check_mark: |
| W3CTraceContext | [hs-opentelemetry-propagator-w3c](propagators/w3c) | OpenTelemetry.Propagator.W3CTraceContext | :white_check_mark: |
| B3 | [hs-opentelemetry-propagator-b3](propagators/b3) | OpenTelemetry.Propagator.B3 | :white_check_mark: |
| Jaeger | [hs-opentelemetry-propagator-jaeger](propagators/jaeger) | OpenTelemetry.Propagator.Jaeger | Not implemented. |
| Datadog | [hs-opentelemetry-propagator-datadog](propagators/datadog) | OpenTelemetry.Propagator.Datadog | :white_check_mark: |

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md).

Maintainers:

- [Ian Duncan](https://github.com/iand675)

## PRs and Reviews

When creating a PR please follow the process [described
here](https://github.com/iand675/hs-opentelemetry/blob/main/CONTRIBUTING.md#how-to-structure-prs-to-get-expedient-reviews).

PRs will be automatically associated with the reviewers based on
[CODEOWNERS](.github/CODEOWNERS). PRs will be also automatically assigned to one of the
maintainers or approvers for facilitation.