-
Notifications
You must be signed in to change notification settings - Fork 64
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
Make connections between theory and json #11
Comments
key insights for the above is that inbound and outbound requests are in different spans, and that spans that include "cs" can log an "sa" annotation of where they are going. This helps when the destination protocol isn't zipkin instrumented, such as mysql's protocol. |
copy/pasting a description of endpoint from brave. /**
* Indicates the network context of a service recording an annotation with two
* exceptions.
*
* When a BinaryAnnotation, and key is CLIENT_ADDR or SERVER_ADDR,
* the endpoint indicates the source or destination of an RPC. This exception
* allows zipkin to display network context of uninstrumented services, or
* clients such as web browsers.
*/ |
from gitter @gena01 found this helpful https://youtu.be/EP4prWJIWvc?t=364 basically, it starts describing a graph with the "cs" "cr" etc relationships. https://speakerdeck.com/sprsquish/zipkin-number-sfscala-meetupIn whatever section ends up holding the how-to on custom instrumentation, we should have a diagram so people can understand client vs server annotations. We'd be a-miss if we didn't make the diagrams indicate the reporting service because this is an extremely common concern. For example, today @chemicL asked about what the endpoint should be for zipkin annotations. The reason this question comes up is that a lot of old instrumentation got this wrong. If our diagram can re-enforce with labels, we can save time and frustration. For example, if a service is receiving a request ("sr"), the endpoint is the server doing the receiving. If a client is sending a request ("cs"), the endpoint is the client doing the sending. Finagle correctly refers to this as the "local endpoint", but the problem is that often people misconfigure it to be the remote one. We should try hard to make it clear that this is the thing logging (as the above brave docs say). This particular issue will go away once we have a new model as this whole dillema is caused by it being possible to have multiple endpoints in the same span. For example, if openzipkin/zipkin#939 is implemented, we would have no need for "cs" "cr" "sr" "ss", so no opportunity to misconfigure an endpoint for them. |
Here's an example used in sleuth. They put the annotations in the front page and also a diagram. https://github.com/spring-cloud/spring-cloud-sleuth The reason the diagram is there is that it is easier to figure out what things are when you look at one. Before we copy/paste that here :) we should know that tracers will make traces with different shapes. For example, In the above link, sleuth eagerly makes a local span after a server receives a request. In zipkin's homepage, there's a local span before the client send. Choices like these will happen and they aren't right or wrong. Whatever we make here will show just a basic example, libraries still need to document themselves and have maintenance. |
…sed (#11) Right now, people can't download zipkin anymore. This fixes it by using central until there is a better way. Note: This drops GPG verification, as the assumption about who signed the dist is no longer valid. This is better than scaring people. Note: There's no requirement to sign the md5 file, even if Bintray did that by default. ASF projects do not sign the md5.
I've found it useful to compare an image to json, when explaining how things work. If we had a doc page that links in practical terms an image to json, to keys in that json, I think we'd be in a better place.
Ex.
is from this json
And that json includes keys defined in a couple constants files like..
https://github.com/openzipkin/zipkin-java/blob/master/zipkin/src/main/java/zipkin/Constants.java
https://github.com/openzipkin/zipkin-java/blob/master/zipkin/src/main/java/zipkin/TraceKeys.java
And that json was produced by using the zipkin api, documented here:
http://zipkin.io/zipkin-api/#/
using commands like this:
The text was updated successfully, but these errors were encountered: