| 340 | |
| 341 | /** @internal */ |
| 342 | export const timer = (name: string, description?: string): Metric.Metric< |
| 343 | MetricKeyType.MetricKeyType.Histogram, |
| 344 | Duration.Duration, |
| 345 | MetricState.MetricState.Histogram |
| 346 | > => { |
| 347 | const boundaries = metricBoundaries.exponential({ |
| 348 | start: 0.5, |
| 349 | factor: 2, |
| 350 | count: 35 |
| 351 | }) |
| 352 | const base = pipe(histogram(name, boundaries, description), tagged("time_unit", "milliseconds")) |
| 353 | return mapInput(base, Duration.toMillis) |
| 354 | } |
| 355 | |
| 356 | /** @internal */ |
| 357 | export const timerWithBoundaries = ( |