mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 06:23:38 +00:00
puppet: Add prometheus server.
This commit is contained in:
committed by
Alex Vandiver
parent
19fb58e845
commit
459f37f041
23
puppet/zulip_ops/files/prometheus/prometheus.yaml
Normal file
23
puppet/zulip_ops/files/prometheus/prometheus.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
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_configs:
|
||||
# Self-monitoring
|
||||
- job_name: "prometheus"
|
||||
static_configs:
|
||||
- targets: ["localhost:9090"]
|
||||
|
||||
# Fetch from node_exporter on all of the EC2 hosts
|
||||
- job_name: "node"
|
||||
ec2_sd_configs:
|
||||
- region: us-east-1
|
||||
port: 9100
|
||||
refresh_interval: 1m
|
||||
relabel_configs:
|
||||
- source_labels: ["__meta_ec2_tag_Name"]
|
||||
target_label: "instance"
|
||||
- source_labels: ["__meta_ec2_tag_role"]
|
||||
target_label: "role"
|
||||
9
puppet/zulip_ops/files/supervisor/conf.d/prometheus.conf
Normal file
9
puppet/zulip_ops/files/supervisor/conf.d/prometheus.conf
Normal file
@@ -0,0 +1,9 @@
|
||||
[program:prometheus]
|
||||
command=/srv/prometheus/prometheus --storage.tsdb.path="/var/lib/prometheus" --config.file="/etc/prometheus/prometheus.yaml" --web.listen-address="127.0.0.1:9090"
|
||||
directory=/srv/prometheus
|
||||
priority=10
|
||||
autostart=true
|
||||
autorestart=true
|
||||
user=prometheus
|
||||
redirect_stderr=true
|
||||
stdout_logfile=/var/log/prometheus.log
|
||||
62
puppet/zulip_ops/manifests/profile/prometheus_server.pp
Normal file
62
puppet/zulip_ops/manifests/profile/prometheus_server.pp
Normal file
@@ -0,0 +1,62 @@
|
||||
# @summary Gathers Prometheus statistics from all nodes.
|
||||
#
|
||||
# Only one instance is necessary.
|
||||
#
|
||||
class zulip_ops::profile::prometheus_server {
|
||||
include zulip_ops::profile::base
|
||||
include zulip_ops::prometheus::base
|
||||
|
||||
$version = '2.27.1'
|
||||
zulip::sha256_tarball_to { 'prometheus':
|
||||
url => "https://github.com/prometheus/prometheus/releases/download/v${version}/prometheus-${version}.linux-amd64.tar.gz",
|
||||
sha256 => 'ce637d0167d5e6d2561f3bd37e1c58fe8601e13e4e1ea745653c068f6e1317ae',
|
||||
install => {
|
||||
"prometheus-${version}.linux-amd64/" => "/srv/prometheus-${version}/",
|
||||
},
|
||||
}
|
||||
file { '/srv/prometheus':
|
||||
ensure => 'link',
|
||||
target => "/srv/prometheus-${version}/",
|
||||
require => Zulip::Sha256_tarball_to['prometheus'],
|
||||
}
|
||||
file { '/usr/local/bin/promtool':
|
||||
ensure => 'link',
|
||||
target => '/srv/prometheus/promtool',
|
||||
require => File['/srv/prometheus'],
|
||||
}
|
||||
|
||||
file { '/var/lib/prometheus':
|
||||
ensure => directory,
|
||||
owner => 'prometheus',
|
||||
group => 'prometheus',
|
||||
require => [ User[prometheus], Group[prometheus] ],
|
||||
}
|
||||
file { '/etc/supervisor/conf.d/prometheus.conf':
|
||||
ensure => file,
|
||||
require => [
|
||||
Package[supervisor],
|
||||
File['/srv/prometheus'],
|
||||
File['/var/lib/prometheus'],
|
||||
],
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0644',
|
||||
source => 'puppet:///modules/zulip_ops/supervisor/conf.d/prometheus.conf',
|
||||
notify => Service[supervisor],
|
||||
}
|
||||
|
||||
file { '/etc/prometheus':
|
||||
ensure => directory,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0644',
|
||||
}
|
||||
file { '/etc/prometheus/prometheus.yaml':
|
||||
ensure => file,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0644',
|
||||
source => 'puppet:///modules/zulip_ops/prometheus/prometheus.yaml',
|
||||
notify => Service[supervisor],
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user