@ -105,7 +105,7 @@ let
] ++
optional ( cfg2 . webExternalUrl != null ) " - - w e b . e x t e r n a l - u r l = ${ cfg2 . webExternalUrl } " ;
filterValidPrometheus = filterAttrsListRecursive ( n : v : ! ( n == " _ m o d u l e " || v == null || v == [ ] || v == { } ) ) ;
filterValidPrometheus = filterAttrsListRecursive ( n : v : ! ( n == " _ m o d u l e " || v == null ) ) ;
filterAttrsListRecursive = pred : x :
if isAttrs x then
listToAttrs (
@ -123,37 +123,37 @@ let
promTypes . globalConfig = types . submodule {
options = {
scrape_interval = mkOption {
type = types . str ;
default = " 1 m " ;
type = types . nullOr types . str ;
default = null ;
description = ''
How frequently to scrape targets by default .
'' ;
} ;
scrape_timeout = mkOption {
type = types . str ;
default = " 1 0 s " ;
type = types . nullOr types . str ;
default = null ;
description = ''
How long until a scrape request times out .
'' ;
} ;
evaluation_interval = mkOption {
type = types . str ;
default = " 1 m " ;
type = types . nullOr types . str ;
default = null ;
description = ''
How frequently to evaluate rules by default .
'' ;
} ;
external_labels = mkOption {
type = types . attrsOf types . str ;
type = types . nullOr ( types . attrsOf types . str ) ;
description = ''
The labels to add to any time series or alerts when
communicating with external systems ( federation , remote
storage , Alertmanager ) .
'' ;
default = { } ;
default = null ;
} ;
} ;
} ;
@ -183,15 +183,15 @@ let
'' ;
} ;
metrics_path = mkOption {
type = types . str ;
default = " / m e t r i c s " ;
type = types . nullOr types . str ;
default = null ;
description = ''
The HTTP resource path on which to fetch metrics from targets .
'' ;
} ;
honor_labels = mkOption {
type = types . bool ;
default = false ;
type = types . nullOr types . bool ;
default = null ;
description = ''
Controls how Prometheus handles conflicts between labels
that are already present in scraped data and labels that
@ -213,15 +213,15 @@ let
'' ;
} ;
scheme = mkOption {
type = types . enum [ " h t t p " " h t t p s " ] ;
default = " h t t p " ;
type = types . nullOr ( types . enum [ " h t t p " " h t t p s " ] ) ;
default = null ;
description = ''
The URL scheme with which to fetch metrics from targets .
'' ;
} ;
params = mkOption {
type = types . attrsOf ( types . listOf types . str ) ;
default = { } ;
type = types . nullOr ( types . attrsOf ( types . listOf types . str ) ) ;
default = null ;
description = ''
Optional HTTP URL parameters .
'' ;
@ -256,43 +256,43 @@ let
'' ;
} ;
dns_sd_configs = mkOption {
type = types . listOf promTypes . dns_sd_config ;
default = [ ] ;
type = types . nullOr ( types . listOf promTypes . dns_sd_config ) ;
default = null ;
description = ''
List of DNS service discovery configurations .
'' ;
} ;
consul_sd_configs = mkOption {
type = types . listOf promTypes . consul_sd_config ;
default = [ ] ;
type = types . nullOr ( types . listOf promTypes . consul_sd_config ) ;
default = null ;
description = ''
List of Consul service discovery configurations .
'' ;
} ;
file_sd_configs = mkOption {
type = types . listOf promTypes . file_sd_config ;
default = [ ] ;
type = types . nullOr ( types . listOf promTypes . file_sd_config ) ;
default = null ;
description = ''
List of file service discovery configurations .
'' ;
} ;
static_configs = mkOption {
type = types . listOf promTypes . static_config ;
default = [ ] ;
type = types . nullOr ( types . listOf promTypes . static_config ) ;
default = null ;
description = ''
List of labeled target groups for this job .
'' ;
} ;
ec2_sd_configs = mkOption {
type = types . listOf promTypes . ec2_sd_config ;
default = [ ] ;
type = types . nullOr ( types . listOf promTypes . ec2_sd_config ) ;
default = null ;
description = ''
List of EC2 service discovery configurations .
'' ;
} ;
relabel_configs = mkOption {
type = types . listOf promTypes . relabel_config ;
default = [ ] ;
type = types . nullOr ( types . listOf promTypes . relabel_config ) ;
default = null ;
description = ''
List of relabel configurations .
'' ;
@ -371,8 +371,8 @@ let
'' ;
} ;
port = mkOption {
type = types . int ;
default = 80 ;
type = types . nullOr types . int ;
default = null ;
description = ''
The port to scrape metrics from . If using the public IP
address , this must instead be specified in the relabeling
@ -417,8 +417,8 @@ let
'' ;
} ;
refresh_interval = mkOption {
type = types . str ;
default = " 3 0 s " ;
type = types . nullOr types . str ;
default = null ;
description = ''
The time after which the provided names are refreshed .
'' ;
@ -429,7 +429,8 @@ let
promTypes . consul_sd_config = types . submodule {
options = {
server = mkOption {
type = types . str ;
type = types . nullOr types . str ;
default = null ;
description = " C o n s u l s e r v e r t o q u e r y . " ;
} ;
token = mkOption {
@ -454,14 +455,15 @@ let
} ;
services = mkOption {
type = types . listOf types . str ;
type = types . nullOr ( types . listOf types . str ) ;
default = null ;
description = ''
A list of services for which targets are retrieved .
'' ;
} ;
tag_separator = mkOption {
type = types . str ;
default = " , " ;
type = types . nullOr types . str ;
default = null ;
description = ''
The string by which Consul tags are joined into the tag label .
'' ;
@ -477,12 +479,11 @@ let
Patterns for files from which target groups are extracted . Refer
to the Prometheus documentation for permitted filename patterns
and formats .
'' ;
} ;
refresh_interval = mkOption {
type = types . str ;
default = " 3 0 s " ;
type = types . nullOr types . str ;
default = null ;
description = ''
Refresh interval to re-read the files .
'' ;
@ -493,7 +494,7 @@ let
promTypes . relabel_config = types . submodule {
options = {
source_labels = mkOption {
type = with types ; nullOr ( listOf str ) ;
type = types . nullOr ( types . listOf str ) ;
default = null ;
description = ''
The source labels select values from existing labels . Their content
@ -502,8 +503,8 @@ let
'' ;
} ;
separator = mkOption {
type = types . str ;
default = " ; " ;
type = types . nullOr types . str ;
default = null ;
description = ''
Separator placed between concatenated source label values .
'' ;
@ -517,23 +518,23 @@ let
'' ;
} ;
regex = mkOption {
type = types . str ;
default = " ( . * ) " ;
type = types . nullOr types . str ;
default = null ;
description = ''
Regular expression against which the extracted value is matched .
'' ;
} ;
replacement = mkOption {
type = types . str ;
default = " $ 1 " ;
type = types . nullOr types . str ;
default = null ;
description = ''
Replacement value against which a regex replace is performed if the
regular expression matches .
'' ;
} ;
action = mkOption {
type = types . enum [ " r e p l a c e " " k e e p " " d r o p " ] ;
default = " r e p l a c e " ;
type = types . nullOr ( types . enum [ " r e p l a c e " " k e e p " " d r o p " ] ) ;
default = null ;
description = ''
Action to perform based on regex matching .
'' ;