github.com/mackerelio/mackerel-agent-plugins@v0.89.3/mackerel-plugin-squid/lib/squid_test.go (about) 1 package mpsquid 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestGraphDefinition(t *testing.T) { 11 var squid SquidPlugin 12 13 graphdef := squid.GraphDefinition() 14 if len(graphdef) != 6 { 15 t.Errorf("GetTempfilename: %d should be 6", len(graphdef)) 16 } 17 } 18 19 func TestParse(t *testing.T) { 20 var squid SquidPlugin 21 stubMgrCacheInfo := `Squid Object Cache: Version 3.5.19 22 Build Info: Debian linux 23 Service Name: squid 24 Start Time: Wed, 28 Nov 2018 09:33:14 GMT 25 Current Time: Thu, 29 Nov 2018 09:20:19 GMT 26 Connection information for squid: 27 Number of clients accessing cache: 2 28 Number of HTTP requests received: 1663 29 Number of ICP messages received: 0 30 Number of ICP messages sent: 0 31 Number of queued ICP replies: 0 32 Number of HTCP messages received: 0 33 Number of HTCP messages sent: 0 34 Request failure ratio: 0.00 35 Average HTTP requests per minute since start: 1.2 36 Average ICP messages per minute since start: 0.0 37 Select loop called: 8571054 times, 9.990 ms avg 38 Cache information for squid: 39 Hits as % of all requests: 5min: 0.0%, 60min: 0.0% 40 Hits as % of bytes sent: 5min: 100.0%, 60min: 100.0% 41 Memory hits as % of hit requests: 5min: 0.0%, 60min: 0.0% 42 Disk hits as % of hit requests: 5min: 0.0%, 60min: 0.0% 43 Storage Swap size: 104 KB 44 Storage Swap capacity: 0.0% used, 100.0% free 45 Storage Mem size: 324 KB 46 Storage Mem capacity: 0.0% used, 100.0% free 47 Mean Object Size: 104.00 KB 48 Requests given to unlinkd: 0 49 Median Service Times (seconds) 5 min 60 min: 50 HTTP Requests (All): 0.00000 0.00000 51 Cache Misses: 0.00000 0.00000 52 Cache Hits: 0.00000 0.00000 53 Near Hits: 0.00000 0.00000 54 Not-Modified Replies: 0.00000 0.00000 55 DNS Lookups: 0.00000 0.00000 56 ICP Queries: 0.00000 0.00000 57 Resource usage for squid: 58 UP Time: 85625.732 seconds 59 CPU Time: 340.460 seconds 60 CPU Usage: 0.40% 61 CPU Usage, 5 minute avg: 0.41% 62 CPU Usage, 60 minute avg: 0.41% 63 Maximum Resident Size: 94096 KB 64 Page faults with physical i/o: 0 65 Memory accounted for: 66 Total accounted: 779 KB 67 memPoolAlloc calls: 387958 68 memPoolFree calls: 388241 69 File descriptor usage for squid: 70 Maximum number of file descriptors: 4096 71 Largest file desc currently in use: 27 72 Number of file desc currently in use: 16 73 Files queued for open: 0 74 Available number of file descriptors: 4080 75 Reserved number of file descriptors: 100 76 Store Disk files open: 0 77 Internal Data Structures: 78 54 StoreEntries 79 54 StoreEntries with MemObjects 80 53 Hot Object Cache Items 81 1 on-disk objects 82 ` 83 84 squidStats := strings.NewReader(stubMgrCacheInfo) 85 86 stat, err := squid.ParseMgrInfo(squidStats) 87 assert.Nil(t, err) 88 assert.EqualValues(t, 1663, stat["requests"]) 89 assert.EqualValues(t, 0, stat["request_ratio"]) 90 assert.EqualValues(t, 100, stat["byte_ratio"]) 91 assert.EqualValues(t, 0.41, stat["cpu_usage"]) 92 assert.EqualValues(t, 0, stat["swap_used_ratio"]) 93 assert.EqualValues(t, 0, stat["memory_used_ratio"]) 94 assert.EqualValues(t, 4096, stat["total_fd"]) 95 assert.EqualValues(t, 27, stat["max_fd"]) 96 assert.EqualValues(t, 16, stat["current_fd"]) 97 assert.EqualValues(t, 4080, stat["avail_fd"]) 98 assert.EqualValues(t, 100, stat["reserved_fd"]) 99 assert.EqualValues(t, 0, stat["open_files"]) 100 assert.EqualValues(t, 0, stat["queued_files"]) 101 assert.EqualValues(t, 387958, stat["memory_poll_alloc"]) 102 assert.EqualValues(t, 388241, stat["memory_poll_free"]) 103 }