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  }