All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.twitter.zipkin.builder.QueryServiceBuilder.scala Maven / Gradle / Ivy

/*
 * Copyright 2012 Twitter Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.twitter.zipkin.builder

import com.twitter.finagle.tracing.{DefaultTracer, NullTracer}
import com.twitter.finagle.zipkin.thrift.{RawZipkinTracer, SpanStoreZipkinTracer}
import com.twitter.zipkin.query.{BootstrapTrace, ZipkinQueryServer}
import com.twitter.zipkin.storage.{DependencyStore, NullDependencyStore, SpanStore}

case class QueryServiceBuilder(override val defaultFinatraHttpPort: String = "0.0.0.0:9411",
                               override val defaultHttpPort: Int = 9901,
                               logLevel: String = "INFO",
                               spanStore: SpanStore,
                               dependencies: DependencyStore = new NullDependencyStore,
                               override val defaultHttpServerName: String = "zipkin-query"
                                ) extends ZipkinQueryServer(spanStore, dependencies) {

  /** If the span transport is set, trace accordingly, or disable tracing. */
  premain {
    DefaultTracer.self = sys.env.get("TRANSPORT_TYPE") match {
      case Some("scribe") => RawZipkinTracer(sys.env.get("SCRIBE_HOST").getOrElse("localhost"), sys.env.get("SCRIBE_PORT").getOrElse("1463").toInt)
      case Some("http") => new SpanStoreZipkinTracer(spanStore, statsReceiver)
      case _ => NullTracer
    }
  }

  override def warmup() {
    super.warmup()
    BootstrapTrace.record("warmup")
  }

  override def postWarmup() {
    super.postWarmup()
    BootstrapTrace.complete()
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy