Duration Units
Human-readable duration units for timeout, interval, and delay values
Radiator Server supports human-readable duration units across timeout, interval, and delay settings, making configuration files more readable and maintainable.
Overview
Duration values can be specified using intuitive unit suffixes instead of raw millisecond values.
For the interval directive syntax variants (for example cron and optional
jitter where supported), see interval.
Supported Units
| Unit | Description | Equivalent (base) |
|---|---|---|
| ms | Milliseconds | 0.001 seconds |
| s | Seconds | 1000 milliseconds |
| m | Minutes | 60 seconds |
| h | Hours | 60 minutes (3600 seconds) |
| d | Days | 24 hours |
| w | Weeks | 7 days |
| M | Months | 30 days (fixed length) |
| y | Years | 365 days (fixed length) |
Note: Months and years use fixed lengths and are not calendar-aware. A month is always 30 days, and a year is always 365 days (no leap year adjustment).
Basic Usage
Simple Duration Values
backends {
radius "upstream" {
server "192.168.1.10" {
timeout 5s; # 5 seconds
idle-timeout 30m; # 30 minutes
}
}
}
Combined Duration Values
You can combine multiple units for precise duration specifications:
backends {
http "api" {
url "https://api.example.com";
timeout 1m30s; # 1 minute and 30 seconds (90 seconds total)
}
ldap "directory" {
server "ldap.example.com" {
url "ldap://ldap.example.com:389/";
timeout 2h30m; # 2 hours and 30 minutes
}
}
}
Where Duration Units Apply
Duration units are supported in many timeout, interval, and delay settings across the system, including:
- Backend timeouts: HTTP, LDAP, and RADIUS backend server timeouts
- Cache timeouts: Cache entry expiration times
- Idle timeouts: RADIUS backend server idle connection timeouts
- Log promotion intervals:
loggingpromotionintervalvalues - Statistics intervals:
statisticsintervalvalues for defaults, counters, and histograms - Certificate directory refresh:
x509-directoryintervalvalues for CA directory rescans
Context-Specific Defaults
When a value is written without a suffix, the default unit depends on the setting:
- Most
.radconfduration settings, includingstatisticsintervalandx509-directoryinterval, treat plain numbers as milliseconds.
Best Practices
-
Use appropriate units: Choose the most natural unit for your use case
- Short timeouts: use seconds (
5s,30s) - Medium timeouts: use minutes (
5m,30m) - Long timeouts: use hours or days (
2h,1d)
- Short timeouts: use seconds (
-
Combine units for clarity:
1m30sis clearer than90sfor some contexts -
Be consistent: Use similar unit patterns across your configuration for readability
Error Handling
Invalid unit suffixes will result in configuration parsing errors with helpful messages indicating the supported units and correct syntax.
Application log message index
Architecture Overview
Backend Load Balancing
Basic Installation
Built-in Environment Variables
Byte Size Units
Certificate Revocation Lists
Comparison Operators
Configuration Editor
Configuration Import and Export
Containers
Cron and interval timers
Data Types
Duration Units
Environment Variables
Execution Context
Execution Pipelines
Filters
Getting a Radiator License
Health check /live and /ready
High Availability and Load Balancing
High availability identifiers
HTTP Basic Authentication
Introduction
Linux systemd support
Local AAA Backends
Logging
Management API privilege levels
Namespaces
Password Hashing
Password Rehashing During Login
Probabilistic Sampling
Prometheus and OpenMetrics scraping
PROXY Protocol Support
Radiator server health and boot up logic
Radiator sizing
Radiator software releases
Radiator software security and dependency compliance
RadiatorDB
RadiatorDB Backup
RadiatorDB CLI
RadiatorDB Installation
RadiatorDB PostgreSQL 10k TPS example
RadiatorDB REST API
RadiatorDB sizing
Rate Limiting
Rate Limiting Algorithms
Reverse Dynamic Authorization
Service Level Objective
TACACS+ Authentication, Authorization, and Accounting
Template Rendering CLI
Timestamps
Tools radiator-client
TOTP/HOTP Authentication
What is Radiator?
YubiKey Authentication
YubiKey Context Variables
Application log message index
Architecture Overview
Backend Load Balancing
Basic Installation
Built-in Environment Variables
Byte Size Units
Certificate Revocation Lists
Comparison Operators
Configuration Editor
Configuration Import and Export
Containers
Cron and interval timers
Data Types
Duration Units
Environment Variables
Execution Context
Execution Pipelines
Filters
Getting a Radiator License
Health check /live and /ready
High Availability and Load Balancing
High availability identifiers
HTTP Basic Authentication
Introduction
Linux systemd support
Local AAA Backends
Logging
Management API privilege levels
Namespaces
Password Hashing
Password Rehashing During Login
Probabilistic Sampling
Prometheus and OpenMetrics scraping
PROXY Protocol Support
Radiator server health and boot up logic
Radiator sizing
Radiator software releases
Radiator software security and dependency compliance
RadiatorDB
RadiatorDB Backup
RadiatorDB CLI
RadiatorDB Installation
RadiatorDB PostgreSQL 10k TPS example
RadiatorDB REST API
RadiatorDB sizing
Rate Limiting
Rate Limiting Algorithms
Reverse Dynamic Authorization
Service Level Objective
TACACS+ Authentication, Authorization, and Accounting
Template Rendering CLI
Timestamps
Tools radiator-client
TOTP/HOTP Authentication
What is Radiator?
YubiKey Authentication
YubiKey Context Variables