67 lines
1.2 KiB
Go
67 lines
1.2 KiB
Go
|
package netstat
|
||
|
|
||
|
import (
|
||
|
"syscall"
|
||
|
"testing"
|
||
|
"time"
|
||
|
|
||
|
"github.com/shirou/gopsutil/v4/net"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
|
||
|
"github.com/influxdata/telegraf"
|
||
|
"github.com/influxdata/telegraf/metric"
|
||
|
"github.com/influxdata/telegraf/plugins/common/psutil"
|
||
|
"github.com/influxdata/telegraf/testutil"
|
||
|
)
|
||
|
|
||
|
func TestNetStats(t *testing.T) {
|
||
|
var mps psutil.MockPS
|
||
|
defer mps.AssertExpectations(t)
|
||
|
mps.On("NetConnections").Return([]net.ConnectionStat{
|
||
|
{
|
||
|
Type: syscall.SOCK_DGRAM,
|
||
|
},
|
||
|
{
|
||
|
Status: "ESTABLISHED",
|
||
|
},
|
||
|
{
|
||
|
Status: "ESTABLISHED",
|
||
|
},
|
||
|
{
|
||
|
Status: "CLOSE",
|
||
|
},
|
||
|
}, nil)
|
||
|
|
||
|
var acc testutil.Accumulator
|
||
|
require.NoError(t, (&NetStat{ps: &mps}).Gather(&acc))
|
||
|
|
||
|
expected := []telegraf.Metric{
|
||
|
metric.New(
|
||
|
"netstat",
|
||
|
map[string]string{},
|
||
|
map[string]interface{}{
|
||
|
"tcp_established": 2,
|
||
|
"tcp_syn_sent": 0,
|
||
|
"tcp_syn_recv": 0,
|
||
|
"tcp_fin_wait1": 0,
|
||
|
"tcp_fin_wait2": 0,
|
||
|
"tcp_time_wait": 0,
|
||
|
"tcp_close": 1,
|
||
|
"tcp_close_wait": 0,
|
||
|
"tcp_last_ack": 0,
|
||
|
"tcp_listen": 0,
|
||
|
"tcp_closing": 0,
|
||
|
"tcp_none": 0,
|
||
|
"udp_socket": 1,
|
||
|
},
|
||
|
time.Unix(0, 0),
|
||
|
),
|
||
|
}
|
||
|
|
||
|
testutil.RequireMetricsEqual(t,
|
||
|
expected,
|
||
|
acc.GetTelegrafMetrics(),
|
||
|
testutil.IgnoreTime(),
|
||
|
)
|
||
|
}
|