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

Wire up zipkin stats receivers #4

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ This telemeter writes tracing data to zipkin over HTTP. Sample configuration:

```yaml
telemetry:
- kind: io.l5d.commonMetrics
- kind: io.zipkin.http
host: localhost:9411
initialSampleRate: 0.02
Expand All @@ -60,7 +59,6 @@ This telemeter writes tracing data to zipkin using Kafka. Sample configuration:

```yaml
telemetry:
- kind: io.l5d.commonMetrics
- kind: io.zipkin.kafka
bootstrapServers: localhost:9092
initialSampleRate: 0.02
Expand Down
22 changes: 11 additions & 11 deletions src/main/scala/io/buoyant/linkerd/zipkin/HttpInitializer.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.buoyant.linkerd.zipkin

import com.twitter.finagle.Stack
import com.twitter.finagle.{Stack, param}
import com.twitter.finagle.stats.NullStatsReceiver
import com.twitter.finagle.tracing.Tracer
import com.twitter.finagle.zipkin.core.Sampler
Expand All @@ -20,18 +20,18 @@ case class HttpConfig(
initialSampleRate: Option[Double]
) extends TelemeterConfig {

private[this] val tracer: Tracer = {
val config = HttpZipkinTracer.Config.builder()
.host(host.getOrElse("localhost:9411"))
.hostHeader(hostHeader.getOrElse("zipkin"))
.compressionEnabled(compressionEnabled.getOrElse(true))
.initialSampleRate(initialSampleRate.map(_.toFloat).getOrElse(Sampler.DefaultSampleRate))
.build()
private[this] val config: HttpZipkinTracer.Config = HttpZipkinTracer.Config.builder()
.host(host.getOrElse("localhost:9411"))
.hostHeader(hostHeader.getOrElse("zipkin"))
.compressionEnabled(compressionEnabled.getOrElse(true))
.initialSampleRate(initialSampleRate.map(_.toFloat).getOrElse(Sampler.DefaultSampleRate))
.build()

HttpZipkinTracer.create(config, NullStatsReceiver)
def mk(params: Stack.Params): HttpTelemeter = {
val param.Stats(stats) = params[param.Stats]
val tracer = HttpZipkinTracer.create(config, stats.scope("zipkin.http"))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

similarly

new HttpTelemeter(tracer)
}

def mk(params: Stack.Params): HttpTelemeter = new HttpTelemeter(tracer)
}

class HttpTelemeter(underlying: Tracer) extends Telemeter {
Expand Down
20 changes: 10 additions & 10 deletions src/main/scala/io/buoyant/linkerd/zipkin/KafkaInitializer.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.buoyant.linkerd.zipkin

import com.twitter.finagle.Stack
import com.twitter.finagle.{Stack, param}
import com.twitter.finagle.stats.NullStatsReceiver
import com.twitter.finagle.tracing.Tracer
import com.twitter.finagle.zipkin.core.Sampler
Expand All @@ -19,17 +19,17 @@ case class KafkaConfig(
initialSampleRate: Option[Double]
) extends TelemeterConfig {

private[this] val tracer: Tracer = {
val config = KafkaZipkinTracer.Config.builder()
.bootstrapServers(bootstrapServers.getOrElse("localhost:9092"))
.topic(topic.getOrElse("kafka"))
.initialSampleRate(initialSampleRate.map(_.toFloat).getOrElse(Sampler.DefaultSampleRate))
.build()
private[this] val config: KafkaZipkinTracer.Config = KafkaZipkinTracer.Config.builder()
.bootstrapServers(bootstrapServers.getOrElse("localhost:9092"))
.topic(topic.getOrElse("kafka"))
.initialSampleRate(initialSampleRate.map(_.toFloat).getOrElse(Sampler.DefaultSampleRate))
.build()

KafkaZipkinTracer.create(config, NullStatsReceiver)
def mk(params: Stack.Params): KafkaTelemeter = {
val param.Stats(stats) = params[param.Stats]
val tracer = KafkaZipkinTracer.create(config, stats.scope("zipkin.kafka"))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i know we're nowhere near consistent about this, but let's call this "io.zipkin.kafka" to match the plugin name or even configID / topic if we think it's reasonable to run multiple telemeters to different topics

new KafkaTelemeter(tracer)
}

def mk(params: Stack.Params): KafkaTelemeter = new KafkaTelemeter(tracer)
}

class KafkaTelemeter(underlying: Tracer) extends Telemeter {
Expand Down