| 
									
										
										
										
											2015-06-07 23:36:56 -07:00
										 |  |  | import ./make-test.nix { | 
					
						
							|  |  |  |   name = "prometheus"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   nodes = { | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |     one = { ... }: { | 
					
						
							| 
									
										
										
										
											2015-06-07 23:36:56 -07:00
										 |  |  |       services.prometheus = { | 
					
						
							|  |  |  |         enable = true; | 
					
						
							|  |  |  |         scrapeConfigs = [{ | 
					
						
							|  |  |  |           job_name = "prometheus"; | 
					
						
							| 
									
										
										
										
											2016-12-20 23:17:46 +01:00
										 |  |  |           static_configs = [{ | 
					
						
							| 
									
										
										
										
											2015-06-07 23:36:56 -07:00
										 |  |  |             targets = [ "127.0.0.1:9090" ]; | 
					
						
							|  |  |  |             labels = { instance = "localhost"; }; | 
					
						
							|  |  |  |           }]; | 
					
						
							|  |  |  |         }]; | 
					
						
							|  |  |  |         rules = [ ''testrule = count(up{job="prometheus"})'' ]; | 
					
						
							| 
									
										
										
										
											2018-11-04 19:27:43 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |         # a very simple version of the alertmanager configuration just to see if | 
					
						
							|  |  |  |         # configuration checks & service startup are working | 
					
						
							|  |  |  |         alertmanager = { | 
					
						
							|  |  |  |           enable = true; | 
					
						
							|  |  |  |           listenAddress = "[::1]"; | 
					
						
							|  |  |  |           port = 9093; | 
					
						
							|  |  |  |           configuration = { | 
					
						
							|  |  |  |             route.receiver = "webhook"; | 
					
						
							|  |  |  |             receivers = [ | 
					
						
							|  |  |  |               { | 
					
						
							|  |  |  |                 name = "webhook"; | 
					
						
							|  |  |  |                 webhook_configs = [ | 
					
						
							|  |  |  |                   { url = "http://localhost"; } | 
					
						
							|  |  |  |                 ]; | 
					
						
							|  |  |  |               } | 
					
						
							|  |  |  |             ]; | 
					
						
							|  |  |  |           }; | 
					
						
							|  |  |  |         }; | 
					
						
							| 
									
										
										
										
											2015-06-07 23:36:56 -07:00
										 |  |  |       }; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   testScript = ''
 | 
					
						
							|  |  |  |     startAll; | 
					
						
							|  |  |  |     $one->waitForUnit("prometheus.service"); | 
					
						
							|  |  |  |     $one->waitForOpenPort(9090); | 
					
						
							|  |  |  |     $one->succeed("curl -s http://127.0.0.1:9090/metrics"); | 
					
						
							| 
									
										
										
										
											2018-11-04 19:27:43 +01:00
										 |  |  |     $one->waitForUnit("alertmanager.service"); | 
					
						
							|  |  |  |     $one->waitForOpenPort("9093"); | 
					
						
							|  |  |  |     $one->succeed("curl -f -s http://localhost:9093/"); | 
					
						
							| 
									
										
										
										
											2015-06-07 23:36:56 -07:00
										 |  |  |   '';
 | 
					
						
							|  |  |  | } |