diff --git a/roles/prometheus_federate/files/prometheus b/roles/prometheus_federate/files/prometheus new file mode 100644 index 0000000..c409f3b --- /dev/null +++ b/roles/prometheus_federate/files/prometheus @@ -0,0 +1,112 @@ +# Set the command-line arguments to pass to the server. +ARGS="--log.level=debug --storage.tsdb.retention.time=120d" + +# Prometheus supports the following options: +# --config.file="/etc/prometheus/prometheus.yml" +# Prometheus configuration file path. +# --web.listen-address="0.0.0.0:9090" +# Address to listen on for UI, API, and telemetry. +# --web.read-timeout=5m Maximum duration before timing out read of the +# request, and closing idle connections. +# --web.max-connections=512 Maximum number of simultaneous connections. +# --web.external-url= The URL under which Prometheus is externally +# reachable (for example, if Prometheus is served +# via a reverse proxy). Used for generating +# relative and absolute links back to Prometheus +# itself. If the URL has a path portion, it will +# be used to prefix all HTTP endpoints served by +# Prometheus. If omitted, relevant URL components +# will be derived automatically. +# --web.route-prefix= Prefix for the internal routes of web endpoints. +# Defaults to path of --web.external-url. +# --web.local-assets="/usr/share/prometheus/web/" +# Path to static asset/templates directory. +# --web.user-assets= Path to user asset directory, available at +# /user. +# --web.enable-lifecycle Enable shutdown and reload via HTTP request. +# --web.enable-admin-api Enable API endpoints for admin control actions. +# --web.console.templates="/etc/prometheus/consoles" +# Path to the console template directory, +# available at /consoles. +# --web.console.libraries="/etc/prometheus/console_libraries" +# Path to the console library directory. +# --web.page-title="Prometheus Time Series Collection and Processing Server" +# Document title of Prometheus instance. +# --web.cors.origin=".*" Regex for CORS origin. It is fully anchored. +# Example: 'https?://(domain1|domain2)\.com' +# --storage.tsdb.path="/var/lib/prometheus/metrics2/" +# Base path for metrics storage. +# --storage.tsdb.retention=15d +# [DEPRECATED] How long to retain samples in +# storage. This flag has been deprecated, use +# "storage.tsdb.retention.time" instead +# --storage.tsdb.retention.time=15d +# How long to retain samples in storage. When this +# flag is set it overrides +# "storage.tsdb.retention". +# If neither this flag nor "storage.tsdb.retention" +# nor "storage.tsdb.retention.size" is set, the +# retention time defaults to 15d. +# Units Supported: y, w, d, h, m, s, ms. +# --storage.tsdb.retention.size= +# [EXPERIMENTAL] Maximum number of bytes that can +# be stored for blocks. Units supported: KB, MB, +# GB, TB, PB. This flag is experimental and can be +# changed in future releases. +# --storage.tsdb.use-lockfile +# Create a lockfile in data directory. +# --storage.tsdb.allow-overlapping-blocks +# [EXPERIMENTAL] Allow overlapping blocks, which +# in turn enables vertical compaction and +# vertical query merge. +# --storage.tsdb.wal-compression +# Compress the tsdb WAL. +# --storage.remote.flush-deadline= +# How long to wait flushing sample on shutdown or +# config reload. +# --storage.remote.read-sample-limit=5e7 +# Maximum overall number of samples to return via +# the remote read interface, in a single query. 0 +# means no limit. This limit is ignored for +# streamed response types. +# --storage.remote.read-concurrent-limit=10 +# Maximum number of concurrent remote read calls. +# 0 means no limit. +# --storage.remote.read-max-bytes-in-frame=1048576 +# Maximum number of bytes in a single frame for +# streaming remote read response types before +# marshalling. Note that client might have limit on +# frame size as well. 1MB as recommended by +# protobuf by default. +# --rules.alert.for-outage-tolerance=1h +# Max time to tolerate prometheus outage for +# restoring "for" state of alert. +# --rules.alert.for-grace-period=10m +# Minimum duration between alert and restored "for" +# state. This is maintained only for alerts with +# configured "for" time greater than grace period. +# --rules.alert.resend-delay=1m +# Minimum amount of time to wait before resending +# an alert to Alertmanager. +# --alertmanager.notification-queue-capacity=10000 +# The capacity of the queue for pending +# Alertmanager notifications. +# --alertmanager.timeout=10s +# Timeout for sending alerts to Alertmanager. +# --query.lookback-delta=5m The maximum lookback duration for retrieving +# metrics during expression evaluations and +# federation. +# --query.timeout=2m Maximum time a query may take before being +# aborted. +# --query.max-concurrency=20 +# Maximum number of queries executed concurrently. +# --query.max-samples=50000000 +# Maximum number of samples a single query can load +# into memory. Note that queries will fail if they +# try to load more samples than this into memory, +# so this also limits the number of samples a query +# can return. +# --log.level=info Only log messages with the given severity or +# above. One of: [debug, info, warn, error] +# --log.format=logfmt Output format of log messages. One of: [logfmt, +# json] diff --git a/roles/prometheus_federate/tasks/main.yml b/roles/prometheus_federate/tasks/main.yml index 366f614..bcadbc0 100644 --- a/roles/prometheus_federate/tasks/main.yml +++ b/roles/prometheus_federate/tasks/main.yml @@ -21,10 +21,12 @@ notify: Restart Prometheus - name: Define Prometheus retention time - lineinfile: - path: /etc/default/prometheus - regexp: '^ARGS=\"--log.level=debug\"' - line: "ARGS=\"--log.level=debug --storage.tsdb.retention.time=120d\"" + copy: + src: files/prometheus + dest: /etc/default/prometheus + owner: prometheus + group: prometheus + mode: u=r,g=r,o= notify: Restart Prometheus # We don't need to restart Prometheus when updating nodes