Add smoketest script
Signed-off-by: Ben Reedy <breed808@breed808.com>
This commit is contained in:
parent
6e0ac6a1fc
commit
b300998b4b
4
Makefile
4
Makefile
|
@ -9,6 +9,10 @@ test:
|
|||
lint:
|
||||
golangci-lint -c .golangci.yaml run
|
||||
|
||||
.PHONY: e2e-test
|
||||
e2e-test: build
|
||||
powershell -NonInteractive -ExecutionPolicy Bypass -File .\tools\end-to-end-test.ps1
|
||||
|
||||
fmt:
|
||||
gofmt -l -w -s .
|
||||
|
||||
|
|
|
@ -0,0 +1,220 @@
|
|||
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
|
||||
# TYPE go_gc_duration_seconds summary
|
||||
# HELP go_goroutines Number of goroutines that currently exist.
|
||||
# TYPE go_goroutines gauge
|
||||
# HELP go_info Information about the Go environment.
|
||||
# TYPE go_info gauge
|
||||
# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.
|
||||
# TYPE go_memstats_alloc_bytes gauge
|
||||
# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
|
||||
# TYPE go_memstats_alloc_bytes_total counter
|
||||
# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
|
||||
# TYPE go_memstats_buck_hash_sys_bytes gauge
|
||||
# HELP go_memstats_frees_total Total number of frees.
|
||||
# TYPE go_memstats_frees_total counter
|
||||
# HELP go_memstats_gc_cpu_fraction The fraction of this program's available CPU time used by the GC since the program started.
|
||||
# TYPE go_memstats_gc_cpu_fraction gauge
|
||||
# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata.
|
||||
# TYPE go_memstats_gc_sys_bytes gauge
|
||||
# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use.
|
||||
# TYPE go_memstats_heap_alloc_bytes gauge
|
||||
# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used.
|
||||
# TYPE go_memstats_heap_idle_bytes gauge
|
||||
# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use.
|
||||
# TYPE go_memstats_heap_inuse_bytes gauge
|
||||
# HELP go_memstats_heap_objects Number of allocated objects.
|
||||
# TYPE go_memstats_heap_objects gauge
|
||||
# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS.
|
||||
# TYPE go_memstats_heap_released_bytes gauge
|
||||
# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system.
|
||||
# TYPE go_memstats_heap_sys_bytes gauge
|
||||
# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection.
|
||||
# TYPE go_memstats_last_gc_time_seconds gauge
|
||||
# HELP go_memstats_lookups_total Total number of pointer lookups.
|
||||
# TYPE go_memstats_lookups_total counter
|
||||
# HELP go_memstats_mallocs_total Total number of mallocs.
|
||||
# TYPE go_memstats_mallocs_total counter
|
||||
# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures.
|
||||
# TYPE go_memstats_mcache_inuse_bytes gauge
|
||||
# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system.
|
||||
# TYPE go_memstats_mcache_sys_bytes gauge
|
||||
# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures.
|
||||
# TYPE go_memstats_mspan_inuse_bytes gauge
|
||||
# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system.
|
||||
# TYPE go_memstats_mspan_sys_bytes gauge
|
||||
# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place.
|
||||
# TYPE go_memstats_next_gc_bytes gauge
|
||||
# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations.
|
||||
# TYPE go_memstats_other_sys_bytes gauge
|
||||
# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator.
|
||||
# TYPE go_memstats_stack_inuse_bytes gauge
|
||||
# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator.
|
||||
# TYPE go_memstats_stack_sys_bytes gauge
|
||||
# HELP go_memstats_sys_bytes Number of bytes obtained from system.
|
||||
# TYPE go_memstats_sys_bytes gauge
|
||||
# HELP go_threads Number of OS threads created.
|
||||
# TYPE go_threads gauge
|
||||
# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
|
||||
# TYPE process_cpu_seconds_total counter
|
||||
# HELP process_max_fds Maximum number of open file descriptors.
|
||||
# TYPE process_max_fds gauge
|
||||
# HELP process_open_fds Number of open file descriptors.
|
||||
# TYPE process_open_fds gauge
|
||||
# HELP process_resident_memory_bytes Resident memory size in bytes.
|
||||
# TYPE process_resident_memory_bytes gauge
|
||||
# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
|
||||
# TYPE process_start_time_seconds gauge
|
||||
# HELP process_virtual_memory_bytes Virtual memory size in bytes.
|
||||
# TYPE process_virtual_memory_bytes gauge
|
||||
# HELP windows_cpu_clock_interrupts_total Total number of received and serviced clock tick interrupts
|
||||
# TYPE windows_cpu_clock_interrupts_total counter
|
||||
# HELP windows_cpu_core_frequency_mhz Core frequency in megahertz
|
||||
# TYPE windows_cpu_core_frequency_mhz gauge
|
||||
# HELP windows_cpu_cstate_seconds_total Time spent in low-power idle state
|
||||
# TYPE windows_cpu_cstate_seconds_total counter
|
||||
# HELP windows_cpu_dpcs_total Total number of received and serviced deferred procedure calls (DPCs)
|
||||
# TYPE windows_cpu_dpcs_total counter
|
||||
# HELP windows_cpu_idle_break_events_total Total number of time processor was woken from idle
|
||||
# TYPE windows_cpu_idle_break_events_total counter
|
||||
# HELP windows_cpu_interrupts_total Total number of received and serviced hardware interrupts
|
||||
# TYPE windows_cpu_interrupts_total counter
|
||||
# HELP windows_cpu_parking_status Parking Status represents whether a processor is parked or not
|
||||
# TYPE windows_cpu_parking_status gauge
|
||||
# HELP windows_cpu_processor_performance Processor Performance is the average performance of the processor while it is executing instructions, as a percentage of the nominal performance of the processor. On some processors, Processor Performance may exceed 100%
|
||||
# TYPE windows_cpu_processor_performance gauge
|
||||
# HELP windows_cpu_time_total Time that processor spent in different modes (idle, user, system, ...)
|
||||
# TYPE windows_cpu_time_total counter
|
||||
# HELP windows_cs_hostname Labeled system hostname information as provided by ComputerSystem.DNSHostName and ComputerSystem.Domain
|
||||
# TYPE windows_cs_hostname gauge
|
||||
# HELP windows_cs_logical_processors ComputerSystem.NumberOfLogicalProcessors
|
||||
# TYPE windows_cs_logical_processors gauge
|
||||
# HELP windows_cs_physical_memory_bytes ComputerSystem.TotalPhysicalMemory
|
||||
# TYPE windows_cs_physical_memory_bytes gauge
|
||||
# HELP windows_exporter_build_info A metric with a constant '1' value labeled by version, revision, branch, and goversion from which windows_exporter was built.
|
||||
# TYPE windows_exporter_build_info gauge
|
||||
# HELP windows_exporter_collector_duration_seconds windows_exporter: Duration of a collection.
|
||||
# TYPE windows_exporter_collector_duration_seconds gauge
|
||||
# HELP windows_exporter_collector_success windows_exporter: Whether the collector was successful.
|
||||
# TYPE windows_exporter_collector_success gauge
|
||||
windows_exporter_collector_success{collector="cpu"} 1
|
||||
windows_exporter_collector_success{collector="cs"} 1
|
||||
windows_exporter_collector_success{collector="logical_disk"} 1
|
||||
windows_exporter_collector_success{collector="net"} 1
|
||||
windows_exporter_collector_success{collector="os"} 1
|
||||
windows_exporter_collector_success{collector="service"} 1
|
||||
windows_exporter_collector_success{collector="system"} 1
|
||||
windows_exporter_collector_success{collector="textfile"} 1
|
||||
# HELP windows_exporter_collector_timeout windows_exporter: Whether the collector timed out.
|
||||
# TYPE windows_exporter_collector_timeout gauge
|
||||
windows_exporter_collector_timeout{collector="cpu"} 0
|
||||
windows_exporter_collector_timeout{collector="cs"} 0
|
||||
windows_exporter_collector_timeout{collector="logical_disk"} 0
|
||||
windows_exporter_collector_timeout{collector="net"} 0
|
||||
windows_exporter_collector_timeout{collector="os"} 0
|
||||
windows_exporter_collector_timeout{collector="service"} 0
|
||||
windows_exporter_collector_timeout{collector="system"} 0
|
||||
windows_exporter_collector_timeout{collector="textfile"} 0
|
||||
# HELP windows_exporter_perflib_snapshot_duration_seconds Duration of perflib snapshot capture
|
||||
# TYPE windows_exporter_perflib_snapshot_duration_seconds gauge
|
||||
# HELP windows_logical_disk_free_bytes Free space in bytes (LogicalDisk.PercentFreeSpace)
|
||||
# TYPE windows_logical_disk_free_bytes gauge
|
||||
# HELP windows_logical_disk_idle_seconds_total Seconds that the disk was idle (LogicalDisk.PercentIdleTime)
|
||||
# TYPE windows_logical_disk_idle_seconds_total counter
|
||||
# HELP windows_logical_disk_read_bytes_total The number of bytes transferred from the disk during read operations (LogicalDisk.DiskReadBytesPerSec)
|
||||
# TYPE windows_logical_disk_read_bytes_total counter
|
||||
# HELP windows_logical_disk_read_latency_seconds_total Shows the average time, in seconds, of a read operation from the disk (LogicalDisk.AvgDiskSecPerRead)
|
||||
# TYPE windows_logical_disk_read_latency_seconds_total counter
|
||||
# HELP windows_logical_disk_read_seconds_total Seconds that the disk was busy servicing read requests (LogicalDisk.PercentDiskReadTime)
|
||||
# TYPE windows_logical_disk_read_seconds_total counter
|
||||
# HELP windows_logical_disk_read_write_latency_seconds_total Shows the time, in seconds, of the average disk transfer (LogicalDisk.AvgDiskSecPerTransfer)
|
||||
# TYPE windows_logical_disk_read_write_latency_seconds_total counter
|
||||
# HELP windows_logical_disk_reads_total The number of read operations on the disk (LogicalDisk.DiskReadsPerSec)
|
||||
# TYPE windows_logical_disk_reads_total counter
|
||||
# HELP windows_logical_disk_requests_queued The number of requests queued to the disk (LogicalDisk.CurrentDiskQueueLength)
|
||||
# TYPE windows_logical_disk_requests_queued gauge
|
||||
# HELP windows_logical_disk_size_bytes Total space in bytes (LogicalDisk.PercentFreeSpace_Base)
|
||||
# TYPE windows_logical_disk_size_bytes gauge
|
||||
# HELP windows_logical_disk_split_ios_total The number of I/Os to the disk were split into multiple I/Os (LogicalDisk.SplitIOPerSec)
|
||||
# TYPE windows_logical_disk_split_ios_total counter
|
||||
# HELP windows_logical_disk_write_bytes_total The number of bytes transferred to the disk during write operations (LogicalDisk.DiskWriteBytesPerSec)
|
||||
# TYPE windows_logical_disk_write_bytes_total counter
|
||||
# HELP windows_logical_disk_write_latency_seconds_total Shows the average time, in seconds, of a write operation to the disk (LogicalDisk.AvgDiskSecPerWrite)
|
||||
# TYPE windows_logical_disk_write_latency_seconds_total counter
|
||||
# HELP windows_logical_disk_write_seconds_total Seconds that the disk was busy servicing write requests (LogicalDisk.PercentDiskWriteTime)
|
||||
# TYPE windows_logical_disk_write_seconds_total counter
|
||||
# HELP windows_logical_disk_writes_total The number of write operations on the disk (LogicalDisk.DiskWritesPerSec)
|
||||
# TYPE windows_logical_disk_writes_total counter
|
||||
# HELP windows_net_bytes_received_total (Network.BytesReceivedPerSec)
|
||||
# TYPE windows_net_bytes_received_total counter
|
||||
# HELP windows_net_bytes_sent_total (Network.BytesSentPerSec)
|
||||
# TYPE windows_net_bytes_sent_total counter
|
||||
# HELP windows_net_bytes_total (Network.BytesTotalPerSec)
|
||||
# TYPE windows_net_bytes_total counter
|
||||
# HELP windows_net_current_bandwidth (Network.CurrentBandwidth)
|
||||
# TYPE windows_net_current_bandwidth gauge
|
||||
# HELP windows_net_packets_outbound_discarded_total (Network.PacketsOutboundDiscarded)
|
||||
# TYPE windows_net_packets_outbound_discarded_total counter
|
||||
# HELP windows_net_packets_outbound_errors_total (Network.PacketsOutboundErrors)
|
||||
# TYPE windows_net_packets_outbound_errors_total counter
|
||||
# HELP windows_net_packets_received_discarded_total (Network.PacketsReceivedDiscarded)
|
||||
# TYPE windows_net_packets_received_discarded_total counter
|
||||
# HELP windows_net_packets_received_errors_total (Network.PacketsReceivedErrors)
|
||||
# TYPE windows_net_packets_received_errors_total counter
|
||||
# HELP windows_net_packets_received_total (Network.PacketsReceivedPerSec)
|
||||
# TYPE windows_net_packets_received_total counter
|
||||
# HELP windows_net_packets_received_unknown_total (Network.PacketsReceivedUnknown)
|
||||
# TYPE windows_net_packets_received_unknown_total counter
|
||||
# HELP windows_net_packets_sent_total (Network.PacketsSentPerSec)
|
||||
# TYPE windows_net_packets_sent_total counter
|
||||
# HELP windows_net_packets_total (Network.PacketsPerSec)
|
||||
# TYPE windows_net_packets_total counter
|
||||
# HELP windows_os_info OperatingSystem.Caption, OperatingSystem.Version
|
||||
# TYPE windows_os_info gauge
|
||||
# HELP windows_os_paging_free_bytes OperatingSystem.FreeSpaceInPagingFiles
|
||||
# TYPE windows_os_paging_free_bytes gauge
|
||||
# HELP windows_os_paging_limit_bytes OperatingSystem.SizeStoredInPagingFiles
|
||||
# TYPE windows_os_paging_limit_bytes gauge
|
||||
# HELP windows_os_physical_memory_free_bytes OperatingSystem.FreePhysicalMemory
|
||||
# TYPE windows_os_physical_memory_free_bytes gauge
|
||||
# HELP windows_os_process_memory_limix_bytes OperatingSystem.MaxProcessMemorySize
|
||||
# TYPE windows_os_process_memory_limix_bytes gauge
|
||||
# HELP windows_os_processes OperatingSystem.NumberOfProcesses
|
||||
# TYPE windows_os_processes gauge
|
||||
# HELP windows_os_processes_limit OperatingSystem.MaxNumberOfProcesses
|
||||
# TYPE windows_os_processes_limit gauge
|
||||
# HELP windows_os_time OperatingSystem.LocalDateTime
|
||||
# TYPE windows_os_time gauge
|
||||
# HELP windows_os_timezone OperatingSystem.LocalDateTime
|
||||
# TYPE windows_os_timezone gauge
|
||||
# HELP windows_os_users OperatingSystem.NumberOfUsers
|
||||
# TYPE windows_os_users gauge
|
||||
# HELP windows_os_virtual_memory_bytes OperatingSystem.TotalVirtualMemorySize
|
||||
# TYPE windows_os_virtual_memory_bytes gauge
|
||||
# HELP windows_os_virtual_memory_free_bytes OperatingSystem.FreeVirtualMemory
|
||||
# TYPE windows_os_virtual_memory_free_bytes gauge
|
||||
# HELP windows_os_visible_memory_bytes OperatingSystem.TotalVisibleMemorySize
|
||||
# TYPE windows_os_visible_memory_bytes gauge
|
||||
# HELP windows_service_info A metric with a constant '1' value labeled with service information
|
||||
# TYPE windows_service_info gauge
|
||||
# HELP windows_service_start_mode The start mode of the service (StartMode)
|
||||
# TYPE windows_service_start_mode gauge
|
||||
# HELP windows_service_state The state of the service (State)
|
||||
# TYPE windows_service_state gauge
|
||||
# HELP windows_service_status The status of the service (Status)
|
||||
# TYPE windows_service_status gauge
|
||||
# HELP windows_system_context_switches_total Total number of context switches (WMI source: PerfOS_System.ContextSwitchesPersec)
|
||||
# TYPE windows_system_context_switches_total counter
|
||||
# HELP windows_system_exception_dispatches_total Total number of exceptions dispatched (WMI source: PerfOS_System.ExceptionDispatchesPersec)
|
||||
# TYPE windows_system_exception_dispatches_total counter
|
||||
# HELP windows_system_processor_queue_length Length of processor queue (WMI source: PerfOS_System.ProcessorQueueLength)
|
||||
# TYPE windows_system_processor_queue_length gauge
|
||||
# HELP windows_system_system_calls_total Total number of system calls (WMI source: PerfOS_System.SystemCallsPersec)
|
||||
# TYPE windows_system_system_calls_total counter
|
||||
# HELP windows_system_system_up_time System boot time (WMI source: PerfOS_System.SystemUpTime)
|
||||
# TYPE windows_system_system_up_time gauge
|
||||
# HELP windows_system_threads Current number of threads (WMI source: PerfOS_System.Threads)
|
||||
# TYPE windows_system_threads gauge
|
||||
# HELP windows_textfile_scrape_error 1 if there was an error opening or reading a file, 0 otherwise
|
||||
# TYPE windows_textfile_scrape_error gauge
|
||||
windows_textfile_scrape_error 0
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
$ErrorActionPreference = 'Stop'
|
||||
Set-StrictMode -Version 3
|
||||
|
||||
if (-not (Test-Path -Path '.\windows_exporter.exe')) {
|
||||
Write-Output ".\windows_exporter.exe not found. Consider running \`go build\` first"
|
||||
}
|
||||
|
||||
# cd to location of script
|
||||
$script_path = $MyInvocation.MyCommand.Path
|
||||
$working_dir = Split-Path $script_path
|
||||
Push-Location $working_dir
|
||||
|
||||
$temp_dir = Join-Path $env:TEMP $(New-Guid) | ForEach-Object { mkdir $_ }
|
||||
|
||||
# Omit dynamic collector information that will change after each run
|
||||
$skip_re = "^(go_|windows_exporter_build_info|windows_exporter_collector_duration_seconds|windows_exporter_perflib_snapshot_duration_seconds|process_|windows_textfile_mtime_seconds|windows_cpu|windows_cs|windows_logical_disk|windows_net|windows_os|windows_service|windows_system)"
|
||||
|
||||
# Start process in background, awaiting HTTP requests.
|
||||
# Use default collectors, port and address: http://localhost:9182/metrics
|
||||
$exporter_proc = Start-Process `
|
||||
-PassThru `
|
||||
-FilePath .\windows_exporter.exe `
|
||||
-ArgumentList '--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
|
||||
|
||||
$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
|
||||
$output_diff = Compare-Object (Get-Content 'e2e-output.txt') (Get-Content "$($temp_dir)/e2e-output.txt")
|
||||
|
||||
# Fail if differences in output are detected
|
||||
if (-not ($null -eq $output_diff)) {
|
||||
$output_diff | Format-Table
|
||||
exit 1
|
||||
}
|
Loading…
Reference in New Issue