bin
This page explains how to use the bin function in APL.
Use the bin function to round values down to the nearest multiple of a specified bin size. This function is essential for grouping continuous data into discrete intervals, making it invaluable for time-based aggregations, histogram creation, and data bucketing.
The bin function works with numbers, dates, and timespans. When combined with the summarize operator, it enables powerful time-series analysis by grouping events into fixed intervals.
Usage
Syntax
bin(value, bin_size)Parameters
| Name | Type | Description |
|---|---|---|
value | real, datetime, or timespan | The value to round down to the nearest bin boundary. |
bin_size | real, datetime, or timespan | The size of each bin. Must be a positive value. |
Returns
The nearest multiple of bin_size that's less than or equal to value. The return type matches the input type.
Use case examples
Aggregate HTTP requests into 5-minute intervals to analyze traffic patterns.
Query
['sample-http-logs']
| summarize request_count = count(), avg_duration = avg(req_duration_ms) by bin(_time, 5m)Output
| request_count | avg_duration |
|---|---|
| 581,330 | 0.8631ms |
This query groups all HTTP requests into 5-minute windows, providing a time-series view of traffic volume and average response times.
Analyze trace durations by grouping them into 1-minute intervals per service.
Query
['otel-demo-traces']
| summarize span_count = count(), p95_duration = percentile(duration, 95) by bin(_time, 1m), ['service.name']
| order by span_count descOutput
| service.name | span_count | p95_duration |
|---|---|---|
| frontend | 520 | 24.2ms |
| cart | 230 | 12.4ms |
| checkout | 85 | 10.2ms |
This query creates a per-minute breakdown of span counts and 95th percentile durations for each service.
List of related functions
- bin_auto: Automatically determines bin size based on the query time range. Use
binwhen you need explicit control over the bin size. - floor: Rounds down to the largest integer less than or equal to the input. Use
binfor rounding to arbitrary multiples. - ceiling: Rounds up to the smallest integer greater than or equal to the input. Use
binwhen you need to round down to specific intervals. - summarize: The
binfunction is commonly used withinsummarizefor time-based aggregations.