Merge pull request #24 from abesto/expand-b3-sampled
Explain "Sampled" header as discussed in #20
diff --git a/_data/existing_instrumentations.yml b/_data/existing_instrumentations.yml
index 12ce2a7..6d76da3 100644
--- a/_data/existing_instrumentations.yml
+++ b/_data/existing_instrumentations.yml
@@ -1,9 +1,21 @@
+- language: JavaScript
+ library: >-
+ [zipkin-js](https://github.com/openzipkin/zipkin-js)
+ framework: >-
+ [cujoJS](http://cujojs.com), [express](http://expressjs.com/)
+ propagation: Http (B3)
+ transports: >-
+ [Kafka \\| Scribe](https://github.com/openzipkin/zipkin-js#transports)
+ sampling: >-
+ Yes
+ notes: >-
+ Uses continuation-local-storage under to hood, so you don't have to pass around an explicit context
+
- language: Python
library: >-
[pyramid_zipkin](https://github.com/Yelp/pyramid_zipkin)
framework: >-
[Pyramid](http://docs.pylonsproject.org/projects/pyramid/en/latest/)
- Http (B3)
propagation: Http (B3)
transports: >-
[Kafka \\| Scribe](http://pyramid-zipkin.readthedocs.org/en/latest/configuring_zipkin.html#zipkin-transport-handler)
@@ -15,7 +27,7 @@
library: >-
[brave](https://github.com/openzipkin/brave)
framework: Jersey, RestEASY, JAXRS2, Apache HttpClient, Mysql
- propagation: Http (B3)
+ propagation: Http (B3), gRPC (B3)
transports: Http, Kafka, Scribe
sampling: "Yes"
notes: Java 6 or higher
@@ -65,6 +77,14 @@
transports: Kafka
sampling: "Yes"
+- language: Go
+ library: >-
+ [Go kit](https://github.com/go-kit/kit)
+ framework: Go kit
+ propagation: Http (B3), gRPC (B3)
+ transports: Kafka, Scribe
+ sampling: "Yes"
+
- language: Scala
library: >-
[akka-tracing](https://github.com/levkhomich/akka-tracing)
@@ -74,3 +94,13 @@
transports: Scribe
sampling: "Yes"
notes: Java 6+, Scala 2.10+, activator templates for [Akka](https://github.com/levkhomich/activator-akka-tracing) and [Play](https://github.com/levkhomich/activator-play-tracing)
+
+- language: Java
+ library: >-
+ [Dropwizard Zipkin](https://github.com/smoketurner/dropwizard-zipkin)
+ framework: >-
+ [Dropwizard](http://www.dropwizard.io)
+ propagation: Http (B3), Thrift
+ transports: Http, Scribe
+ sampling: "Yes"
+ notes: Java 7 or higher
diff --git a/google869265c574186afd.html b/google869265c574186afd.html
new file mode 100644
index 0000000..fe8df2f
--- /dev/null
+++ b/google869265c574186afd.html
@@ -0,0 +1 @@
+google-site-verification: google869265c574186afd.html
\ No newline at end of file
diff --git a/graphs/architecture/build.sh b/graphs/architecture/build.sh
new file mode 100755
index 0000000..4596610
--- /dev/null
+++ b/graphs/architecture/build.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+dot source.dot -Tpng -o graph.png
diff --git a/graphs/architecture/graph.png b/graphs/architecture/graph.png
new file mode 100644
index 0000000..1d80b0d
--- /dev/null
+++ b/graphs/architecture/graph.png
Binary files differ
diff --git a/graphs/architecture/source.dot b/graphs/architecture/source.dot
new file mode 100644
index 0000000..dd1d162
--- /dev/null
+++ b/graphs/architecture/source.dot
@@ -0,0 +1,42 @@
+digraph Architecture {
+ node[fontsize=12, height=0.35, fontname=Helvetica, shape=rect];
+ fontname=Helvetica;
+
+ subgraph cluster_your_app {
+ color=white;
+ node[fillcolor="#DDDDFF", style=filled];
+
+ client[label="Instrumented client\n(Reporter)"];
+ uninstrumented_server[label="Non-instrumented server"];
+ instrumented_server[label="Instrumented server\n(Reporter)"];
+
+ client -> instrumented_server;
+ client -> uninstrumented_server;
+ }
+
+ transport [label=Transport];
+
+ subgraph cluster_zipkin {
+ label=Zipkin;
+ style=dashed;
+ node[fillcolor="#C3FF68", style=filled];
+
+ collector[label=Collector];
+ storage[label=Storage];
+ api[label=API];
+ ui[label=UI];
+
+ collector -> storage;
+
+ api -> storage [dir=back];
+ ui -> api [dir=back];
+ }
+
+ database[label=Database];
+ storage -> database [style=dotted];
+
+ instrumented_server -> transport [color="#7ED0D6"];
+ client -> transport [color="#7ED0D6"];
+ transport -> collector;
+
+}
diff --git a/pages/instrumenting.md b/pages/instrumenting.md
index 187edfd..138a346 100644
--- a/pages/instrumenting.md
+++ b/pages/instrumenting.md
@@ -11,10 +11,12 @@
Overview
=======
+
To instrument a library, you'll need to understand and create the following elements:
+
1. Core data structures - the information that is collected and sent to Zipkin
1. Trace identifiers - what tags for the information are needed so it can be reassembled in a logical order by Zipkin
- * Generating identifiers - how to generate these Ids and which ids should be inherited
+ * Generating identifiers - how to generate these IDs and which IDs should be inherited
* Communicating trace information - additional information that is sent to Zipkin along with the traces and their IDs.
@@ -37,7 +39,7 @@
processing it. The difference between this and `cs` will be combination of
network latency and clock jitter.
* **ss** - Server Send: The server has completed processing and has sent the
- request back to the client. The difference between this and `ss` will be the
+ request back to the client. The difference between this and `sr` will be the
amount of time it took the server to process the request.
* **cr** - Client Receiver: The client has received the response from the server.
This sets the end of the span. The RPC is considered complete when this