Skip to content

Latest commit

 

History

History
2408 lines (1273 loc) · 46.7 KB

REFERENCE.md

File metadata and controls

2408 lines (1273 loc) · 46.7 KB

Reference

Table of Contents

Classes

Defined types

Data types

Classes

thanos

Init class of Thanos module. It can installes Thanos binaries and manages components as single Service.

Examples

include thanos

Parameters

The following parameters are available in the thanos class.

version

Data type: Pattern[/\d+\.\d+\.\d+/]

Thanos release. See https://github.com/thanos-io/thanos/releases

os

Data type: String

Operating system.

Default value: downcase($facts['kernel'])

manage_sidecar

Data type: Boolean

Whether to create a service to run Sidecar.

Default value: false

manage_query

Data type: Boolean

Whether to create a service to run Query.

Default value: false

manage_rule

Data type: Boolean

Whether to create a service to run Rule.

Default value: false

manage_store

Data type: Boolean

Whether to create a service to run Store.

Default value: false

manage_compact

Data type: Boolean

Whether to create a service to run Compact.

Default value: false

manage_downsample

Data type: Boolean

Whether to create a service to run Downsample.

Default value: false

manage_bucket_web

Data type: Boolean

Whether to create a service to run Bucket Web interface.

Default value: false

install_method

Data type: Enum['url', 'package', 'none']

Installation method: url or package (only url is supported currently).

Default value: 'url'

package_ensure

Data type: Enum['present', 'absent', 'latest']

If package, then use this for package ensure default 'latest'.

Default value: 'latest'

package_name

Data type: String

Thanos package name - not available yet.

Default value: 'thanos'

base_url

Data type: Stdlib::HTTPUrl

Base URL for thanos.

Default value: 'https://github.com/thanos-io/thanos/releases/download'

download_extension

Data type: String

Extension of Thanos binaries archive.

Default value: 'tar.gz'

download_url

Data type: Optional[Stdlib::HTTPUrl]

Complete URL corresponding to the Thanos release, default to undef.

Default value: undef

base_dir

Data type: Stdlib::Absolutepath

Base directory where Thanos is extracted.

Default value: '/opt'

bin_dir

Data type: Stdlib::Absolutepath

Directory where binaries are located.

Default value: '/usr/local/bin'

config_dir

Data type: Stdlib::Absolutepath

Directory where configuration are located.

Default value: '/etc/thanos'

purge_config_dir

Data type: Boolean

Purge configuration directory.

Default value: true

tsdb_path

Data type: Stdlib::Absolutepath

Data directory of TSDB.

Default value: '/data'

manage_user

Data type: Boolean

Whether to create user for thanos or rely on external code for that.

Default value: true

manage_group

Data type: Boolean

Whether to create user for thanos or rely on external code for that.

Default value: true

user

Data type: String

User running thanos.

Default value: 'thanos'

group

Data type: String

Group under which thanos is running.

Default value: 'thanos'

usershell

Data type: Stdlib::Absolutepath

if requested, we create a user for thanos. The default shell is false. It can be overwritten to any valid path.

Default value: '/bin/false'

extra_groups

Data type: Array[String]

Add other groups to the managed user.

Default value: []

extract_command

Data type: Optional[String]

Custom command passed to the archive resource to extract the downloaded archive.

Default value: undef

manage_storage_config

Data type: Boolean

Whether to manage storage configuration file.

Default value: false

storage_config_file

Data type: Stdlib::Absolutepath

Path to storage configuration file.

Default value: "${config_dir}/storage.yaml"

storage_config

Data type: Hash[String, Data]

Storage configuration. type: one of ['S3', 'GCS', 'AZURE', 'SWIFT', 'COS', 'ALIYUNOSS', 'FILESYSTEM'] config: storage typed configuration in Hash[String, Data]

Default value: {}

manage_tracing_config

Data type: Boolean

Whether to manage tracing configuration file

Default value: false

tracing_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to tracing configuration file.

Default value: undef

tracing_config

Data type: Hash[String, Data]

Tracing configuration. type: one of ['JAEGER', 'STACKDRIVER', 'ELASTIC_APM', 'LIGHTSTEP'] config: tracing typed configuration in Hash[String, Data]

Default value: {}

manage_index_cache_config

Data type: Boolean

Whether to manage index cache configuration file

Default value: false

index_cache_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to index cache configuration file.

Default value: undef

index_cache_config

Data type: Hash[String, Data]

Index cache configuration. type: one of ['IN-MEMORY', 'MEMCACHED'] config: index cache typed configuration in Hash[String, Data]

Default value: {}

thanos::bucket_web

This class install Web interface for remote storage bucket.

Examples

include thanos::bucket_web

Parameters

The following parameters are available in the thanos::bucket_web class.

ensure

Data type: Enum['present', 'absent']

State ensured from compact service.

Default value: 'present'

user

Data type: String

User running thanos.

Default value: $thanos::user

group

Data type: String

Group under which thanos is running.

Default value: $thanos::group

bin_path

Data type: Stdlib::Absolutepath

Path where binary is located.

Default value: $thanos::bin_path

log_level

Data type: Thanos::Log_level

Only log messages with the given severity or above. One of: [debug, info, warn, error, fatal]

Default value: 'info'

log_format

Data type: Enum['logfmt', 'json']

Output format of log messages. One of: [logfmt, json]

Default value: 'logfmt'

tracing_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file with tracing configuration. See format details: https://thanos.io/tracing.md/#configuration

Default value: $thanos::tracing_config_file

objstore_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file that contains object store configuration. See format details: https://thanos.io/storage.md/#configuration

Default value: $thanos::storage_config_file

http_address

Data type: String

Listen host:port for HTTP endpoints.

Default value: '0.0.0.0:10902'

http_grace_period

Data type: String

Time to wait after an interrupt received for HTTP Server.

Default value: '2m'

web_external_prefix

Data type: String

Static prefix for all HTML links and redirect URLs in the bucket web UI interface. Actual endpoints are still served on / or the web.route-prefix. This allows thanos bucket web UI to be served behind a reverse proxy that strips a URL sub-path.

Default value: ''

web_prefix_header

Data type: String

Name of HTTP request header used for dynamic prefixing of UI links and redirects. This option is ignored if web.external-prefix argument is set. Security risk: enable this option only if a reverse proxy in front of thanos is resetting the header. The --web.prefix-header=X-Forwarded-Prefix option can be useful, for example, if Thanos UI is served via Traefik reverse proxy with PathPrefixStrip option enabled, which sends the stripped prefix value in X-Forwarded-Prefix header. This allows thanos UI to be served on a sub-path.

Default value: ''

refresh

Data type: String

Refresh interval to download metadata from remote storage

Default value: '30m'

timeout

Data type: String

Timeout to download metadata from remote storage

Default value: '5m'

label

Data type: String

Prometheus label to use as timeline title

Default value: ''

extra_params

Data type: Hash

Parameters passed to the binary, ressently released in latest version of Thanos.

Default value: {}

thanos::compact

This class install Compact as service to continuously compacts blocks in an object store bucket.

Examples

include thanos::compact

Parameters

The following parameters are available in the thanos::compact class.

ensure

Data type: Enum['present', 'absent']

State ensured from compact service.

Default value: 'present'

user

Data type: String

User running thanos.

Default value: $thanos::user

group

Data type: String

Group under which thanos is running.

Default value: $thanos::group

bin_path

Data type: Stdlib::Absolutepath

Path where binary is located.

Default value: $thanos::bin_path

log_level

Data type: Thanos::Log_level

Only log messages with the given severity or above. One of: [debug, info, warn, error, fatal]

Default value: 'info'

log_format

Data type: Enum['logfmt', 'json']

Output format of log messages. One of: [logfmt, json]

Default value: 'logfmt'

tracing_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file with tracing configuration. See format details: https://thanos.io/tracing.md/#configuration

Default value: $thanos::tracing_config_file

http_address

Data type: String

Listen host:port for HTTP endpoints.

Default value: '0.0.0.0:10902'

http_grace_period

Data type: String

Time to wait after an interrupt received for HTTP Server.

Default value: '2m'

data_dir

Data type: Optional[Stdlib::Absolutepath]

Data directory in which to cache blocks and process compactions.

Default value: undef

objstore_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file that contains object store configuration. See format details: https://thanos.io/storage.md/#configuration

Default value: $thanos::storage_config_file

consistency_delay

Data type: String

Minimum age of fresh (non-compacted) blocks before they are being processed. Malformed blocks older than the maximum of consistency-delay and 30m0s will be removed.

Default value: '30m'

retention_resolution_raw

Data type: String

How long to retain raw samples in bucket. 0d - disables this retention

Default value: '0d'

retention_resolution_5m

Data type: String

How long to retain samples of resolution 1 (5 minutes) in bucket. 0d - disables this retention

Default value: '0d'

retention_resolution_1h

Data type: String

How long to retain samples of resolution 2 (1 hour) in bucket. 0d - disables this retention

Default value: '0d'

wait

Data type: Boolean

Do not exit after all compactions have been processed and wait for new work.

Default value: false

downsampling_disable

Data type: Boolean

Disables downsampling. This is not recommended as querying long time ranges without non-downsampled data is not efficient and useful e.g it is not possible to render all samples for a human eye anyway

Default value: false

block_sync_concurrency

Data type: Integer

Number of goroutines to use when syncing block metadata from object storage.

Default value: 20

compact_concurrency

Data type: Integer

Number of goroutines to use when compacting groups.

Default value: 1

selector_relabel_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file that contains relabeling configuration that allows selecting blocks. It follows native Prometheus relabel-config syntax. See format details: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config

Default value: undef

extra_params

Data type: Hash

Parameters passed to the binary, ressently released in latest version of Thanos.

Default value: {}

thanos::config

This class install and manage configuration files like object store and tracing.

Examples

include thanos::config

Parameters

The following parameters are available in the thanos::config class.

manage_storage_config

Data type: Boolean

Whether to manage storage configuration file.

Default value: $thanos::manage_storage_config

storage_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to storage configuration file.

Default value: $thanos::storage_config_file

storage_config

Data type: Hash[String, Data]

Storage configuration. type: one of ['S3', 'GCS', 'AZURE', 'SWIFT', 'COS', 'ALIYUNOSS', 'FILESYSTEM'] config: storage typed configuration in Hash[String, Data]

Default value: $thanos::storage_config

manage_tracing_config

Data type: Boolean

Whether to manage tracing configuration file

Default value: $thanos::manage_tracing_config

tracing_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to tracing configuration file.

Default value: $thanos::tracing_config_file

tracing_config

Data type: Hash[String, Data]

Tracing configuration. type: one of ['JAEGER', 'STACKDRIVER', 'ELASTIC_APM', 'LIGHTSTEP'] config: tracing typed configuration in Hash[String, Data]

Default value: $thanos::tracing_config

manage_index_cache_config

Data type: Boolean

Whether to manage index cache configuration file

Default value: $thanos::manage_index_cache_config

index_cache_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to index cache configuration file.

Default value: $thanos::index_cache_config_file

index_cache_config

Data type: Hash[String, Data]

Index cache configuration. type: one of ['IN-MEMORY', 'MEMCACHED'] config: index cache typed configuration in Hash[String, Data]

Default value: $thanos::index_cache_config

thanos::downsample

This class install Downsample as service continuously downsamples blocks in an object store bucket.

Examples

include thanos::downsample

Parameters

The following parameters are available in the thanos::downsample class.

ensure

Data type: Enum['present', 'absent']

State ensured from compact service.

Default value: 'present'

user

Data type: String

User running thanos.

Default value: $thanos::user

group

Data type: String

Group under which thanos is running.

Default value: $thanos::group

bin_path

Data type: Stdlib::Absolutepath

Path where binary is located.

Default value: $thanos::bin_path

log_level

Data type: Thanos::Log_level

Only log messages with the given severity or above. One of: [debug, info, warn, error, fatal]

Default value: 'info'

log_format

Data type: Enum['logfmt', 'json']

Output format of log messages. One of: [logfmt, json]

Default value: 'logfmt'

tracing_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file with tracing configuration. See format details: https://thanos.io/tracing.md/#configuration

Default value: $thanos::tracing_config_file

http_address

Data type: String

Listen host:port for HTTP endpoints.

Default value: '0.0.0.0:10902'

http_grace_period

Data type: String

Time to wait after an interrupt received for HTTP Server.

Default value: '2m'

data_dir

Data type: Optional[Stdlib::Absolutepath]

Data directory in which to cache blocks and process downsamplings.

Default value: undef

objstore_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file that contains object store configuration. See format details: https://thanos.io/storage.md/#configuration

Default value: $thanos::storage_config_file

extra_params

Data type: Hash

Parameters passed to the binary, ressently released in latest version of Thanos.

Default value: {}

thanos::install

This class install Thanos requirements and binaries.

Examples

include thanos::install

Parameters

The following parameters are available in the thanos::install class.

version

Data type: Pattern[/\d+\.\d+\.\d+/]

Thanos release. See https://github.com/thanos-io/thanos/releases

Default value: $thanos::version

package_name

Data type: String

Thanos package name - not available yet.

Default value: $thanos::package_name

os

Data type: String

Operating system.

Default value: $thanos::os

real_arch

Data type: String

Architecture (amd64 or arm64).

Default value: $thanos::real_arch

package_ensure

Data type: Enum['present', 'absent', 'latest']

If package, then use this for package ensurel default 'latest'.

Default value: $thanos::package_ensure

install_method

Data type: Enum['url', 'package', 'none']

Installation method: url or package (only url is supported currently).

Default value: $thanos::install_method

download_extension

Data type: String

Extension of Thanos binaries archive.

Default value: $thanos::download_extension

download_url

Data type: Stdlib::HTTPUrl

Complete URL corresponding to the Prometheus release, default to undef.

Default value: $thanos::real_download_url

extract_command

Data type: Optional[String]

Custom command passed to the archive resource to extract the downloaded archive.

Default value: $thanos::extract_command

base_dir

Data type: Stdlib::Absolutepath

Base directory where Thanos is extracted.

Default value: $thanos::base_dir

bin_dir

Data type: Stdlib::Absolutepath

Directory where binaries are located.

Default value: $thanos::bin_dir

config_dir

Data type: Stdlib::Absolutepath

Directory where configuration are located.

Default value: $thanos::config_dir

purge_config_dir

Data type: Boolean

Purge configuration directory.

Default value: $thanos::purge_config_dir

notify_services

Data type: Array[Type[Resource]]

Services to notify when binaries changed.

Default value: $thanos::notify_services

manage_user

Data type: Boolean

Whether to create user for thanos or rely on external code for that.

Default value: $thanos::manage_user

manage_group

Data type: Boolean

Whether to create user for thanos or rely on external code for that.

Default value: $thanos::manage_group

user

Data type: String

User running thanos.

Default value: $thanos::user

group

Data type: String

Group under which thanos is running.

Default value: $thanos::group

usershell

Data type: Stdlib::Absolutepath

if requested, we create a user for thanos. The default shell is false. It can be overwritten to any valid path.

Default value: $thanos::usershell

extra_groups

Data type: Array[String]

Add other groups to the managed user.

Default value: $thanos::extra_groups

thanos::query

This class install Query as service query node exposing PromQL enabled Query API with data retrieved from multiple store nodes.

Examples

include thanos::query

Parameters

The following parameters are available in the thanos::query class.

ensure

Data type: Enum['present', 'absent']

State ensured from compact service.

Default value: 'present'

user

Data type: String

User running thanos.

Default value: $thanos::user

group

Data type: String

Group under which thanos is running.

Default value: $thanos::group

bin_path

Data type: Stdlib::Absolutepath

Path where binary is located.

Default value: $thanos::bin_path

log_level

Data type: Thanos::Log_level

Only log messages with the given severity or above. One of: [debug, info, warn, error, fatal]

Default value: 'info'

log_format

Data type: Enum['logfmt', 'json']

Output format of log messages. One of: [logfmt, json]

Default value: 'logfmt'

tracing_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file with tracing configuration. See format details: https://thanos.io/tracing.md/#configuration

Default value: $thanos::tracing_config_file

http_address

Data type: String

Listen host:port for HTTP endpoints.

Default value: '0.0.0.0:10902'

http_grace_period

Data type: String

Time to wait after an interrupt received for HTTP Server.

Default value: '2m'

grpc_address

Data type: String

Listen ip:port address for gRPC endpoints (StoreAPI). Make sure this address is routable from other components.

Default value: '0.0.0.0:10901'

grpc_grace_period

Data type: String

Time to wait after an interrupt received for GRPC Server.

Default value: '2m'

grpc_server_tls_cert

Data type: Optional[Stdlib::Absolutepath]

TLS Certificate for gRPC server, leave blank to disable TLS

Default value: undef

grpc_server_tls_key

Data type: Optional[Stdlib::Absolutepath]

TLS Key for the gRPC server, leave blank to disable TLS

Default value: undef

grpc_server_tls_client_ca

Data type: Optional[Stdlib::Absolutepath]

TLS CA to verify clients against. If no client CA is specified, there is no client verification on server side. (tls.NoClientCert)

Default value: undef

grpc_client_tls_secure

Data type: Boolean

Use TLS when talking to the gRPC server

Default value: false

grpc_client_tls_cert

Data type: Optional[Stdlib::Absolutepath]

TLS Certificates to use to identify this client to the server

Default value: undef

grpc_client_tls_key

Data type: Optional[Stdlib::Absolutepath]

TLS Key for the client's certificate

Default value: undef

grpc_client_tls_ca

Data type: Optional[Stdlib::Absolutepath]

TLS CA Certificates to use to verify gRPC servers

Default value: undef

grpc_client_server_name

Data type: Optional[String]

Server name to verify the hostname on the returned gRPC certificates. See https://tools.ietf.org/html/rfc4366#section-3.1

Default value: undef

web_route_prefix

Data type: Optional[String]

Prefix for API and UI endpoints. This allows thanos UI to be served on a sub-path. This option is analogous to --web.route-prefix of Promethus.

Default value: undef

web_external_prefix

Data type: Optional[String]

Static prefix for all HTML links and redirect URLs in the UI query web interface. Actual endpoints are still served on / or the web.route-prefix. This allows thanos UI to be served behind a reverse proxy that strips a URL sub-path.

Default value: undef

web_prefix_header

Data type: Optional[String]

Name of HTTP request header used for dynamic prefixing of UI links and redirects. This option is ignored if web.external-prefix argument is set. Security risk: enable this option only if a reverse proxy in front of thanos is resetting the header. The --web.prefix-header=X-Forwarded-Prefix option can be useful, for example, if Thanos UI is served via Traefik reverse proxy with PathPrefixStrip option enabled, which sends the stripped prefix value in X-Forwarded-Prefix header. This allows thanos UI to be served on a sub-path.

Default value: undef

query_timeout

Data type: String

Maximum time to process query by query node.

Default value: '2m'

query_max_concurrent

Data type: Integer

Maximum number of queries processed concurrently by query node.

Default value: 20

query_replica_label

Data type: Optional[String]

Labels to treat as a replica indicator along which data is deduplicated. Still you will be able to query without deduplication using 'dedup=false' parameter.

Default value: undef

selector_labels

Data type: Array[String]

Query selector labels that will be exposed in info endpoint.

Default value: []

stores

Data type: Array[String]

Addresses of statically configured store API servers. The scheme may be prefixed with 'dns+' or 'dnssrv+' to detect store API servers through respective DNS lookups.

Default value: []

store_sd_files

Data type: Array[Stdlib::Absolutepath]

Path to files that contain addresses of store API servers. The path can be a glob pattern.

Default value: []

store_sd_interval

Data type: String

Refresh interval to re-read file SD files. It is used as a resync fallback.

Default value: '5m'

store_sd_dns_interval

Data type: String

Interval between DNS resolutions.

Default value: '30s'

store_unhealthy_timeout

Data type: String

Timeout before an unhealthy store is cleaned from the store UI page.

Default value: '30s'

query_auto_downsampling

Data type: Boolean

Enable automatic adjustment (step / 5) to what source of data should be used in store gateways if no max_source_resolution param is specified.

Default value: false

query_partial_response

Data type: Boolean

Enable partial response for queries if no partial_response param is specified. --no-query.partial-response for disabling.

Default value: false

query_default_evaluation_interval

Data type: String

Set default evaluation interval for sub queries.

Default value: '1m'

store_response_timeout

Data type: String

If a Store doesn't send any data in this specified duration then a Store will be ignored and partial data will be returned if it's enabled. 0 disables timeout.

Default value: '0ms'

extra_params

Data type: Hash

Parameters passed to the binary, ressently released in latest version of Thanos.

Default value: {}

thanos::rule

This class install Rule as service ruler evaluating Prometheus rules against given Query nodes, exposing Store API and storing old blocks in bucket.

Examples

include thanos::rule

Parameters

The following parameters are available in the thanos::rule class.

ensure

Data type: Enum['present', 'absent']

State ensured from compact service.

Default value: 'present'

user

Data type: String

User running thanos.

Default value: $thanos::user

group

Data type: String

Group under which thanos is running.

Default value: $thanos::group

bin_path

Data type: Stdlib::Absolutepath

Path where binary is located.

Default value: $thanos::bin_path

log_level

Data type: Thanos::Log_level

Only log messages with the given severity or above. One of: [debug, info, warn, error, fatal]

Default value: 'info'

log_format

Data type: Enum['logfmt', 'json']

Output format of log messages. One of: [logfmt, json]

Default value: 'logfmt'

tracing_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file with tracing configuration. See format details: https://thanos.io/tracing.md/#configuration

Default value: $thanos::tracing_config_file

http_address

Data type: String

Listen host:port for HTTP endpoints.

Default value: '0.0.0.0:10902'

http_grace_period

Data type: String

Time to wait after an interrupt received for HTTP Server.

Default value: '2m'

grpc_address

Data type: String

Listen ip:port address for gRPC endpoints (StoreAPI). Make sure this address is routable from other components.

Default value: '0.0.0.0:10901'

grpc_grace_period

Data type: String

Time to wait after an interrupt received for GRPC Server.

Default value: '2m'

grpc_server_tls_cert

Data type: Optional[Stdlib::Absolutepath]

TLS Certificate for gRPC server, leave blank to disable TLS

Default value: undef

grpc_server_tls_key

Data type: Optional[Stdlib::Absolutepath]

TLS Key for the gRPC server, leave blank to disable TLS

Default value: undef

grpc_server_tls_client_ca

Data type: Optional[Stdlib::Absolutepath]

TLS CA to verify clients against. If no client CA is specified, there is no client verification on server side. (tls.NoClientCert)

Default value: undef

labels

Data type: Array[String]

Labels to be applied to all generated metrics. Similar to external labels for Prometheus, used to identify ruler and its blocks as unique source.

Default value: []

data_dir

Data type: Optional[Stdlib::Absolutepath]

Data directory.

Default value: undef

rule_files

Data type: Array[Stdlib::Absolutepath]

Rule files that should be used by rule manager. Can be in glob format.

Default value: []

resend_delay

Data type: String

Minimum amount of time to wait before resending an alert to Alertmanager.

Default value: '1m'

eval_interval

Data type: String

The default evaluation interval to use.

Default value: '30s'

tsdb_block_duration

Data type: String

Block duration for TSDB block.

Default value: '2h'

tsdb_retention

Data type: String

Block retention time on local disk.

Default value: '48h'

tsdb_wal_compression

Data type: Boolean

Compress the tsdb WAL.

Default value: false

alertmanagers_url

Data type: Array[Stdlib::HTTPUrl]

Alertmanager replica URLs to push firing alerts. Ruler claims success if push to at least one alertmanager from discovered succeeds. The scheme may be prefixed with 'dns+' or 'dnssrv+' to detect Alertmanager IPs through respective DNS lookups. The port defaults to 9093 or the SRV record's value. The URL path is used as a prefix for the regular Alertmanager API path.

Default value: []

alertmanagers_send_timeout

Data type: String

Timeout for sending alerts to alertmanager

Default value: '10s'

alertmanagers_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file that contains alerting configuration. See format details: https://thanos.io/components/rule.md/#configuration. If defined, it takes precedence over the alertmanagers_url and alertmanagers_send_timeout options.

Default value: undef

alertmanagers_sd_dns_interval

Data type: String

Interval between DNS resolutions of Alertmanager hosts.

Default value: '30s'

alert_query_url

Data type: Optional[Stdlib::HTTPUrl]

The external Thanos Query URL that would be set in all alerts 'Source' field

Default value: undef

alert_label_drop

Data type: Array[String]

Labels by name to drop before sending to alertmanager. This allows alert to be deduplicated on replica label. Similar Prometheus alert relabelling

Default value: []

web_route_prefix

Data type: Optional[String]

Prefix for API and UI endpoints. This allows thanos UI to be served on a sub-path. This option is analogous to --web.route-prefix of Prometheus.

Default value: undef

web_external_prefix

Data type: Optional[String]

Static prefix for all HTML links and redirect URLs in the UI query web interface. Actual endpoints are still served on / or the web.route-prefix. This allows thanos UI to be served behind a reverse proxy that strips a URL sub-path.

Default value: undef

web_prefix_header

Data type: Optional[String]

Name of HTTP request header used for dynamic prefixing of UI links and redirects. This option is ignored if web.external-prefix argument is set. Security risk: enable this option only if a reverse proxy in front of thanos is resetting the header. The --web.prefix-header=X-Forwarded-Prefix option can be useful, for example, if Thanos UI is served via Traefik reverse proxy with PathPrefixStrip option enabled, hich sends the stripped prefix value in X-Forwarded-Prefix header. This allows thanos UI to be served on a sub-path.

Default value: undef

objstore_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file that contains object store configuration. See format details: https://thanos.io/storage.md/#configuration

Default value: undef

queries

Data type: Array[String]

Addresses of statically configured query API servers. The scheme may be prefixed with 'dns+' or 'dnssrv+' to detect query API servers through respective DNS lookups.

Default value: []

query_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file that contains query API servers configuration. See format details: https://thanos.io/components/rule.md/#configuration. If defined, it takes precedence over the queries and query.sd-files options.

Default value: undef

query_sd_files

Data type: Array[Stdlib::Absolutepath]

Path to file that contain addresses of query peers. The path can be a glob pattern.

Default value: []

query_sd_interval

Data type: String

Refresh interval to re-read file SD files. (used as a fallback)

Default value: '5m'

query_sd_dns_interval

Data type: String

Interval between DNS resolutions.

Default value: '30s'

extra_params

Data type: Hash

Parameters passed to the binary, ressently released in latest version of Thanos.

Default value: {}

thanos::sidecar

This class install Sidecar as service sidecar for Prometheus server.

Examples

include thanos::sidecar

Parameters

The following parameters are available in the thanos::sidecar class.

ensure

Data type: Enum['present', 'absent']

State ensured from compact service.

Default value: 'present'

user

Data type: String

User running thanos.

Default value: $thanos::user

group

Data type: String

Group under which thanos is running.

Default value: $thanos::group

bin_path

Data type: Stdlib::Absolutepath

Path where binary is located.

Default value: $thanos::bin_path

log_level

Data type: Thanos::Log_level

Only log messages with the given severity or above. One of: [debug, info, warn, error, fatal]

Default value: 'info'

log_format

Data type: Enum['logfmt', 'json']

Output format of log messages. One of: [logfmt, json]

Default value: 'logfmt'

tracing_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file with tracing configuration. See format details: https://thanos.io/tracing.md/#configuration

Default value: $thanos::tracing_config_file

http_address

Data type: String

Listen host:port for HTTP endpoints.

Default value: '0.0.0.0:10902'

http_grace_period

Data type: String

Time to wait after an interrupt received for HTTP Server.

Default value: '2m'

grpc_address

Data type: String

Listen ip:port address for gRPC endpoints (StoreAPI). Make sure this address is routable from other components.

Default value: '0.0.0.0:10901'

grpc_grace_period

Data type: String

Time to wait after an interrupt received for GRPC Server.

Default value: '2m'

grpc_server_tls_cert

Data type: Optional[Stdlib::Absolutepath]

TLS Certificate for gRPC server, leave blank to disable TLS

Default value: undef

grpc_server_tls_key

Data type: Optional[Stdlib::Absolutepath]

TLS Key for the gRPC server, leave blank to disable TLS

Default value: undef

grpc_server_tls_client_ca

Data type: Optional[Stdlib::Absolutepath]

TLS CA to verify clients against. If no client CA is specified, there is no client verification on server side. (tls.NoClientCert)

Default value: undef

prometheus_url

Data type: Stdlib::HTTPUrl

URL at which to reach Prometheus's API. For better performance use local network.

Default value: 'http://localhost:9090'

prometheus_ready_timeout

Data type: String

Maximum time to wait for the Prometheus instance to start up

Default value: '10m'

receive_connection_pool_size

Data type: Optional[Integer]

Controls the http MaxIdleConns. Default is 0, which is unlimited

Default value: undef

receive_connection_pool_size_per_host

Data type: Integer

Controls the http MaxIdleConnsPerHost

Default value: 100

tsdb_path

Data type: Stdlib::Absolutepath

Data directory of TSDB.

Default value: $thanos::tsdb_path

reloader_config_file

Data type: Optional[Stdlib::Absolutepath]

Config file watched by the reloader.

Default value: undef

reloader_config_envsubst_file

Data type: Optional[Stdlib::Absolutepath]

Output file for environment variable substituted config file.

Default value: undef

reloader_rule_dirs

Data type: Array[Stdlib::Absolutepath]

Rule directories for the reloader to refresh.

Default value: []

objstore_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file that contains object store configuration. See format details: https://thanos.io/storage.md/#configuration

Default value: undef

shipper_upload_compacted

Data type: Boolean

If true sidecar will try to upload compacted blocks as well. Useful for migration purposes. Works only if compaction is disabled on Prometheus. Do it once and then disable the flag when done.

Default value: false

min_time

Data type: Optional[String]

Start of time range limit to serve. Thanos sidecar will serve only metrics, which happened later than this value. Option can be a constant time in RFC3339 format or time duration relative to current time, such as -1d or 2h45m. Valid duration units are ms, s, m, h, d, w, y.

Default value: undef

extra_params

Data type: Hash

Parameters passed to the binary, ressently released in latest version of Thanos.

Default value: {}

thanos::store

This class install Store as service store node giving access to blocks in a bucket provider. Now supported GCS, S3, Azure, Swift and Tencent COS..

Examples

include thanos::store

Parameters

The following parameters are available in the thanos::store class.

ensure

Data type: Enum['present', 'absent']

State ensured from compact service.

Default value: 'present'

user

Data type: String

User running thanos.

Default value: $thanos::user

group

Data type: String

Group under which thanos is running.

Default value: $thanos::group

bin_path

Data type: Stdlib::Absolutepath

Path where binary is located.

Default value: $thanos::bin_path

log_level

Data type: Thanos::Log_level

Only log messages with the given severity or above. One of: [debug, info, warn, error, fatal]

Default value: 'info'

log_format

Data type: Enum['logfmt', 'json']

Output format of log messages. One of: [logfmt, json]

Default value: 'logfmt'

tracing_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file with tracing configuration. See format details: https://thanos.io/tracing.md/#configuration

Default value: $thanos::tracing_config_file

http_address

Data type: String

Listen host:port for HTTP endpoints.

Default value: '0.0.0.0:10902'

http_grace_period

Data type: String

Time to wait after an interrupt received for HTTP Server.

Default value: '2m'

grpc_address

Data type: String

Listen ip:port address for gRPC endpoints (StoreAPI). Make sure this address is routable from other components.

Default value: '0.0.0.0:10901'

grpc_grace_period

Data type: String

Time to wait after an interrupt received for GRPC Server.

Default value: '2m'

grpc_server_tls_cert

Data type: Optional[Stdlib::Absolutepath]

TLS Certificate for gRPC server, leave blank to disable TLS

Default value: undef

grpc_server_tls_key

Data type: Optional[Stdlib::Absolutepath]

TLS Key for the gRPC server, leave blank to disable TLS

Default value: undef

grpc_server_tls_client_ca

Data type: Optional[Stdlib::Absolutepath]

TLS CA to verify clients against. If no client CA is specified, there is no client verification on server side. (tls.NoClientCert)

Default value: undef

data_dir

Data type: Optional[Stdlib::Absolutepath]

Data directory in which to cache remote blocks.

Default value: undef

index_cache_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file that contains index cache configuration. See format details: https://thanos.io/components/store.md/#index-cache

Default value: undef

index_cache_size

Data type: String

Maximum size of items held in the index cache.

Default value: '250MB'

chunck_pool_size

Data type: String

Maximum size of concurrently allocatable bytes for chunks.

Default value: '2GB'

store_grpc_series_sample_limit

Data type: Integer

Maximum amount of samples returned via a single Series call. 0 means no limit. NOTE: for efficiency we take 120 as the number of samples in chunk (it cannot be bigger than that), so the actual number of samples might be lower, even though the maximum could be hit.

Default value: 0

store_grpc_series_max_concurrency

Data type: Integer

Maximum number of concurrent Series calls.

Default value: 20

objstore_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file that contains object store configuration. See format details: https://thanos.io/storage.md/#configuration

Default value: $thanos::storage_config_file

sync_block_duration

Data type: String

Repeat interval for syncing the blocks between local and remote view.

Default value: '3m'

block_sync_concurrency

Data type: Integer

Number of goroutines to use when syncing blocks from object storage.

Default value: 20

min_time

Data type: Optional[String]

Start of time range limit to serve. Thanos Store will serve only metrics, which happened later than this value. Option can be a constant time in RFC3339 format or time duration relative to current time, such as -1d or 2h45m. Valid duration units are ms, s, m, h, d, w, y.

Default value: undef

max_time

Data type: Optional[String]

End of time range limit to serve. Thanos Store will serve only blocks, which happened eariler than this value. Option can be a constant time in RFC3339 format or time duration relative to current time, such as -1d or 2h45m. Valid duration units are ms, s, m, h, d, w, y.

Default value: undef

selector_relabel_config_file

Data type: Optional[Stdlib::Absolutepath]

Path to YAML file that contains relabeling configuration that allows selecting blocks. It follows native Prometheus relabel-config syntax. See format details: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config

Default value: undef

consistency_delay

Data type: String

Minimum age of all blocks before they are being read.

Default value: '30m'

extra_params

Data type: Hash

Parameters passed to the binary, ressently released in latest version of Thanos.

Default value: {}

Defined types

thanos::config::index_cache

Manage Index cache configuration file.

Examples

thanos::config::index_cache { '/etc/thanos/index_cache.yaml':
  ensure => 'present',
  type   => 'IN-MEMORY',
  config => {
    max_size      => 0,
    max_item_size => 0,
  },
}

Parameters

The following parameters are available in the thanos::config::index_cache defined type.

ensure

Data type: Enum['present', 'absent']

State ensured from configuration file.

type

Data type: Thanos::Index_cache_type

Type of Index cache. One of ['IN-MEMORY', 'MEMCACHED']

config

Data type: Hash[String, Data]

Configuration to typed index cache.

thanos::config::storage

Manage Storage configuration file.

Examples

thanos::config::storage { '/etc/thanos/storage.yaml':
  ensure => 'present',
  type   => 'FILESYSTEM',
  config => {
    directory => '/data',
  },
}

Parameters

The following parameters are available in the thanos::config::storage defined type.

ensure

Data type: Enum['present', 'absent']

State ensured from configuration file.

type

Data type: Thanos::Storage_type

Type of Storage configurarion. One of ['S3', 'GCS', 'AZURE', 'SWIFT', 'COS', 'ALIYUNOSS', 'FILESYSTEM']

config

Data type: Hash[String, Data]

Configuration to typed storage.

thanos::config::tracing

Manage Tracing configuration file

Examples

thanos::config::tracing { '/etc/thanos/tracing.yaml':
  ensure => 'present',
  type   => 'JAEGER',
  config => {...},
}

Parameters

The following parameters are available in the thanos::config::tracing defined type.

ensure

Data type: Enum['present', 'absent']

State ensured from configuration file.

type

Data type: Thanos::Tracing_type

Type of Tracing configurarion. One of ['JAEGER', 'STACKDRIVER', 'ELASTIC_APM', 'LIGHTSTEP']

config

Data type: Hash[String, Data]

Configuration to typed tracing.

thanos::resources::service

This defined type create component's service.

Examples

thanos::resources::service { 'component_name':
  ensure => 'running',
  bin_path => '/usr/local/bin/thanos',
}

Parameters

The following parameters are available in the thanos::resources::service defined type.

ensure

Data type: Variant[Stdlib::Ensure::Service, Enum['absent']]

State ensured from component service.

bin_path

Data type: Stdlib::Absolutepath

Path where binary is located.

user

Data type: String

User running thanos.

group

Data type: String

Group under which thanos is running.

params

Data type: Hash

Parameters passed to the binary.

Default value: {}

extra_params

Data type: Hash

Parameters passed to the binary, ressently released in latest version of Thanos.

Default value: {}

Data types

Thanos::Index_cache_type

Thanos index cache type

Alias of Enum['IN-MEMORY', 'MEMCACHED']

Thanos::Log_level

Thanos Log Level type

Alias of Enum['debug', 'info', 'warn', 'error', 'fatal']

Thanos::Storage_type

Thanos Storage type

Alias of Enum['S3', 'GCS', 'AZURE', 'SWIFT', 'COS', 'ALIYUNOSS', 'FILESYSTEM']

Thanos::Tracing_type

Thanos Tracing type

Alias of Enum['JAEGER', 'STACKDRIVER', 'ELASTIC_APM', 'LIGHTSTEP']