Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/iand675/hs-opentelemetry
- Owner: iand675
- License: bsd-3-clause
- Created: 2021-10-07T15:28:38.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-01-09T20:04:13.000Z (13 days ago)
- Last Synced: 2025-01-13T04:02:26.721Z (10 days ago)
- Topics: haskell, honeycomb, logging, metrics, observability, opentelemetry, performance, prometheus, tracing
- Language: Haskell
- Homepage: https://iankduncan.com/projects/opentelemetry
- Size: 1.5 MB
- Stars: 84
- Watchers: 7
- Forks: 37
- Open Issues: 33
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
---
---
# 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.