| 355 | |
| 356 | /** @internal */ |
| 357 | export const timerWithBoundaries = ( |
| 358 | name: string, |
| 359 | boundaries: ReadonlyArray<number>, |
| 360 | description?: string |
| 361 | ): Metric.Metric< |
| 362 | MetricKeyType.MetricKeyType.Histogram, |
| 363 | Duration.Duration, |
| 364 | MetricState.MetricState.Histogram |
| 365 | > => { |
| 366 | const base = pipe( |
| 367 | histogram(name, metricBoundaries.fromIterable(boundaries), description), |
| 368 | tagged("time_unit", "milliseconds") |
| 369 | ) |
| 370 | return mapInput(base, Duration.toMillis) |
| 371 | } |
| 372 | |
| 373 | /* @internal */ |
| 374 | export const trackAll = dual< |