97 lines
2.3 KiB
Go
97 lines
2.3 KiB
Go
package ipset
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/influxdata/telegraf"
|
|
"github.com/influxdata/telegraf/testutil"
|
|
)
|
|
|
|
func TestIpsetEntries(t *testing.T) {
|
|
var acc testutil.Accumulator
|
|
|
|
lines := []string{
|
|
"create mylist hash:net family inet hashsize 16384 maxelem 131072 timeout 300 bucketsize 12 initval 0x4effa9ad",
|
|
"add mylist 89.101.238.143 timeout 161558",
|
|
"add mylist 122.224.15.166 timeout 186758",
|
|
"add mylist 47.128.40.145 timeout 431559",
|
|
}
|
|
|
|
entries := ipsetEntries{}
|
|
for _, line := range lines {
|
|
require.NoError(t, entries.addLine(line, &acc))
|
|
}
|
|
entries.commit(&acc)
|
|
|
|
expected := []telegraf.Metric{
|
|
testutil.MustMetric(
|
|
"ipset",
|
|
map[string]string{
|
|
"set": "mylist",
|
|
},
|
|
map[string]interface{}{
|
|
"entries": 3,
|
|
"ips": 3,
|
|
},
|
|
time.Unix(0, 0),
|
|
telegraf.Gauge,
|
|
),
|
|
}
|
|
|
|
testutil.RequireMetricsEqual(t, expected, acc.GetTelegrafMetrics(), testutil.IgnoreTime())
|
|
}
|
|
|
|
func TestIpsetEntriesCidr(t *testing.T) {
|
|
var acc testutil.Accumulator
|
|
|
|
lines := []string{
|
|
"create mylist0 hash:net family inet hashsize 16384 maxelem 131072 timeout 300 bucketsize 12 initval 0x4effa9ad",
|
|
"add mylist0 89.101.238.143 timeout 161558",
|
|
"add mylist0 122.224.5.0/24 timeout 186758",
|
|
"add mylist0 47.128.40.145 timeout 431559",
|
|
|
|
"create mylist1 hash:net family inet hashsize 16384 maxelem 131072 timeout 300 bucketsize 12 initval 0x4effa9ad",
|
|
"add mylist1 90.101.238.143 timeout 161558",
|
|
"add mylist1 44.128.40.145 timeout 431559",
|
|
"add mylist1 122.224.5.0/8 timeout 186758",
|
|
"add mylist1 45.128.40.145 timeout 431560",
|
|
}
|
|
|
|
entries := ipsetEntries{}
|
|
for _, line := range lines {
|
|
require.NoError(t, entries.addLine(line, &acc))
|
|
}
|
|
entries.commit(&acc)
|
|
|
|
expected := []telegraf.Metric{
|
|
testutil.MustMetric(
|
|
"ipset",
|
|
map[string]string{
|
|
"set": "mylist0",
|
|
},
|
|
map[string]interface{}{
|
|
"entries": 3,
|
|
"ips": 256,
|
|
},
|
|
time.Now().Add(time.Millisecond*0),
|
|
telegraf.Gauge,
|
|
),
|
|
testutil.MustMetric(
|
|
"ipset",
|
|
map[string]string{
|
|
"set": "mylist1",
|
|
},
|
|
map[string]interface{}{
|
|
"entries": 4,
|
|
"ips": 16777217,
|
|
},
|
|
time.Unix(0, 0),
|
|
telegraf.Gauge,
|
|
),
|
|
}
|
|
|
|
testutil.RequireMetricsEqual(t, expected, acc.GetTelegrafMetrics(), testutil.IgnoreTime())
|
|
}
|