milessabin / tagless-metrics

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tagless-metrics-core

Maven Central

Defines a core tagless dsl for incrementing/decrementing/etc metrics.

tagless-metrics-kamon

Maven Central

Defines kamon-integration via the dsl.

Include

Add dependencies to built.sbt

libraryDependencies += "org.novelfs" %% "tagless-metrics-core" % "0.1.2"
libraryDependencies += "org.novelfs" %% "tagless-metrics-kamon" % "0.1.2"

Usage

You can import the instances individually if you wish, or simply:

import org.novelfs.taglessmetrics.kamon.implicits._

Import the metrics to be used

import org.novelfs.taglessmetrics.kamon.Counter

Counter usage:

val helloWorldCounter = Counter("hello-world-counter")

def printAndIncrementMetric[F[_] : Sync : IncrementMeric[?[_], Counter]] : F[Unit] =
  for {
    _ <- IncrementMetric[F, Counter].increment(helloWorldCounter.refine("status" -> "before"))
    _ <- Sync[F].delay { println("Hello world" }
    _ <- IncrementMetric[F, Counter].increment(helloWorldCounter.refine("status" -> "after"))
  } yield ()

About


Languages

Language:Scala 100.0%