Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vend/opendog
A hacky translation layer that converts Datadog traces into OpenTelemetry Protobufs for use with Jaeger All In One
https://github.com/vend/opendog
datadog datadog-apm jaeger jaegertracing opentelemetry opentelemetry-collector
Last synced: 9 days ago
JSON representation
A hacky translation layer that converts Datadog traces into OpenTelemetry Protobufs for use with Jaeger All In One
- Host: GitHub
- URL: https://github.com/vend/opendog
- Owner: vend
- License: mit
- Created: 2022-12-10T10:16:05.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-04-06T04:39:03.000Z (almost 2 years ago)
- Last Synced: 2024-06-21T16:57:08.832Z (8 months ago)
- Topics: datadog, datadog-apm, jaeger, jaegertracing, opentelemetry, opentelemetry-collector
- Language: Go
- Homepage:
- Size: 296 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Opendog
A hacky translation layer that converts Datadog traces into OpenTelemetry Protobufs for use with Jaegar
It's not perfect and there is a bunch of stuff to be implemented and tidied up but it's good enough to pipe Datadog traces locally into [Jaegar All In One](https://www.jaegertracing.io/docs/1.39/getting-started/#all-in-one)
## Usage
```console
$ go run .
2022/12/10 23:01:45 Opendog is listening on 127.0.0.1:8126
2022/12/10 23:01:46 Succesfully converted and forwarded 2 spans
2022/12/10 23:01:46 Succesfully converted and forwarded 2 spans
```Your Datadog APM client will automatically connect if it is running on localhost.
If you'd like to point a container at it using Docker, you can set the following environment variable against your container:
* Windows/macOS: `DD_AGENT_HOST=host.docker.internal`
* Linux: `DD_AGENT_HOST=172.17.0.1`Eventually it'll be packaged up properly, provide a docker container etc etc
## Variables
There are two environment variables that can be used for configuring Opendog
| Name | Default Value | Notes |
| ------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| `COLLECTOR_ADDRESS` | http://localhost:4318/v1/traces | The address to send gRPC payloads to. In this case, 4318 is the OTel endpoint used by Jaeger. |
| `PORT` | 8126 | The address to receive traces on. In this case, 8126 is the default traces port for the Datadog agent (aka statsd) |## Example of Datadog traces piped into Jaegar
![](./docs/example.png)
## Running Jaegar All In One
A reminder to myself because I'm going to forget
```console
$ docker run -d --name jaeger \
-e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \
-e COLLECTOR_OTLP_ENABLED=true \
-p 6831:6831/udp \
-p 6832:6832/udp \
-p 5778:5778 \
-p 16686:16686 \
-p 4317:4317 \
-p 4318:4318 \
-p 14250:14250 \
-p 14268:14268 \
-p 14269:14269 \
-p 9411:9411 \
jaegertracing/all-in-one:1.39
```