mirror of
				https://github.com/zulip/zulip.git
				synced 2025-10-30 03:23:50 +00:00 
			
		
		
		
	puppet: Add prometheus server.
This commit is contained in:
		
				
					committed by
					
						 Alex Vandiver
						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