75 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Go
		
	
	
	
| package apache
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"net/http"
 | |
| 	"net/http/httptest"
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/influxdata/telegraf/testutil"
 | |
| 
 | |
| 	"github.com/stretchr/testify/require"
 | |
| )
 | |
| 
 | |
| var apacheStatus = `
 | |
| Total Accesses: 129811861
 | |
| Total kBytes: 5213701865
 | |
| CPULoad: 6.51929
 | |
| Uptime: 941553
 | |
| ReqPerSec: 137.87
 | |
| BytesPerSec: 5670240
 | |
| BytesPerReq: 41127.4
 | |
| BusyWorkers: 270
 | |
| IdleWorkers: 630
 | |
| ConnsTotal: 1451
 | |
| ConnsAsyncWriting: 32
 | |
| ConnsAsyncKeepAlive: 945
 | |
| ConnsAsyncClosing: 205
 | |
| Scoreboard: WW_____W_RW_R_W__RRR____WR_W___WW________W_WW_W_____R__R_WR__WRWR_RRRW___R_RWW__WWWRW__R_RW___RR_RW_R__W__WR_WWW______WWR__R___R_WR_W___RW______RR________________W______R__RR______W________________R____R__________________________RW_W____R_____W_R_________________R____RR__W___R_R____RW______R____W______W_W_R_R______R__R_R__________R____W_______WW____W____RR__W_____W_R_______W__________W___W____________W_______WRR_R_W____W_____R____W_WW_R____RRW__W............................................................................................................................................................................................................................................................................................................WRRWR____WR__RR_R___RWR_________W_R____RWRRR____R_R__RW_R___WWW_RW__WR_RRR____W___R____WW_R__R___RR_W_W_RRRRWR__RRWR__RRW_W_RRRW_R_RR_W__RR_RWRR_R__R___RR_RR______R__RR____R_____W_R_R_R__R__R__________W____WW_R___R_R___R_________RR__RR____RWWWW___W_R________R_R____R_W___W___R___W_WRRWW_______R__W_RW_______R________RR__R________W_______________________W_W______________RW_________WR__R___R__R_______________WR_R_________W___RW_____R____________W____......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
 | |
| `
 | |
| 
 | |
| func TestHTTPApache(t *testing.T) {
 | |
| 	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
 | |
| 		w.WriteHeader(http.StatusOK)
 | |
| 		fmt.Fprintln(w, apacheStatus)
 | |
| 	}))
 | |
| 	defer ts.Close()
 | |
| 
 | |
| 	a := Apache{
 | |
| 		// Fetch it 2 times to catch possible data races.
 | |
| 		Urls: []string{ts.URL, ts.URL},
 | |
| 	}
 | |
| 
 | |
| 	var acc testutil.Accumulator
 | |
| 	err := acc.GatherError(a.Gather)
 | |
| 	require.NoError(t, err)
 | |
| 
 | |
| 	fields := map[string]interface{}{
 | |
| 		"TotalAccesses":        float64(1.29811861e+08),
 | |
| 		"TotalkBytes":          float64(5.213701865e+09),
 | |
| 		"CPULoad":              float64(6.51929),
 | |
| 		"Uptime":               float64(941553),
 | |
| 		"ReqPerSec":            float64(137.87),
 | |
| 		"BytesPerSec":          float64(5.67024e+06),
 | |
| 		"BytesPerReq":          float64(41127.4),
 | |
| 		"BusyWorkers":          float64(270),
 | |
| 		"IdleWorkers":          float64(630),
 | |
| 		"ConnsTotal":           float64(1451),
 | |
| 		"ConnsAsyncWriting":    float64(32),
 | |
| 		"ConnsAsyncKeepAlive":  float64(945),
 | |
| 		"ConnsAsyncClosing":    float64(205),
 | |
| 		"scboard_waiting":      float64(630),
 | |
| 		"scboard_starting":     float64(0),
 | |
| 		"scboard_reading":      float64(157),
 | |
| 		"scboard_sending":      float64(113),
 | |
| 		"scboard_keepalive":    float64(0),
 | |
| 		"scboard_dnslookup":    float64(0),
 | |
| 		"scboard_closing":      float64(0),
 | |
| 		"scboard_logging":      float64(0),
 | |
| 		"scboard_finishing":    float64(0),
 | |
| 		"scboard_idle_cleanup": float64(0),
 | |
| 		"scboard_open":         float64(2850),
 | |
| 	}
 | |
| 	acc.AssertContainsFields(t, "apache", fields)
 | |
| }
 |