Getting Started
This library is designed to provide a tasteful Scala API for exposing Prometheus metrics using Cats-Effect. It is a mix between Permutive's internal library and Epimetheus. See the design page for more information.
Features
- A fluent metric builder DSL
- Metric name prefix and common labels
- Decoupled backend for registering metrics
Quickstart Usage
This library is currently available for Scala binary versions 2.12 and 2.13 and 3.2.
For detailed code examples see the metrics DSL documentation.
To use the latest version, include the following in your build.sbt
:
libraryDependencies ++= Seq(
"com.permutive" %% "prometheus4cats" % "3.0.0",
"com.permutive" %% "prometheus4cats-java" % "3.0.0"
)
import cats.effect.IO
import org.typelevel.log4cats.Logger
import org.typelevel.log4cats.noop.NoOpLogger
import prometheus4cats.MetricFactory
import prometheus4cats.javasimpleclient.JavaMetricRegistry
// Java client requires a logger
implicit val logger: Logger[IO] = NoOpLogger.impl
val counterResource =
for {
registry <- JavaMetricRegistry.Builder().build[IO]
factory = MetricFactory.builder.build(registry)
counter <- factory.counter("my_counter_total")
.ofLong
.help("My Counter")
.label[String]("some_label")
.build
} yield counter
counterResource.use { counter => counter.inc("Some label value") }