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