diff --git a/tools/end-to-end-test.ps1 b/tools/end-to-end-test.ps1 index 54b390d8..1d370749 100644 --- a/tools/end-to-end-test.ps1 +++ b/tools/end-to-end-test.ps1 @@ -24,19 +24,19 @@ $skip_re = "^(go_|windows_exporter_build_info|windows_exporter_collector_duratio # Use default collectors, port and address: http://localhost:9182/metrics $exporter_proc = Start-Process ` -PassThru ` - -FilePath .\windows_exporter.exe ` + -FilePath ..\windows_exporter.exe ` -ArgumentList "--log.level=debug --collector.textfile.directory=$($textfile_dir)" ` -WindowStyle Hidden ` -RedirectStandardOutput "$($temp_dir)/windows_exporter.log" ` -RedirectStandardError "$($temp_dir)/windows_exporter_error.log" # Give exporter some time to start -Start-Sleep 3 +Start-Sleep 15 $response = Invoke-WebRequest -UseBasicParsing -URI http://127.0.0.1:9182/metrics # Response output must be split and saved as UTF-8. $response.content -split "[`r`n]"| Select-String -NotMatch $skip_re | Set-Content -Encoding utf8 "$($temp_dir)/e2e-output.txt" -Stop-Process $exporter_proc +Stop-Process -Id $exporter_proc.Id $output_diff = Compare-Object (Get-Content 'e2e-output.txt') (Get-Content "$($temp_dir)/e2e-output.txt") # Fail if differences in output are detected diff --git a/tools/promtool.ps1 b/tools/promtool.ps1 index 8fdbdf81..16fe32c6 100644 --- a/tools/promtool.ps1 +++ b/tools/promtool.ps1 @@ -88,23 +88,24 @@ Push-Location $working_dir $temp_dir = Join-Path $env:TEMP $(New-Guid) | ForEach-Object { mkdir $_ } # Start process in background, awaiting HTTP requests. -# Use default collectors, port and address: http://localhost:9182/metrics +# Listen on 9183/TCP, preventing conflicts with 9182/TCP used by end-to-end-test.ps1 +# Not an issue when run individually, but will cause failures when run concurrently in CI. $exporter_proc = Start-Process ` -PassThru ` - -FilePath .\windows_exporter.exe ` - -ArgumentList "--log.level=debug" ` + -FilePath ..\windows_exporter.exe ` + -ArgumentList '--telemetry.addr="127.0.0.1:9183" --log.level=debug' ` -WindowStyle Hidden ` -RedirectStandardOutput "$($temp_dir)/windows_exporter.log" ` -RedirectStandardError "$($temp_dir)/windows_exporter_error.log" # Give exporter some time to start -Start-Sleep 3 +Start-Sleep 15 # Omit metrics from client_golang library; we're not responsible for these $skip_re = "^[#]?\s*(HELP|TYPE)?\s*go_" # Need to remove carriage returns, as promtool expects LF line endings -$output = ((Invoke-WebRequest -UseBasicParsing -URI http://127.0.0.1:9182/metrics).Content) -Split "`r?`n" | Select-String -NotMatch $skip_re | Join-String -Separator "`n" +$output = ((Invoke-WebRequest -UseBasicParsing -URI http://127.0.0.1:9183/metrics).Content) -Split "`r?`n" | Select-String -NotMatch $skip_re | Join-String -Separator "`n" # Join the split lines back to a single String (with LF line endings!) $output = $output -Join "`n" Stop-Process -Id $exporter_proc.Id