flachnetz / dd-zipkin-proxy Goto Github PK
View Code? Open in Web Editor NEWA simple zipkin to datadog proxy for datadogs new traces feature.
License: MIT License
A simple zipkin to datadog proxy for datadogs new traces feature.
License: MIT License
Hello.
I am trying out the dd-zipkin-proxy and running into problems with the zipkin spans not parsing.
I am sending some of my development zipkin traffic at the dd-zipkin-proxy and every span posted get's an http 400 back from dd-zipkin-proxy.
Here is an example on how to reproduce the problem.
Run the following in a container/node where dd-zipkin-proxy is listening on http 9411.
curl -H 'Content-Type: application/json' -H 'User-Agent: Java/1.8.0_92' -H 'Host: localhost:9411' -H 'Accept: text/html, image/gif, image/jpeg, *; q=.2, /; q=.2' --data-binary '[{"traceId":"068ccc7871f4ea41","id":"062c89c733c96011","name":"service__get__/monitor/check","timestamp":1478299155500000,"duration":18663,"annotations":[{"timestamp":1478299155500000,"value":"sr","endpoint":{"serviceName":"hello-world-one","ipv4":"10.0.2.181","port":9000}},{"timestamp":1478299155518663,"value":"ss","endpoint":{"serviceName":"hello-world-one","ipv4":"10.0.2.181","port":9000}}]}]' 'http://localhost:9411/api/v1/spans'
This will return the following
json: cannot unmarshal string into Go value of type int64
I think the error is coming from one of the zipkin libraries. When I look at https://github.com/openzipkin/zipkin-go-opentracing/blob/master/_thrift/gen-go/zipkincore/ttypes.go#L788-#L791 it looks like some fields in the struct are expected to be int64 where as our spans use strings for Id and TraceID.
When I look at zipkin spans in the zipkin repo I see that they use strings for ID and TraceID.
https://github.com/openzipkin/zipkin/blob/1d0e657e6f89b929a0be27db843a848611242b92/benchmarks/src/main/resources/span-client.json
Wondering if you have any ideas of what I'm doing wrong.
Hi, thanks for sharing the great project ๐
After hanging around in code and docs, I've noticed that there is the Sampled
flag in Zipkin b3-propagation format which tells services(including downstream ones) to whether sample spans or not, while dd-tracer-go/tracer.Span
seems to expose Sample
field which seems to be the equivalent of the flag in b3.
The "example" app in dd-zipkin-proxy, on the other hand, seems to always set true
to the Sample
field regardless of what was provided from incoming zipkin spans.
Would it make sense to inherit the value from the zipkin span to the dd span?
In certain cases it is needed to disable authentication, and it would be nice to somehow have a flag or convention to trigger that (either have a flag option or check if username or password are blank as an indicator)
One usecase is https://github.com/openzipkin/zipkin-browser-extension/blob/master/docs/README.md (there is no support for auth :( )
Zipkin's v2 format is a lot easier to parse (eventhough in reality it will take a while for instrumentation to start using it). Anyway, you might be interested: openzipkin/zipkin#1684
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.