prometheus-formula/pillar.example

286 lines
10 KiB
Plaintext
Raw Normal View History

# -*- coding: utf-8 -*-
# vim: ft=yaml
---
# Prometheus has two approaches to handling config arguments, through an environment
# file or directly adding to the service file.
# This formular takes both approaches in seperate circumstances, with the archive
# install approach implementing a custom service file, and the repo (default) approach
# using an environ file with the standard package provided service file.
# As a result, depending on the install method used, the environ:args or service:args
# pillars need to be set appropriately.
# The default options given under service in the default.yaml may not therefore apply
# depending on the install method, and in some cases they are no longer consistent
# with the default configuration in the latest package.
# This applies to all components with an example provided for node_exporter.
prometheus:
2019-06-20 02:36:58 +02:00
wanted:
clientlibs:
- golang
- haskell
- rust
component:
# List components (ie, exporters) using underscores and
# removing the 'prometheus' prefix
- prometheus
- alertmanager
- node_exporter
- php-fpm_exporter
- postgres_exporter
# - memcached_exporter # not in upstream repo, only archive
exporters:
node_exporter:
textfile_collectors_dependencies: []
textfile_collectors:
ipmitool:
enable: false
remove: false
pkg: ipmitool
smartmon:
enable: false
remove: false
pkg: smartmontools
bash_pkg: bash
smartctl: /usr/sbin/smartctl
pkg:
use_upstream_repo: false
# Uses the archive install method with true or repo method with false. Default is
# false.
# The archive and repo methods use completely different approaches to
# / service arguments handling, with different required pillar values.
# The repo method uses the package service config, the archive method uses a custom
# service config.
use_upstream_archive: true
clientlibs:
# https://prometheus.io/docs/instrumenting/clientlibs
# no bash & perl client tarballs are available
golang:
version: v1.6.0
component:
# If you use OS packages in Debian's family, components should have
# a 'name' variable stating the name of the package (it's generally
# something like `prometheus-component-with-dashes-replacing-underscores`
# ie,
# node_exporter:
# name: prometheus-node-exporter
#
# See prometheus/osfamilymap.yaml for more examples
alertmanager:
config:
# yamllint disable-line rule:line-length
# ref https://github.com/prometheus/alertmanager/blob/master/config/testdata/conf.good.yml
global:
smtp_smarthost: 'localhost:25'
smtp_from: 'alertmanager@example.org'
smtp_auth_username: 'alertmanager'
smtp_auth_password: "multiline\nmysecret"
smtp_hello: "host.example.org"
slack_api_url: "http://mysecret.example.com/"
http_config:
proxy_url: 'http://127.0.0.1:1025'
route:
group_by: ['alertname', 'cluster', 'service']
group_wait: 30s
group_interval: 5m
repeat_interval: 3h
receiver: team-X-mails
routes:
- match_re:
service: ^(foo1|foo2|baz)$
receiver: team-X-mails
routes:
- match:
severity: critical
receiver: team-X-mails
receivers:
- name: 'team-X-mails'
email_configs:
- to: 'team-X+alerts@example.org'
inhibit_rules:
- name: opsGenie-receiver
opsgenie_configs:
- api_key: mysecret
- name: slack-receiver
slack_configs:
- channel: '#my-channel'
image_url: 'http://some.img.com/img.png'
node_exporter:
version: v0.18.1
archive:
source_hash: b2503fd932f85f4e5baf161268854bf5d22001869b84f00fd2d1f57b51b72424
environ:
args:
collector.systemd: null
web.listen-address: ":9110"
service:
name: prometheus-node-exporter
args:
collector.systemd: null
web.listen-address: ":9110"
# collector.textfile.directory: /var/tmp/node_exporter
prometheus:
service:
args:
web.listen-address: 0.0.0.0:9090
config:
# yamllint disable-line rule:line-length
# ref https://raw.githubusercontent.com/prometheus/prometheus/release-2.10/config/testdata/conf.good.yml
# my global config
global:
# Set the scrape interval to every 15 seconds. Default is every 1 minute
scrape_interval: 15s
# Evaluate rules every 15 seconds. The default is every 1 minute
evaluation_interval: 15s
# scrape_timeout is set to the global default (10s)
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
- alertmanager1:9093
- alertmanager2:9093
- alertmanager3:9093
# Load rules once and periodically evaluate them according to the global
# 'evaluation_interval'
# You can manage these files with the `extra_files` dict (see below)
rule_files:
- "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries
# scraped from this config
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'
static_configs:
- targets: ['localhost:9090']
- job_name: pushgateway
scrape_interval: 5s
honor_labels: true
static_configs:
- targets: ['pushgateway:9091']
- job_name: 'blackbox'
# https://github.com/prometheus/blackbox_exporter#prometheus-configuration
metrics_path: /probe
params:
module: [http_2xx] # Look for a HTTP 200 response
static_configs:
- targets:
- http://prometheus.io # Target to probe with http
- https://prometheus.io # Target to probe with https
- http://example.com:8080 # Target to probe with http on port 8080
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: '127.0.0.1:9115' # real hostname and port
pushgateway:
version: v0.8.0
archive:
source_hash: 6949866ba9ad0cb88d3faffd4281f17df79281398b4dbd0ec3aab300071681ca
service:
args:
web.listen-address: ":9091"
web.telemetry-path: "/metrics"
php-fpm_exporter:
version: v0.6.1
archive:
official: false
tar: false
# yamllint disable-line rule:line-length
source: https://github.com/bakins/php-fpm-exporter/releases/download/v0.6.1/php-fpm-exporter.linux.amd64
source_hash: 40e52d84f7decb5fdad9fadacf63cb2de26ebddce56e11b20651555e8d6c6130
service:
args:
addr: ":9253"
fastcgi: "unix:///run/php/php-fpm.sock"
postgres_exporter:
version: v0.8.0
service:
env:
- 'DATA_SOURCE_NAME=foo:bar@/'
archive:
official: false
# yamllint disable-line rule:line-length
source: https://github.com/wrouesnel/postgres_exporter/releases/download/v0.8.0/postgres_exporter_v0.8.0_linux-amd64.tar.gz
skip_verify: true
mysqld_exporter:
service:
env:
- 'DATA_SOURCE_NAME=foo:bar@/'
linux:
# 'Alternatives system' priority: zero disables (default)
# yamllint disable-line rule:braces
altpriority: {{ range(1, 100000) | random }}
# This dict lets you manage other config files (like the `rule_files` for the
# alertmanager) or split the config un multiple and organize files in meaninful ways
extra_files:
first_rules:
component: alertmanager
config:
groups:
- name: example
rules:
- alert: HighRequestLatency
expr: 'job:request_latency_seconds:mean5m{job="myjob"} > 0.5'
for: 10m
labels:
severity: page
annotations:
summary: High request latency
# You can specify a `file` parameter, which will be used to create a file
# under the prometheus config dir. In this example, the file will be
# named /etc/prometheus/subdir/second.yml
second_rules:
file: subdir/second
component: alertmanager
config:
groups:
- name: example
rules:
- alert: HighRequestLatency
expr: 'job:request_latency_seconds:mean5m{job="myjob"} > 0.5'
for: 10m
labels: {}
tofs:
# The files_switch key serves as a selector for alternative
# directories under the formula files directory. See TOFS pattern
# doc for more info
# Note: Any value not evaluated by `config.get` will be used literally
# This can be used to set custom paths, as many levels deep as required
files_switch:
- any/path/can/be/used/here
- id
- osfinger
- os
- os_family
# All aspects of path/file resolution are customisable using the options below
# This is unnecessary in most cases; there are sensible defaults
# path_prefix: prometheus_alt
# dirs:
# files: files_alt
# default: default_alt
feat(yamllint): include for this repo and apply rules throughout * Semi-automated using `ssf-formula` (v0.5.0) * Fix errors shown below: ```bash prometheus-formula$ $(grep "\- yamllint" .travis.yml | sed -e "s:^\s\+-\s\(.*\):\1:") ./prometheus/osfamilymap.yaml 1:89 error line too long (116 > 88 characters) (line-length) 1:24 error trailing spaces (trailing-spaces) 13:2 error syntax error: found character '%' that cannot start any token 24:89 error line too long (90 > 88 characters) (line-length) 25:89 error line too long (167 > 88 characters) (line-length) ./prometheus/defaults.yaml 6:13 error too many spaces inside braces (braces) 6:35 error too many spaces inside braces (braces) 7:11 error too many spaces inside braces (braces) 7:25 error too many spaces inside braces (braces) 8:22 warning truthy value should be one of [false, true] (truthy) 9:25 warning truthy value should be one of [false, true] (truthy) 49:85 error trailing spaces (trailing-spaces) 103:20 warning truthy value should be one of [false, true] (truthy) 104:25 warning truthy value should be one of [false, true] (truthy) 108:16 warning truthy value should be one of [false, true] (truthy) 113:24 warning missing starting space in comment (comments) pillar.example 31:6 warning missing starting space in comment (comments) 32:8 warning missing starting space in comment (comments) 32:7 warning comment not indented like content (comments-indentation) 51:5 warning comment not indented like content (comments-indentation) 65:89 error line too long (110 > 88 characters) (line-length) 68:29 error too many spaces after colon (colons) 68:34 warning too few spaces before comment (comments) 68:89 error line too long (106 > 88 characters) (line-length) 69:34 warning too few spaces before comment (comments) 69:89 error line too long (98 > 88 characters) (line-length) 75:9 error wrong indentation: expected 10 but found 8 (indentation) 76:11 error wrong indentation: expected 12 but found 10 (indentation) 77:13 warning comment not indented like content (comments-indentation) 79:89 error line too long (101 > 88 characters) (line-length) 81:9 warning comment not indented like content (comments-indentation) 86:89 error line too long (103 > 88 characters) (line-length) 91:11 error wrong indentation: expected 12 but found 10 (indentation) 106:15 error wrong indentation: expected 16 but found 14 (indentation) 108:41 warning too few spaces before comment (comments) 118:89 error line too long (96 > 88 characters) (line-length) 139:13 error wrong indentation: expected 14 but found 12 (indentation) 143:7 error wrong indentation: expected 8 but found 6 (indentation) 145:9 error wrong indentation: expected 10 but found 8 (indentation) 157:6 warning missing starting space in comment (comments) 158:20 error too many spaces inside braces (braces) 158:47 error too many spaces inside braces (braces) ```
2019-08-06 21:57:50 +02:00
source_files:
prometheus-config-file-file-managed:
- 'alt_config.yml.jinja'
2019-12-12 06:38:58 +01:00
prometheus-archive-install-managed-service:
- 'alt_systemd.ini.jinja'