https://github.com/linkerd/linkerd-zipkin
linkerd telemeter plugins for writing trace data to zipkin
https://github.com/linkerd/linkerd-zipkin
Last synced: 3 months ago
JSON representation
linkerd telemeter plugins for writing trace data to zipkin
- Host: GitHub
- URL: https://github.com/linkerd/linkerd-zipkin
- Owner: linkerd
- Created: 2017-02-08T03:31:37.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2022-05-27T18:11:46.000Z (about 4 years ago)
- Last Synced: 2025-05-27T07:04:27.602Z (about 1 year ago)
- Language: Scala
- Size: 51.8 KB
- Stars: 28
- Watchers: 14
- Forks: 17
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# linkerd-zipkin
This repo contains linkerd telemeters for writing tracing data to Zipkin, using
linkerd's plugin interface and Zipkin's [finagle-zipkin](
https://github.com/openzipkin/zipkin-finagle) library.
## Building
### Plugin jar
To build a plugin jar, run:
```bash
$ ./sbt assembly
```
That will build a linkerd-zipkin plugin jar in `plugins/`. Put that jar in
linkerd's class path to make the telemeters available. Further information on
installing plugins is available in the linkerd
[plugin documentation](https://linkerd.io/in-depth/plugin/#installing).
### Docker
If you're using Docker, this repo provides a [Dockerfile](Dockerfile) that you
can use to layer in the plugin jar on top of the linkerd base image. To build,
run:
```bash
$ ./sbt assembly
$ docker build -t linkerd-zipkin:latest .
```
That will build a docker image called `linkerd-zipkin:latest`, which runs
linkerd and autoloads the telemeters from this repo. You can tag that image
as needed and push to your own docker repo for deployment.
## Usage
Two telemeters are provided, for writing to Zipkin with different transports.
### io.zipkin.http
This telemeter writes tracing data to zipkin over HTTP. Sample configuration:
```yaml
telemetry:
- kind: io.zipkin.http
host: localhost:9411
initialSampleRate: 0.02
```
Available configuration options for this telemeter:
Option | Default | Description
--- | --- | ---
`host` | localhost:9411 | The network location of the Zipkin http service.
`hostHeader` | zipkin | The Host header used when sending spans to Zipkin
`compressionEnabled` | true | True implies that spans will be gzipped before transport
`initialSampleRate` | 0.001 (0.1%) | Percentage of traces to sample in the range [0.0 - 1.0]
### io.zipkin.kafka
This telemeter writes tracing data to zipkin using Kafka. Sample configuration:
```yaml
telemetry:
- kind: io.zipkin.kafka
bootstrapServers: localhost:9092
initialSampleRate: 0.02
```
Available configuration options for this telemeter:
Option | Default | Description
--- | --- | ---
`bootstrapServers` | localhost:9092 | Initial set of kafka servers to connect to (comma separated)
`topic` | zipkin | Kafka topic zipkin traces will be sent to
`initialSampleRate` | 0.001 (0.1%) | Percentage of traces to sample in the range [0.0 - 1.0]