112 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Go
		
	
	
	
| package opensmtpd
 | |
| 
 | |
| import (
 | |
| 	"bytes"
 | |
| 	"testing"
 | |
| 	"time"
 | |
| 
 | |
| 	"github.com/influxdata/telegraf/internal"
 | |
| 	"github.com/influxdata/telegraf/testutil"
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| )
 | |
| 
 | |
| var TestTimeout = internal.Duration{Duration: time.Second}
 | |
| 
 | |
| func SmtpCTL(output string, Timeout internal.Duration, useSudo bool) func(string, internal.Duration, bool) (*bytes.Buffer, error) {
 | |
| 	return func(string, internal.Duration, bool) (*bytes.Buffer, error) {
 | |
| 		return bytes.NewBuffer([]byte(output)), nil
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestFilterSomeStats(t *testing.T) {
 | |
| 	acc := &testutil.Accumulator{}
 | |
| 	v := &Opensmtpd{
 | |
| 		run: SmtpCTL(fullOutput, TestTimeout, false),
 | |
| 	}
 | |
| 	err := v.Gather(acc)
 | |
| 
 | |
| 	assert.NoError(t, err)
 | |
| 	assert.True(t, acc.HasMeasurement("opensmtpd"))
 | |
| 	assert.Equal(t, acc.NMetrics(), uint64(1))
 | |
| 
 | |
| 	assert.Equal(t, acc.NFields(), 36)
 | |
| 	acc.AssertContainsFields(t, "opensmtpd", parsedFullOutput)
 | |
| }
 | |
| 
 | |
| var parsedFullOutput = map[string]interface{}{
 | |
| 	"bounce_envelope":             float64(0),
 | |
| 	"bounce_message":              float64(0),
 | |
| 	"bounce_session":              float64(0),
 | |
| 	"control_session":             float64(1),
 | |
| 	"mda_envelope":                float64(0),
 | |
| 	"mda_pending":                 float64(0),
 | |
| 	"mda_running":                 float64(0),
 | |
| 	"mda_user":                    float64(0),
 | |
| 	"mta_connector":               float64(1),
 | |
| 	"mta_domain":                  float64(1),
 | |
| 	"mta_envelope":                float64(0),
 | |
| 	"mta_host":                    float64(6),
 | |
| 	"mta_relay":                   float64(1),
 | |
| 	"mta_route":                   float64(1),
 | |
| 	"mta_session":                 float64(1),
 | |
| 	"mta_source":                  float64(1),
 | |
| 	"mta_task":                    float64(0),
 | |
| 	"mta_task_running":            float64(5),
 | |
| 	"queue_bounce":                float64(11495),
 | |
| 	"queue_evpcache_load_hit":     float64(3927539),
 | |
| 	"queue_evpcache_size":         float64(0),
 | |
| 	"queue_evpcache_update_hit":   float64(508),
 | |
| 	"scheduler_delivery_ok":       float64(1922951),
 | |
| 	"scheduler_delivery_permfail": float64(45967),
 | |
| 	"scheduler_delivery_tempfail": float64(493),
 | |
| 	"scheduler_envelope":          float64(0),
 | |
| 	"scheduler_envelope_expired":  float64(17),
 | |
| 	"scheduler_envelope_incoming": float64(0),
 | |
| 	"scheduler_envelope_inflight": float64(0),
 | |
| 	"scheduler_ramqueue_envelope": float64(0),
 | |
| 	"scheduler_ramqueue_message":  float64(0),
 | |
| 	"scheduler_ramqueue_update":   float64(0),
 | |
| 	"smtp_session":                float64(0),
 | |
| 	"smtp_session_inet4":          float64(1903412),
 | |
| 	"smtp_session_local":          float64(10827),
 | |
| 	"uptime":                      float64(9253995),
 | |
| }
 | |
| 
 | |
| var fullOutput = `bounce.envelope=0
 | |
| bounce.message=0
 | |
| bounce.session=0
 | |
| control.session=1
 | |
| mda.envelope=0
 | |
| mda.pending=0
 | |
| mda.running=0
 | |
| mda.user=0
 | |
| mta.connector=1
 | |
| mta.domain=1
 | |
| mta.envelope=0
 | |
| mta.host=6
 | |
| mta.relay=1
 | |
| mta.route=1
 | |
| mta.session=1
 | |
| mta.source=1
 | |
| mta.task=0
 | |
| mta.task.running=5
 | |
| queue.bounce=11495
 | |
| queue.evpcache.load.hit=3927539
 | |
| queue.evpcache.size=0
 | |
| queue.evpcache.update.hit=508
 | |
| scheduler.delivery.ok=1922951
 | |
| scheduler.delivery.permfail=45967
 | |
| scheduler.delivery.tempfail=493
 | |
| scheduler.envelope=0
 | |
| scheduler.envelope.expired=17
 | |
| scheduler.envelope.incoming=0
 | |
| scheduler.envelope.inflight=0
 | |
| scheduler.ramqueue.envelope=0
 | |
| scheduler.ramqueue.message=0
 | |
| scheduler.ramqueue.update=0
 | |
| smtp.session=0
 | |
| smtp.session.inet4=1903412
 | |
| smtp.session.local=10827
 | |
| uptime=9253995
 | |
| uptime.human=107d2h33m15s`
 |