datadog-trace-proxy

command module
v0.0.0-...-9d3678a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 25, 2019 License: MIT Imports: 20 Imported by: 0

README

Datadog Trace Proxy

Listens for Datadog APM traces in msgpack format and does one or more of:

  • saves them in to a directory in JSON format
  • converts and forwards them on to an Appdash instance
  • converts and forwards them on to a Jaeger instance

Running:

$ datadog-trace-proxy \
    -jaeger.service my-service \
    -jaeger.collector http://localhost:14268/api/traces \
    -jaeger.agent localhost:6831

Configure any Datadog traced services to use the address of the trace proxy.

Configuring a Ruby/Rails application

Assuming you have datadog-trace-proxy listening on the same host on port 12345 you can specify the hostname and port of the Datadog agent to use:

Datadog.configure do |c|
    c.tracer(
        enabled: true,
        env: Rails.env,
        hostname: "localhost",
        port: 12345,
    )
    c.use(:rails, distributed_tracing: true)
    c.use(:http, distributed_tracing: true)
end

Notes:

The Jaeger exporting works pretty well. The span name and attribute mapping is a bit sparse and is only really coded for HTTP spans.

This doesn't support receiving Datadog traces in JSON format, just msgpack. I'd only recently noticed it was an option and haven't looked in to it.

The Datadog trace format was worked out via documentation and playing with what was received over HTTP. It may be missing portions, or have incorrectly formatted fields. It works well enough.

This doesn't have any tests, and could use some.

This isn't supported by or have anything official to do with Datadog.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL