// Generated by moonp8s metrics from orders.mbt. Edit those files, not this one.
///|
let orders_total : @moonp8s.Counter = @moonp8s.Counter::new()
///|
let orders_refused_total : @moonp8s.Counter = @moonp8s.Counter::new()
///|
let order_seconds : @moonp8s.Histogram = try {
@moonp8s.Histogram::new(buckets=[0.5, 1.0, 5.0])
} catch{
_ => abort("order_seconds")
}
///|
fn register_metrics(registry : @moonp8s.Registry) -> Unit raise @metric.Refused {
registry.register("orders_total", "Orders asked for.", orders_total)
registry.register(
"orders_refused_total",
"Orders refused.",
orders_refused_total,
)
registry.register(
"order_seconds",
"Seconds to place an order.",
order_seconds,
)
}
///|
fn place_metered(item : String, now~ : () -> Double) -> Int32 raise Sold {
let started = now()
try {
orders_total.inc()
} catch{
_ => ()
}
errdefer {
try {
orders_refused_total.inc()
} catch{
_ => ()
}
order_seconds.observe(now() - started)
}
let result = place(item)
order_seconds.observe(now() - started)
result
}