|
Akka/Scala example source code file (MetricValuesSpec.scala)
The MetricValuesSpec.scala Akka example source code/* * Copyright (C) 2009-2014 Typesafe Inc. <http://www.typesafe.com> */ package akka.cluster import scala.util.Try import akka.actor.Address import akka.testkit.AkkaSpec import akka.cluster.StandardMetrics._ @org.junit.runner.RunWith(classOf[org.scalatest.junit.JUnitRunner]) class MetricValuesSpec extends AkkaSpec(MetricsEnabledSpec.config) with MetricsCollectorFactory { val collector = createMetricsCollector val node1 = NodeMetrics(Address("akka.tcp", "sys", "a", 2554), 1, collector.sample.metrics) val node2 = NodeMetrics(Address("akka.tcp", "sys", "a", 2555), 1, collector.sample.metrics) val nodes: Seq[NodeMetrics] = { (1 to 100).foldLeft(List(node1, node2)) { (nodes, _) ⇒ nodes map { n ⇒ n.copy(metrics = collector.sample.metrics.flatMap(latest ⇒ n.metrics.collect { case streaming if latest sameAs streaming ⇒ streaming :+ latest })) } } } "NodeMetrics.MetricValues" must { "extract expected metrics for load balancing" in { val stream1 = node2.metric(HeapMemoryCommitted).get.value.longValue val stream2 = node1.metric(HeapMemoryUsed).get.value.longValue stream1 should be >= (stream2) } "extract expected MetricValue types for load balancing" in { nodes foreach { node ⇒ node match { case HeapMemory(address, _, used, committed, _) ⇒ used should be > (0L) committed should be >= (used) // Documentation java.lang.management.MemoryUsage says that committed <= max, // but in practice that is not always true (we have seen it happen). Therefore // we don't check the heap max value in this test. // extract is the java api StandardMetrics.extractHeapMemory(node) should not be (null) } node match { case Cpu(address, _, systemLoadAverageOption, cpuCombinedOption, processors) ⇒ processors should be > (0) if (systemLoadAverageOption.isDefined) systemLoadAverageOption.get should be >= (0.0) if (cpuCombinedOption.isDefined) { cpuCombinedOption.get should be <= (1.0) cpuCombinedOption.get should be >= (0.0) } // extract is the java api StandardMetrics.extractCpu(node) should not be (null) } } } } } Other Akka source code examplesHere is a short list of links related to this Akka MetricValuesSpec.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.