Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add the query API #28

Open
marcingrzejszczak opened this issue Feb 15, 2017 · 6 comments
Open

Add the query API #28

marcingrzejszczak opened this issue Feb 15, 2017 · 6 comments

Comments

@marcingrzejszczak
Copy link

Hi! It would be really nice for the collector to provide the query API. Without this it's difficult to programmatically verify whether the stackdriver has received the spans properly.

In Sleuth I'm writing end to end tests (https://github.com/marcingrzejszczak/stackdriver-e2e) that are starting the collector, 2 applications and then are checking if after curling a request to one of them the Stackdriver has a proper trace in it. I wanted to do the query via a collector but there's no query api available since the span store in the stackdriver Zipkin collector doesn't allow reads.

Related issue - spring-cloud/spring-cloud-sleuth#493

@codefromthecrypt
Copy link
Member

I suppose that specifically, you are asking to flesh out StackdriverStorageComponent to include the read-back (query) api.

@kevinmdavis
Copy link
Contributor

It would be nice for us to be able to support the entire Zipkin API, however there's a bit of a challenge with translating between the Zipkin and Stackdriver data models for supporting the query API.

In order to work correctly with Stackdriver's single-host spans, we currently split Zipkin multi-host spans into multiple Stackdriver single-host spans by rewriting some of the Zipkin span ID's. If we want the read and write API's to be symmetric, we'd likely need to store additional information (such as the original Zipkin ID) in the Stackdriver Trace in order to be able to perform the inverse operation when reading Zipkin traces.

Another alternative would be to not do any advanced translation on the read API and always return single-host Zipkin spans. This would make read and write asymmetric, but would be simpler to implement.

@adriancole Any thoughts?

In the meantime, you can also list Traces by using the Stackdriver Trace API directly, however this uses the Stackdriver data model, not the Zipkin data model: https://cloud.google.com/trace/api/reference/rest/v1/projects.traces/list

@codefromthecrypt
Copy link
Member

starting with simple readbacks is probably best (even if asymetric) For example, it would progress things. We'd eventually need to address some translation/folding, but at worst case that could be localized in a test support class.

@marcingrzejszczak
Copy link
Author

Any luck with this? :P

@kevinmdavis
Copy link
Contributor

Not yet, but pull requests are welcome!

codefromthecrypt pushed a commit to openzipkin-attic/docker-zipkin-gcp that referenced this issue Feb 26, 2018
@dpanyam
Copy link

dpanyam commented Aug 19, 2020

Hello All,
I have a Node JS express app hosted on Google Cloud ( AppEngine standard to be specific). I want to forward traces from the native Cloud Tracing service available in Google Cloud to a Zipkin server that I set up to run as a docker container inside a VM in GCP. At present is it possible to forward traces from Cloud Tracing to Zipking?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants