Files
chef/cookbooks/prometheus/resources/_partial/_prometheus.rb
T
2026-07-03 17:46:18 +02:00

72 lines
3.1 KiB
Ruby

# frozen_string_literal: true
property :version, String, default: '3.11.2'
property :binary, String, default: '/opt/prometheus/prometheus'
property :architecture, String, equal_to: %w(amd64 arm64), default: lazy {
node['kernel']['machine'] == 'aarch64' ? 'arm64' : 'amd64'
}
property :binary_url, String, default: lazy { "https://github.com/prometheus/prometheus/releases/download/v#{version}/prometheus-#{version}.linux-#{architecture}.tar.gz" }
property :checksum, String, default: lazy {
{
'amd64' => 'f643ea1ee90d109329302d27bddb1fb2e52655b1fa84e9e26f9a6f340da144a6',
'arm64' => '4e40f115655a3021744137f49287846bc5a59e02835565748ff66b23e776a73d',
}[architecture]
}
property :file_extension, String, default: ''
property :source_repository, String, default: 'https://github.com/prometheus/prometheus.git'
property :source_revision, String, default: lazy { "v#{version}" }
property :config_file, String, default: '/opt/prometheus/prometheus.yml'
property :storage_path, String, default: '/var/lib/prometheus'
property :flags, Hash, default: lazy {
legacy_flags = {
'config.file' => config_file,
'log.level' => 'info',
'alertmanager.timeout' => '10s',
'alertmanager.notification-queue-capacity' => 100,
'alertmanager.url' => 'http://127.0.0.1/alert-manager/',
'query.max-concurrency' => 20,
'query.staleness-delta' => '5m',
'query.timeout' => '2m',
'storage.local.checkpoint-dirty-series-limit' => 5000,
'storage.local.checkpoint-interval' => '5m',
'storage.local.dirty' => false,
'storage.local.index-cache-size.fingerprint-to-metric' => 10_485_760,
'storage.local.index-cache-size.fingerprint-to-timerange' => 5_242_880,
'storage.local.index-cache-size.label-name-to-label-values' => 10_485_760,
'storage.local.index-cache-size.label-pair-to-fingerprints' => 20_971_520,
'storage.local.memory-chunks' => 1_048_576,
'storage.local.path' => storage_path,
'storage.local.pedantic-checks' => false,
'storage.local.retention' => '360h0m0s',
'storage.local.series-sync-strategy' => 'adaptive',
'storage.remote.influxdb-url' => '',
'storage.remote.influxdb.database' => 'prometheus',
'storage.remote.influxdb.retention-policy' => 'default',
'storage.remote.opentsdb-url' => '',
'storage.remote.timeout' => '30s',
'web.console.libraries' => 'console_libraries',
'web.console.templates' => 'consoles',
'web.enable-remote-shutdown' => false,
'web.external-url' => '',
'web.listen-address' => ':9090',
'web.telemetry-path' => '/metrics',
'web.user-assets' => '',
}
legacy_flags['web.use-local-assets'] = false if Gem::Version.new(version) <= Gem::Version.new('0.16.2')
legacy_flags
}
property :cli_options, Hash, default: lazy {
{
'config.file' => config_file,
'log.level' => 'info',
'query.max-concurrency' => 20,
'query.lookback-delta' => '5m',
'query.timeout' => '2m',
'storage.tsdb.path' => storage_path,
'storage.tsdb.retention.time' => '15d',
'web.listen-address' => ':9090',
'web.telemetry-path' => '/metrics',
}
}
property :cli_flags, Array, default: ['web.enable-lifecycle']