Version information
This version is compatible with:
- Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2016.4.x
- Puppet >= 4.10.0 < 7.0.0
- , , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'maeq-thanos', '0.1.3'
Learn more about managing modules with a PuppetfileDocumentation
maeq-thanos
Table of Contents
Description
This module automates the install of Thanos and it's components into a service.
Usage
Install Thanos
In Puppet Code
class { 'thanos':
version => '0.10.0'
}
In Hiera Data (yaml)
include thanos
thanos::version: '0.10.0'
Full installation services
thanos::version: '0.10.0'
thanos::manage_sidecar: true
thanos::manage_query: true
thanos::manage_rule: true
thanos::manage_store: true
thanos::manage_compact: true
thanos::manage_downsample: true
For more information see REFERENCE.md.
Limitations
Don't manage Thanos experimental features, like :
thanos receive
command
Only support, Thanos supported OS. See Thanos releases page
Development
This project contains tests for rspec-puppet.
Quickstart to run all linter and unit tests:
bundle install --path .vendor/
bundle exec rake test
Reference
Table of Contents
Classes
thanos
: This module manages Thanosthanos::compact
: This class manages compact servicethanos::downsample
: This class manages downsample servicethanos::install
: This class install Thanos requirements and binaries.thanos::query
: This class manages query servicethanos::rule
: This class manages rule servicethanos::sidecar
: This class manages sidecar servicethanos::store
: This class manages store service
Defined types
thanos::resources::service
: This defined type create component's service.
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
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']
If package, then use this for package ensurel default 'latest'.
Default value: 'present'
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'
tsdb_path
Data type: Stdlib::Absolutepath
Data directory of TSDB.
Default value: '/opt/prometheus/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
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'
bin_path
Data type: Stdlib::Absolutepath
Path where binary is located.
Default value: $thanos::bin_path
log_level
Data type: Enum['debug', 'info', 'warn', 'error', 'fatal']
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: undef
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: undef
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
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'
bin_path
Data type: Stdlib::Absolutepath
Path where binary is located.
Default value: $thanos::bin_path
log_level
Data type: Enum['debug', 'info', 'warn', 'error', 'fatal']
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: undef
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: undef
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: String
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
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'
bin_path
Data type: Stdlib::Absolutepath
Path where binary is located.
Default value: $thanos::bin_path
log_level
Data type: Enum['debug', 'info', 'warn', 'error', 'fatal']
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: undef
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'
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'
bin_path
Data type: Stdlib::Absolutepath
Path where binary is located.
Default value: $thanos::bin_path
log_level
Data type: Enum['debug', 'info', 'warn', 'error', 'fatal']
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: undef
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'
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'
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_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'
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'
bin_path
Data type: Stdlib::Absolutepath
Path where binary is located.
Default value: $thanos::bin_path
log_level
Data type: Enum['debug', 'info', 'warn', 'error', 'fatal']
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: undef
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'
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
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
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'
bin_path
Data type: Stdlib::Absolutepath
Path where binary is located.
Default value: $thanos::bin_path
log_level
Data type: Enum['debug', 'info', 'warn', 'error', 'fatal']
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: undef
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_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: undef
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
Defined types
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.
params
Data type: Hash
Parameters passed to the binary.
Default value: {}
Changelog
All notable changes to this project will be documented in this file.
Release 0.1.3
Features Unit tests Bug Fixes Boolean parameters in service resource creation.
Release 0.1.2
Features Documentation, README and REFERENCE
Release 0.1.1
Test release
Release 0.1.0
Features Installation and component's Service creation
Dependencies
- puppetlabs/stdlib (>= 6.2.0 < 7.0.0)
- puppet/archive (>= 4.4.0 < 5.0.0)
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.