summaryrefslogtreecommitdiffstats
path: root/service-monitor/src/test/scala/PrintInstanceObservables.scala
blob: b35fac6efe1daa2b801a8ceb9bef9008634f6cc9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
import com.yahoo.config.subscription.ConfigSourceSet
import com.yahoo.vespa.applicationmodel.{ApplicationInstance, ApplicationInstanceReference}
import com.yahoo.vespa.service.monitor.config.InstancesObservables

import org.json4s.native.Serialization
import org.json4s.{CustomKeySerializer, NoTypeHints}


/**
 * @author tonytv
 */
object PrintInstanceObservables {
  def main(args: Array[String]): Unit = {
    val sourceSet = new ConfigSourceSet("tcp/test1-node:19070")

    val observables = new InstancesObservables(sourceSet)

    observables.servicesPerInstance.subscribe(prettyPrint _)
    observables.slobroksPerInstance.subscribe(println(_))
    val subscription = observables.connect()

    Thread.sleep(100000)
    subscription.unsubscribe()
  }

  private def prettyPrint(map: Map[ApplicationInstanceReference, ApplicationInstance[Void]]): Unit = {
    implicit val formats = Serialization.formats(NoTypeHints) +
      new CustomKeySerializer[Object](formats => ({case string => ???} , { case ref: AnyRef => ref.toString }))

    println(Serialization.writePretty(map))
  }
}