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`
|