| 
									
										
										
										
											2018-08-02 16:39:57 +02:00
										 |  |  | import ./make-test.nix ({ pkgs, ... } : | 
					
						
							| 
									
										
										
										
											2017-09-30 21:12:24 +02:00
										 |  |  | { | 
					
						
							|  |  |  |   name = "graphite"; | 
					
						
							|  |  |  |   nodes = { | 
					
						
							|  |  |  |     one = | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |       { ... }: { | 
					
						
							| 
									
										
										
										
											2018-05-10 23:30:56 +02:00
										 |  |  |         virtualisation.memorySize = 1024; | 
					
						
							| 
									
										
										
										
											2017-10-31 15:49:59 +01:00
										 |  |  |         time.timeZone = "UTC"; | 
					
						
							| 
									
										
										
										
											2017-09-30 21:12:24 +02:00
										 |  |  |         services.graphite = { | 
					
						
							| 
									
										
										
										
											2017-10-31 15:49:59 +01:00
										 |  |  |           web.enable = true; | 
					
						
							|  |  |  |           api = { | 
					
						
							| 
									
										
										
										
											2017-09-30 21:12:24 +02:00
										 |  |  |             enable = true; | 
					
						
							| 
									
										
										
										
											2017-10-31 15:49:59 +01:00
										 |  |  |             port = 8082; | 
					
						
							| 
									
										
										
										
											2018-08-02 16:39:57 +02:00
										 |  |  |             finders = [ pkgs.python27Packages.influxgraph ]; | 
					
						
							| 
									
										
										
										
											2017-09-30 21:12:24 +02:00
										 |  |  |           }; | 
					
						
							| 
									
										
										
										
											2017-10-31 15:49:59 +01:00
										 |  |  |           carbon.enableCache = true; | 
					
						
							|  |  |  |           seyren.enable = true; | 
					
						
							|  |  |  |           pager.enable = true; | 
					
						
							| 
									
										
										
										
											2018-08-02 16:39:57 +02:00
										 |  |  |           beacon.enable = true; | 
					
						
							| 
									
										
										
										
											2017-09-30 21:12:24 +02:00
										 |  |  |         }; | 
					
						
							|  |  |  |       }; | 
					
						
							| 
									
										
										
										
											2017-10-31 15:49:59 +01:00
										 |  |  |   }; | 
					
						
							| 
									
										
										
										
											2017-09-30 21:12:24 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   testScript = ''
 | 
					
						
							|  |  |  |     startAll; | 
					
						
							|  |  |  |     $one->waitForUnit("default.target"); | 
					
						
							| 
									
										
										
										
											2018-05-10 23:30:56 +02:00
										 |  |  |     $one->waitForUnit("graphiteWeb.service"); | 
					
						
							|  |  |  |     $one->waitForUnit("graphiteApi.service"); | 
					
						
							|  |  |  |     $one->waitForUnit("graphitePager.service"); | 
					
						
							| 
									
										
										
										
											2018-08-02 16:39:57 +02:00
										 |  |  |     $one->waitForUnit("graphite-beacon.service"); | 
					
						
							| 
									
										
										
										
											2018-05-10 23:30:56 +02:00
										 |  |  |     $one->waitForUnit("carbonCache.service"); | 
					
						
							|  |  |  |     $one->waitForUnit("seyren.service"); | 
					
						
							|  |  |  |     # The services above are of type "simple". systemd considers them active immediately | 
					
						
							|  |  |  |     # even if they're still in preStart (which takes quite long for graphiteWeb). | 
					
						
							|  |  |  |     # Wait for ports to open so we're sure the services are up and listening. | 
					
						
							|  |  |  |     $one->waitForOpenPort(8080); | 
					
						
							|  |  |  |     $one->waitForOpenPort(2003); | 
					
						
							|  |  |  |     $one->succeed("echo \"foo 1 `date +%s`\" | nc -N localhost 2003"); | 
					
						
							|  |  |  |     $one->waitUntilSucceeds("curl 'http://localhost:8080/metrics/find/?query=foo&format=treejson' --silent | grep foo >&2"); | 
					
						
							| 
									
										
										
										
											2017-09-30 21:12:24 +02:00
										 |  |  |   '';
 | 
					
						
							|  |  |  | }) |