fix: Linter fixes for plugins/inputs/s* (#10104)
Co-authored-by: Pawel Zak <Pawel Zak>
This commit is contained in:
parent
146fff3183
commit
2a0c3059a1
|
|
@ -367,7 +367,7 @@ Vcore Voltage:
|
|||
|
||||
// Previous arguments are tests stuff, that looks like :
|
||||
// /tmp/go-build970079519/…/_test/integration.test -test.run=TestHelperProcess --
|
||||
cmd, args := args[3], args[4:]
|
||||
cmd, _ := args[3], args[4:]
|
||||
|
||||
if cmd == "sensors" {
|
||||
//nolint:errcheck,revive
|
||||
|
|
@ -375,7 +375,9 @@ Vcore Voltage:
|
|||
} else {
|
||||
//nolint:errcheck,revive
|
||||
fmt.Fprint(os.Stdout, "command not found")
|
||||
//nolint:revive // error code is important for this "test"
|
||||
os.Exit(1)
|
||||
}
|
||||
//nolint:revive // error code is important for this "test"
|
||||
os.Exit(0)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/gosnmp/gosnmp"
|
||||
|
||||
"github.com/influxdata/telegraf"
|
||||
"github.com/influxdata/telegraf/config"
|
||||
"github.com/influxdata/telegraf/internal/snmp"
|
||||
|
|
@ -679,7 +680,7 @@ func fieldConvert(conv string, v interface{}) (interface{}, error) {
|
|||
case float32:
|
||||
v = float64(vt) / math.Pow10(d)
|
||||
case float64:
|
||||
v = float64(vt) / math.Pow10(d)
|
||||
v = vt / math.Pow10(d)
|
||||
case int:
|
||||
v = float64(vt) / math.Pow10(d)
|
||||
case int8:
|
||||
|
|
@ -766,7 +767,8 @@ func fieldConvert(conv string, v interface{}) (interface{}, error) {
|
|||
return v, nil
|
||||
}
|
||||
|
||||
if endian == "LittleEndian" {
|
||||
switch endian {
|
||||
case "LittleEndian":
|
||||
switch bit {
|
||||
case "uint64":
|
||||
v = binary.LittleEndian.Uint64(bv)
|
||||
|
|
@ -777,7 +779,7 @@ func fieldConvert(conv string, v interface{}) (interface{}, error) {
|
|||
default:
|
||||
return nil, fmt.Errorf("invalid bit value (%s) for hex to int conversion", bit)
|
||||
}
|
||||
} else if endian == "BigEndian" {
|
||||
case "BigEndian":
|
||||
switch bit {
|
||||
case "uint64":
|
||||
v = binary.BigEndian.Uint64(bv)
|
||||
|
|
@ -788,7 +790,7 @@ func fieldConvert(conv string, v interface{}) (interface{}, error) {
|
|||
default:
|
||||
return nil, fmt.Errorf("invalid bit value (%s) for hex to int conversion", bit)
|
||||
}
|
||||
} else {
|
||||
default:
|
||||
return nil, fmt.Errorf("invalid Endian value (%s) for hex to int conversion", endian)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ func TestMockExecCommand(_ *testing.T) {
|
|||
cv := fmt.Sprintf("%#v", cmd)[8:] // trim `[]string` prefix
|
||||
//nolint:errcheck,revive
|
||||
fmt.Fprintf(os.Stderr, "Unmocked command. Please add the following to `mockedCommands` in snmp_mocks_generate.go, and then run `go generate`:\n\t%s,\n", cv)
|
||||
//nolint:revive // error code is important for this "test"
|
||||
os.Exit(1)
|
||||
}
|
||||
//nolint:errcheck,revive
|
||||
|
|
@ -53,8 +54,10 @@ func TestMockExecCommand(_ *testing.T) {
|
|||
//nolint:errcheck,revive
|
||||
fmt.Fprintf(os.Stderr, "%s", mcr.stderr)
|
||||
if mcr.exitError {
|
||||
//nolint:revive // error code is important for this "test"
|
||||
os.Exit(1)
|
||||
}
|
||||
//nolint:revive // error code is important for this "test"
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -850,11 +850,12 @@ func TestFieldConvert(t *testing.T) {
|
|||
conv string
|
||||
expected interface{}
|
||||
}{
|
||||
{[]byte("foo"), "", string("foo")},
|
||||
{[]byte("foo"), "", "foo"},
|
||||
{"0.123", "float", float64(0.123)},
|
||||
{[]byte("0.123"), "float", float64(0.123)},
|
||||
{float32(0.123), "float", float64(float32(0.123))},
|
||||
{float64(0.123), "float", float64(0.123)},
|
||||
{float64(0.123123123123), "float", float64(0.123123123123)},
|
||||
{123, "float", float64(123)},
|
||||
{123, "float(0)", float64(123)},
|
||||
{123, "float(4)", float64(0.0123)},
|
||||
|
|
|
|||
|
|
@ -8,10 +8,10 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/gosnmp/gosnmp"
|
||||
|
||||
"github.com/influxdata/telegraf"
|
||||
"github.com/influxdata/telegraf/plugins/inputs"
|
||||
|
||||
"github.com/gosnmp/gosnmp"
|
||||
)
|
||||
|
||||
// Snmp is a snmp plugin
|
||||
|
|
@ -46,7 +46,7 @@ type Host struct {
|
|||
// Table
|
||||
Table []HostTable
|
||||
// Oids
|
||||
getOids []Data
|
||||
internalGetOids []Data
|
||||
bulkOids []Data
|
||||
tables []HostTable
|
||||
// array of processed oids
|
||||
|
|
@ -250,7 +250,7 @@ func fillnode(parentNode Node, oidName string, ids []string) {
|
|||
}
|
||||
}
|
||||
|
||||
func findnodename(node Node, ids []string) (string, string) {
|
||||
func findNodeName(node Node, ids []string) (oidName string, instance string) {
|
||||
// ids = ["1", "3", "6", ...]
|
||||
if len(ids) == 1 {
|
||||
return node.name, ids[0]
|
||||
|
|
@ -259,7 +259,7 @@ func findnodename(node Node, ids []string) (string, string) {
|
|||
// Get node
|
||||
subnode, ok := node.subnodes[id]
|
||||
if ok {
|
||||
return findnodename(subnode, ids)
|
||||
return findNodeName(subnode, ids)
|
||||
}
|
||||
// We got a node
|
||||
// Get node name
|
||||
|
|
@ -345,7 +345,7 @@ func (s *Snmp) Gather(acc telegraf.Accumulator) error {
|
|||
oid.rawOid = oidstring
|
||||
}
|
||||
}
|
||||
host.getOids = append(host.getOids, oid)
|
||||
host.internalGetOids = append(host.internalGetOids, oid)
|
||||
}
|
||||
|
||||
for _, oidName := range host.Collect {
|
||||
|
|
@ -362,7 +362,7 @@ func (s *Snmp) Gather(acc telegraf.Accumulator) error {
|
|||
} else {
|
||||
oid.rawOid = oid.Oid
|
||||
}
|
||||
host.getOids = append(host.getOids, oid)
|
||||
host.internalGetOids = append(host.internalGetOids, oid)
|
||||
}
|
||||
}
|
||||
// Get GETBULK oids
|
||||
|
|
@ -463,7 +463,7 @@ func (h *Host) SNMPMap(
|
|||
}
|
||||
// TODO check oid validity
|
||||
|
||||
// Add the new oid to getOids list
|
||||
// Add the new oid to bulkOids list
|
||||
h.bulkOids = append(h.bulkOids, oid)
|
||||
}
|
||||
}
|
||||
|
|
@ -569,8 +569,8 @@ func (h *Host) SNMPMap(
|
|||
}
|
||||
// TODO check oid validity
|
||||
|
||||
// Add the new oid to getOids list
|
||||
h.getOids = append(h.getOids, oid)
|
||||
// Add the new oid to internalGetOids list
|
||||
h.internalGetOids = append(h.internalGetOids, oid)
|
||||
}
|
||||
}
|
||||
default:
|
||||
|
|
@ -606,7 +606,7 @@ func (h *Host) SNMPGet(acc telegraf.Accumulator, initNode Node) error {
|
|||
defer snmpClient.Conn.Close()
|
||||
// Prepare OIDs
|
||||
oidsList := make(map[string]Data)
|
||||
for _, oid := range h.getOids {
|
||||
for _, oid := range h.internalGetOids {
|
||||
oidsList[oid.rawOid] = oid
|
||||
}
|
||||
oidsNameList := make([]string, 0, len(oidsList))
|
||||
|
|
@ -701,7 +701,7 @@ func (h *Host) GetSNMPClient() (*gosnmp.GoSNMP, error) {
|
|||
// Prepare host and port
|
||||
host, portStr, err := net.SplitHostPort(h.Address)
|
||||
if err != nil {
|
||||
portStr = string("161")
|
||||
portStr = "161"
|
||||
}
|
||||
// convert port_str to port in uint16
|
||||
port64, err := strconv.ParseUint(portStr, 10, 16)
|
||||
|
|
@ -763,7 +763,7 @@ func (h *Host) HandleResponse(
|
|||
var oidName string
|
||||
var instance string
|
||||
// Get oidname and instance from translate file
|
||||
oidName, instance = findnodename(initNode,
|
||||
oidName, instance = findNodeName(initNode,
|
||||
strings.Split(variable.Name[1:], "."))
|
||||
// Set instance tag
|
||||
// From mapping table
|
||||
|
|
|
|||
|
|
@ -10,11 +10,10 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/gosnmp/gosnmp"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/influxdata/telegraf"
|
||||
"github.com/influxdata/telegraf/testutil"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func newMsgFlagsV3(secLevel string) gosnmp.SnmpV3MsgFlags {
|
||||
|
|
@ -1267,7 +1266,7 @@ func TestReceiveTrap(t *testing.T) {
|
|||
return mibEntry{entry.e.mibName, entry.e.oidText}, nil
|
||||
}
|
||||
}
|
||||
return mibEntry{}, fmt.Errorf("Unexpected oid")
|
||||
return mibEntry{}, fmt.Errorf("unexpected oid")
|
||||
},
|
||||
//if cold start be answer otherwise err
|
||||
Log: testutil.Logger{},
|
||||
|
|
@ -1311,7 +1310,6 @@ func TestReceiveTrap(t *testing.T) {
|
|||
testutil.SortMetrics())
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestGosmiSingleMib(t *testing.T) {
|
||||
|
|
|
|||
|
|
@ -12,19 +12,19 @@ import (
|
|||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/influxdata/telegraf/config"
|
||||
"github.com/influxdata/telegraf/internal"
|
||||
"github.com/influxdata/telegraf/testutil"
|
||||
"github.com/influxdata/wlog"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var pki = testutil.NewPKI("../../../testutil/pki")
|
||||
|
||||
// testEmptyLog is a helper function to ensure no data is written to log.
|
||||
// prepareLog is a helper function to ensure no data is written to log.
|
||||
// Should be called at the start of the test, and returns a function which should run at the end.
|
||||
func testEmptyLog(t *testing.T) func() {
|
||||
func prepareLog(t *testing.T) func() {
|
||||
buf := bytes.NewBuffer(nil)
|
||||
log.SetOutput(wlog.NewWriter(buf))
|
||||
|
||||
|
|
@ -37,16 +37,17 @@ func testEmptyLog(t *testing.T) func() {
|
|||
for {
|
||||
line, err := buf.ReadBytes('\n')
|
||||
if err != nil {
|
||||
assert.Equal(t, io.EOF, err)
|
||||
require.Equal(t, io.EOF, err)
|
||||
break
|
||||
}
|
||||
assert.Empty(t, string(line), "log not empty")
|
||||
require.Empty(t, string(line), "log not empty")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestSocketListener_tcp_tls(t *testing.T) {
|
||||
defer testEmptyLog(t)()
|
||||
testEmptyLog := prepareLog(t)
|
||||
defer testEmptyLog()
|
||||
|
||||
sl := newSocketListener()
|
||||
sl.Log = testutil.Logger{}
|
||||
|
|
@ -84,8 +85,8 @@ func TestSocketListener_unix_tls(t *testing.T) {
|
|||
defer sl.Stop()
|
||||
|
||||
tlsCfg, err := pki.TLSClientConfig().TLSConfig()
|
||||
tlsCfg.InsecureSkipVerify = true
|
||||
require.NoError(t, err)
|
||||
tlsCfg.InsecureSkipVerify = true
|
||||
|
||||
secureClient, err := tls.Dial("unix", sock, tlsCfg)
|
||||
require.NoError(t, err)
|
||||
|
|
@ -94,7 +95,8 @@ func TestSocketListener_unix_tls(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestSocketListener_tcp(t *testing.T) {
|
||||
defer testEmptyLog(t)()
|
||||
testEmptyLog := prepareLog(t)
|
||||
defer testEmptyLog()
|
||||
|
||||
sl := newSocketListener()
|
||||
sl.Log = testutil.Logger{}
|
||||
|
|
@ -113,7 +115,8 @@ func TestSocketListener_tcp(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestSocketListener_udp(t *testing.T) {
|
||||
defer testEmptyLog(t)()
|
||||
testEmptyLog := prepareLog(t)
|
||||
defer testEmptyLog()
|
||||
|
||||
sl := newSocketListener()
|
||||
sl.Log = testutil.Logger{}
|
||||
|
|
@ -137,7 +140,8 @@ func TestSocketListener_unix(t *testing.T) {
|
|||
defer os.RemoveAll(tmpdir)
|
||||
sock := filepath.Join(tmpdir, "sl.TestSocketListener_unix.sock")
|
||||
|
||||
defer testEmptyLog(t)()
|
||||
testEmptyLog := prepareLog(t)
|
||||
defer testEmptyLog()
|
||||
|
||||
f, _ := os.Create(sock)
|
||||
require.NoError(t, f.Close())
|
||||
|
|
@ -167,7 +171,8 @@ func TestSocketListener_unixgram(t *testing.T) {
|
|||
defer os.RemoveAll(tmpdir)
|
||||
sock := filepath.Join(tmpdir, "sl.TestSocketListener_unixgram.sock")
|
||||
|
||||
defer testEmptyLog(t)()
|
||||
testEmptyLog := prepareLog(t)
|
||||
defer testEmptyLog()
|
||||
|
||||
_, err = os.Create(sock)
|
||||
require.NoError(t, err)
|
||||
|
|
@ -188,7 +193,8 @@ func TestSocketListener_unixgram(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestSocketListenerDecode_tcp(t *testing.T) {
|
||||
defer testEmptyLog(t)()
|
||||
testEmptyLog := prepareLog(t)
|
||||
defer testEmptyLog()
|
||||
|
||||
sl := newSocketListener()
|
||||
sl.Log = testutil.Logger{}
|
||||
|
|
@ -208,7 +214,8 @@ func TestSocketListenerDecode_tcp(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestSocketListenerDecode_udp(t *testing.T) {
|
||||
defer testEmptyLog(t)()
|
||||
testEmptyLog := prepareLog(t)
|
||||
defer testEmptyLog()
|
||||
|
||||
sl := newSocketListener()
|
||||
sl.Log = testutil.Logger{}
|
||||
|
|
@ -256,18 +263,18 @@ func testSocketListener(t *testing.T, sl *SocketListener, client net.Conn) {
|
|||
m3 := acc.Metrics[2]
|
||||
acc.Unlock()
|
||||
|
||||
assert.Equal(t, "test", m1.Measurement)
|
||||
assert.Equal(t, map[string]string{"foo": "bar"}, m1.Tags)
|
||||
assert.Equal(t, map[string]interface{}{"v": int64(1)}, m1.Fields)
|
||||
assert.True(t, time.Unix(0, 123456789).Equal(m1.Time))
|
||||
require.Equal(t, "test", m1.Measurement)
|
||||
require.Equal(t, map[string]string{"foo": "bar"}, m1.Tags)
|
||||
require.Equal(t, map[string]interface{}{"v": int64(1)}, m1.Fields)
|
||||
require.True(t, time.Unix(0, 123456789).Equal(m1.Time))
|
||||
|
||||
assert.Equal(t, "test", m2.Measurement)
|
||||
assert.Equal(t, map[string]string{"foo": "baz"}, m2.Tags)
|
||||
assert.Equal(t, map[string]interface{}{"v": int64(2)}, m2.Fields)
|
||||
assert.True(t, time.Unix(0, 123456790).Equal(m2.Time))
|
||||
require.Equal(t, "test", m2.Measurement)
|
||||
require.Equal(t, map[string]string{"foo": "baz"}, m2.Tags)
|
||||
require.Equal(t, map[string]interface{}{"v": int64(2)}, m2.Fields)
|
||||
require.True(t, time.Unix(0, 123456790).Equal(m2.Time))
|
||||
|
||||
assert.Equal(t, "test", m3.Measurement)
|
||||
assert.Equal(t, map[string]string{"foo": "zab"}, m3.Tags)
|
||||
assert.Equal(t, map[string]interface{}{"v": int64(3)}, m3.Fields)
|
||||
assert.True(t, time.Unix(0, 123456791).Equal(m3.Time))
|
||||
require.Equal(t, "test", m3.Measurement)
|
||||
require.Equal(t, map[string]string{"foo": "zab"}, m3.Tags)
|
||||
require.Equal(t, map[string]interface{}{"v": int64(3)}, m3.Fields)
|
||||
require.True(t, time.Unix(0, 123456791).Equal(m3.Time))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -202,7 +202,7 @@ func getCoresFromStatus(adminCoresStatus *AdminCoresStatus) []string {
|
|||
|
||||
// Add core metrics from admin to accumulator
|
||||
// This is the only point where size_in_bytes is available (as far as I checked)
|
||||
func addAdminCoresStatusToAcc(acc telegraf.Accumulator, adminCoreStatus *AdminCoresStatus, time time.Time) {
|
||||
func addAdminCoresStatusToAcc(acc telegraf.Accumulator, adminCoreStatus *AdminCoresStatus, measurementTime time.Time) {
|
||||
for core, metrics := range adminCoreStatus.Status {
|
||||
coreFields := map[string]interface{}{
|
||||
"deleted_docs": metrics.Index.DeletedDocs,
|
||||
|
|
@ -214,13 +214,13 @@ func addAdminCoresStatusToAcc(acc telegraf.Accumulator, adminCoreStatus *AdminCo
|
|||
"solr_admin",
|
||||
coreFields,
|
||||
map[string]string{"core": core},
|
||||
time,
|
||||
measurementTime,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// Add core metrics section to accumulator
|
||||
func addCoreMetricsToAcc(acc telegraf.Accumulator, core string, mBeansData *MBeansData, time time.Time) error {
|
||||
func addCoreMetricsToAcc(acc telegraf.Accumulator, core string, mBeansData *MBeansData, measurementTime time.Time) error {
|
||||
var coreMetrics map[string]Core
|
||||
if len(mBeansData.SolrMbeans) < 2 {
|
||||
return fmt.Errorf("no core metric data to unmarshal")
|
||||
|
|
@ -243,14 +243,14 @@ func addCoreMetricsToAcc(acc telegraf.Accumulator, core string, mBeansData *MBea
|
|||
map[string]string{
|
||||
"core": core,
|
||||
"handler": name},
|
||||
time,
|
||||
measurementTime,
|
||||
)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Add query metrics section to accumulator
|
||||
func addQueryHandlerMetricsToAcc(acc telegraf.Accumulator, core string, mBeansData *MBeansData, time time.Time) error {
|
||||
func addQueryHandlerMetricsToAcc(acc telegraf.Accumulator, core string, mBeansData *MBeansData, measurementTime time.Time) error {
|
||||
var queryMetrics map[string]QueryHandler
|
||||
|
||||
if len(mBeansData.SolrMbeans) < 4 {
|
||||
|
|
@ -284,7 +284,7 @@ func addQueryHandlerMetricsToAcc(acc telegraf.Accumulator, core string, mBeansDa
|
|||
map[string]string{
|
||||
"core": core,
|
||||
"handler": name},
|
||||
time,
|
||||
measurementTime,
|
||||
)
|
||||
}
|
||||
return nil
|
||||
|
|
@ -324,7 +324,7 @@ func convertQueryHandlerMap(value map[string]interface{}) map[string]interface{}
|
|||
}
|
||||
|
||||
// Add update metrics section to accumulator
|
||||
func addUpdateHandlerMetricsToAcc(acc telegraf.Accumulator, core string, mBeansData *MBeansData, time time.Time) error {
|
||||
func addUpdateHandlerMetricsToAcc(acc telegraf.Accumulator, core string, mBeansData *MBeansData, measurementTime time.Time) error {
|
||||
var updateMetrics map[string]UpdateHandler
|
||||
|
||||
if len(mBeansData.SolrMbeans) < 6 {
|
||||
|
|
@ -363,7 +363,7 @@ func addUpdateHandlerMetricsToAcc(acc telegraf.Accumulator, core string, mBeansD
|
|||
map[string]string{
|
||||
"core": core,
|
||||
"handler": name},
|
||||
time,
|
||||
measurementTime,
|
||||
)
|
||||
}
|
||||
return nil
|
||||
|
|
@ -404,7 +404,7 @@ func getInt(unk interface{}) int64 {
|
|||
}
|
||||
|
||||
// Add cache metrics section to accumulator
|
||||
func addCacheMetricsToAcc(acc telegraf.Accumulator, core string, mBeansData *MBeansData, time time.Time) error {
|
||||
func addCacheMetricsToAcc(acc telegraf.Accumulator, core string, mBeansData *MBeansData, measurementTime time.Time) error {
|
||||
if len(mBeansData.SolrMbeans) < 8 {
|
||||
return fmt.Errorf("no cache metric data to unmarshal")
|
||||
}
|
||||
|
|
@ -444,7 +444,7 @@ func addCacheMetricsToAcc(acc telegraf.Accumulator, core string, mBeansData *MBe
|
|||
map[string]string{
|
||||
"core": core,
|
||||
"handler": name},
|
||||
time,
|
||||
measurementTime,
|
||||
)
|
||||
}
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -4,13 +4,13 @@ import (
|
|||
"database/sql"
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/Azure/go-autorest/autorest/adal"
|
||||
mssql "github.com/denisenkom/go-mssqldb"
|
||||
|
||||
"github.com/influxdata/telegraf"
|
||||
"github.com/influxdata/telegraf/filter"
|
||||
"github.com/influxdata/telegraf/plugins/inputs"
|
||||
|
|
@ -26,6 +26,8 @@ type SQLServer struct {
|
|||
IncludeQuery []string `toml:"include_query"`
|
||||
ExcludeQuery []string `toml:"exclude_query"`
|
||||
HealthMetric bool `toml:"health_metric"`
|
||||
Log telegraf.Logger `toml:"-"`
|
||||
|
||||
pools []*sql.DB
|
||||
queries MapQuery
|
||||
adalToken *adal.Token
|
||||
|
|
@ -142,10 +144,10 @@ type scanner interface {
|
|||
Scan(dest ...interface{}) error
|
||||
}
|
||||
|
||||
func initQueries(s *SQLServer) error {
|
||||
func (s *SQLServer) initQueries() error {
|
||||
s.queries = make(MapQuery)
|
||||
queries := s.queries
|
||||
log.Printf("I! [inputs.sqlserver] Config: database_type: %s , query_version:%d , azuredb: %t", s.DatabaseType, s.QueryVersion, s.AzureDB)
|
||||
s.Log.Infof("Config: database_type: %s , query_version:%d , azuredb: %t", s.DatabaseType, s.QueryVersion, s.AzureDB)
|
||||
|
||||
// New config option database_type
|
||||
// To prevent query definition conflicts
|
||||
|
|
@ -202,7 +204,7 @@ func initQueries(s *SQLServer) error {
|
|||
}
|
||||
// Decide if we want to run version 1 or version 2 queries
|
||||
if s.QueryVersion == 2 {
|
||||
log.Println("W! DEPRECATION NOTICE: query_version=2 is being deprecated in favor of database_type.")
|
||||
s.Log.Warn("DEPRECATION NOTICE: query_version=2 is being deprecated in favor of database_type.")
|
||||
queries["PerformanceCounters"] = Query{ScriptName: "PerformanceCounters", Script: sqlPerformanceCountersV2, ResultByRow: true}
|
||||
queries["WaitStatsCategorized"] = Query{ScriptName: "WaitStatsCategorized", Script: sqlWaitStatsCategorizedV2, ResultByRow: false}
|
||||
queries["DatabaseIO"] = Query{ScriptName: "DatabaseIO", Script: sqlDatabaseIOV2, ResultByRow: false}
|
||||
|
|
@ -213,7 +215,7 @@ func initQueries(s *SQLServer) error {
|
|||
queries["VolumeSpace"] = Query{ScriptName: "VolumeSpace", Script: sqlServerVolumeSpaceV2, ResultByRow: false}
|
||||
queries["Cpu"] = Query{ScriptName: "Cpu", Script: sqlServerCPUV2, ResultByRow: false}
|
||||
} else {
|
||||
log.Println("W! DEPRECATED: query_version=1 has been deprecated in favor of database_type.")
|
||||
s.Log.Warn("DEPRECATED: query_version=1 has been deprecated in favor of database_type.")
|
||||
queries["PerformanceCounters"] = Query{ScriptName: "PerformanceCounters", Script: sqlPerformanceCounters, ResultByRow: true}
|
||||
queries["WaitStatsCategorized"] = Query{ScriptName: "WaitStatsCategorized", Script: sqlWaitStatsCategorized, ResultByRow: false}
|
||||
queries["CPUHistory"] = Query{ScriptName: "CPUHistory", Script: sqlCPUHistory, ResultByRow: false}
|
||||
|
|
@ -242,7 +244,7 @@ func initQueries(s *SQLServer) error {
|
|||
for query := range queries {
|
||||
querylist = append(querylist, query)
|
||||
}
|
||||
log.Printf("I! [inputs.sqlserver] Config: Effective Queries: %#v\n", querylist)
|
||||
s.Log.Infof("Config: Effective Queries: %#v\n", querylist)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
@ -283,7 +285,7 @@ func (s *SQLServer) Gather(acc telegraf.Accumulator) error {
|
|||
|
||||
// Start initialize a list of connection pools
|
||||
func (s *SQLServer) Start(acc telegraf.Accumulator) error {
|
||||
if err := initQueries(s); err != nil {
|
||||
if err := s.initQueries(); err != nil {
|
||||
acc.AddError(err)
|
||||
return err
|
||||
}
|
||||
|
|
@ -355,11 +357,11 @@ func (s *SQLServer) gatherServer(pool *sql.DB, query Query, acc telegraf.Accumul
|
|||
|
||||
// Error msg based on the format in SSMS. SQLErrorClass() is another term for severity/level: http://msdn.microsoft.com/en-us/library/dd304156.aspx
|
||||
if sqlerr, ok := err.(mssql.Error); ok {
|
||||
return fmt.Errorf("Query %s failed for server: %s and database: %s with Msg %d, Level %d, State %d:, Line %d, Error: %w", query.ScriptName,
|
||||
return fmt.Errorf("query %s failed for server: %s and database: %s with Msg %d, Level %d, State %d:, Line %d, Error: %w", query.ScriptName,
|
||||
serverName, databaseName, sqlerr.SQLErrorNumber(), sqlerr.SQLErrorClass(), sqlerr.SQLErrorState(), sqlerr.SQLErrorLineNo(), err)
|
||||
}
|
||||
|
||||
return fmt.Errorf("Query %s failed for server: %s and database: %s with Error: %w", query.ScriptName, serverName, databaseName, err)
|
||||
return fmt.Errorf("query %s failed for server: %s and database: %s with Error: %w", query.ScriptName, serverName, databaseName, err)
|
||||
}
|
||||
|
||||
defer rows.Close()
|
||||
|
|
@ -425,7 +427,7 @@ func (s *SQLServer) accRow(query Query, acc telegraf.Accumulator, row scanner) e
|
|||
// values
|
||||
for header, val := range columnMap {
|
||||
if _, ok := (*val).(string); !ok {
|
||||
fields[header] = (*val)
|
||||
fields[header] = *val
|
||||
}
|
||||
}
|
||||
// add fields to Accumulator
|
||||
|
|
@ -476,7 +478,7 @@ func (s *SQLServer) getDatabaseTypeToLog() string {
|
|||
|
||||
func (s *SQLServer) Init() error {
|
||||
if len(s.Servers) == 0 {
|
||||
log.Println("W! Warning: Server list is empty.")
|
||||
s.Log.Warn("Warning: Server list is empty.")
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -32,8 +32,9 @@ func TestSqlServer_QueriesInclusionExclusion(t *testing.T) {
|
|||
QueryVersion: 2,
|
||||
IncludeQuery: test["IncludeQuery"].([]string),
|
||||
ExcludeQuery: test["ExcludeQuery"].([]string),
|
||||
Log: testutil.Logger{},
|
||||
}
|
||||
require.NoError(t, initQueries(&s))
|
||||
require.NoError(t, s.initQueries())
|
||||
require.Equal(t, len(s.queries), test["queriesTotal"].(int))
|
||||
for _, query := range test["queries"].([]string) {
|
||||
require.Contains(t, s.queries, query)
|
||||
|
|
@ -116,10 +117,12 @@ func TestSqlServer_MultipleInstanceIntegration(t *testing.T) {
|
|||
s := &SQLServer{
|
||||
Servers: []string{testServer},
|
||||
ExcludeQuery: []string{"MemoryClerk"},
|
||||
Log: testutil.Logger{},
|
||||
}
|
||||
s2 := &SQLServer{
|
||||
Servers: []string{testServer},
|
||||
ExcludeQuery: []string{"DatabaseSize"},
|
||||
Log: testutil.Logger{},
|
||||
}
|
||||
|
||||
var acc, acc2 testutil.Accumulator
|
||||
|
|
@ -151,11 +154,13 @@ func TestSqlServer_MultipleInstanceWithHealthMetricIntegration(t *testing.T) {
|
|||
s := &SQLServer{
|
||||
Servers: []string{testServer},
|
||||
ExcludeQuery: []string{"MemoryClerk"},
|
||||
Log: testutil.Logger{},
|
||||
}
|
||||
s2 := &SQLServer{
|
||||
Servers: []string{testServer},
|
||||
ExcludeQuery: []string{"DatabaseSize"},
|
||||
HealthMetric: true,
|
||||
Log: testutil.Logger{},
|
||||
}
|
||||
|
||||
var acc, acc2 testutil.Accumulator
|
||||
|
|
@ -192,12 +197,14 @@ func TestSqlServer_HealthMetric(t *testing.T) {
|
|||
IncludeQuery: []string{"DatabaseSize", "MemoryClerk"},
|
||||
HealthMetric: true,
|
||||
AuthMethod: "connection_string",
|
||||
Log: testutil.Logger{},
|
||||
}
|
||||
|
||||
s2 := &SQLServer{
|
||||
Servers: []string{fakeServer1},
|
||||
IncludeQuery: []string{"DatabaseSize"},
|
||||
AuthMethod: "connection_string",
|
||||
Log: testutil.Logger{},
|
||||
}
|
||||
|
||||
// acc1 should have the health metric because it is specified in the config
|
||||
|
|
@ -225,16 +232,17 @@ func TestSqlServer_HealthMetric(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestSqlServer_MultipleInit(t *testing.T) {
|
||||
s := &SQLServer{}
|
||||
s := &SQLServer{Log: testutil.Logger{}}
|
||||
s2 := &SQLServer{
|
||||
ExcludeQuery: []string{"DatabaseSize"},
|
||||
Log: testutil.Logger{},
|
||||
}
|
||||
|
||||
require.NoError(t, initQueries(s))
|
||||
require.NoError(t, s.initQueries())
|
||||
_, ok := s.queries["DatabaseSize"]
|
||||
require.True(t, ok)
|
||||
|
||||
require.NoError(t, initQueries(s2))
|
||||
require.NoError(t, s.initQueries())
|
||||
_, ok = s2.queries["DatabaseSize"]
|
||||
require.False(t, ok)
|
||||
s.Stop()
|
||||
|
|
@ -335,11 +343,13 @@ func TestSqlServer_AGQueriesApplicableForDatabaseTypeSQLServer(t *testing.T) {
|
|||
Servers: []string{testServer},
|
||||
DatabaseType: "SQLServer",
|
||||
IncludeQuery: []string{"SQLServerAvailabilityReplicaStates", "SQLServerDatabaseReplicaStates"},
|
||||
Log: testutil.Logger{},
|
||||
}
|
||||
s2 := &SQLServer{
|
||||
Servers: []string{testServer},
|
||||
DatabaseType: "AzureSQLDB",
|
||||
IncludeQuery: []string{"SQLServerAvailabilityReplicaStates", "SQLServerDatabaseReplicaStates"},
|
||||
Log: testutil.Logger{},
|
||||
}
|
||||
|
||||
var acc, acc2 testutil.Accumulator
|
||||
|
|
@ -376,11 +386,13 @@ func TestSqlServer_AGQueryFieldsOutputBasedOnSQLServerVersion(t *testing.T) {
|
|||
Servers: []string{testServer2019},
|
||||
DatabaseType: "SQLServer",
|
||||
IncludeQuery: []string{"SQLServerAvailabilityReplicaStates", "SQLServerDatabaseReplicaStates"},
|
||||
Log: testutil.Logger{},
|
||||
}
|
||||
s2012 := &SQLServer{
|
||||
Servers: []string{testServer2012},
|
||||
DatabaseType: "SQLServer",
|
||||
IncludeQuery: []string{"SQLServerAvailabilityReplicaStates", "SQLServerDatabaseReplicaStates"},
|
||||
Log: testutil.Logger{},
|
||||
}
|
||||
|
||||
var acc2019, acc2012 testutil.Accumulator
|
||||
|
|
|
|||
|
|
@ -10,18 +10,19 @@ import (
|
|||
"time"
|
||||
|
||||
monitoring "cloud.google.com/go/monitoring/apiv3/v2"
|
||||
"github.com/influxdata/telegraf"
|
||||
"github.com/influxdata/telegraf/config"
|
||||
"github.com/influxdata/telegraf/internal/limiter"
|
||||
"github.com/influxdata/telegraf/metric"
|
||||
"github.com/influxdata/telegraf/plugins/inputs" // Imports the Stackdriver Monitoring client package.
|
||||
"github.com/influxdata/telegraf/selfstat"
|
||||
"google.golang.org/api/iterator"
|
||||
distributionpb "google.golang.org/genproto/googleapis/api/distribution"
|
||||
metricpb "google.golang.org/genproto/googleapis/api/metric"
|
||||
monitoringpb "google.golang.org/genproto/googleapis/monitoring/v3"
|
||||
"google.golang.org/protobuf/types/known/durationpb"
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
|
||||
"github.com/influxdata/telegraf"
|
||||
"github.com/influxdata/telegraf/config"
|
||||
"github.com/influxdata/telegraf/internal/limiter"
|
||||
"github.com/influxdata/telegraf/metric"
|
||||
"github.com/influxdata/telegraf/plugins/inputs" // Imports the Stackdriver Monitoring client package.
|
||||
"github.com/influxdata/telegraf/selfstat"
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
@ -312,8 +313,8 @@ func (s *Stackdriver) Gather(acc telegraf.Accumulator) error {
|
|||
}
|
||||
wg.Wait()
|
||||
|
||||
for _, metric := range grouper.Metrics() {
|
||||
acc.AddMetric(metric)
|
||||
for _, groupedMetric := range grouper.Metrics() {
|
||||
acc.AddMetric(groupedMetric)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
@ -643,35 +644,34 @@ func (s *Stackdriver) gatherTimeSeries(
|
|||
}
|
||||
|
||||
// AddDistribution adds metrics from a distribution value type.
|
||||
func (s *Stackdriver) addDistribution(
|
||||
metric *distributionpb.Distribution,
|
||||
tags map[string]string, ts time.Time, grouper *lockedSeriesGrouper, tsConf *timeSeriesConf,
|
||||
func (s *Stackdriver) addDistribution(dist *distributionpb.Distribution, tags map[string]string, ts time.Time,
|
||||
grouper *lockedSeriesGrouper, tsConf *timeSeriesConf,
|
||||
) error {
|
||||
field := tsConf.fieldKey
|
||||
name := tsConf.measurement
|
||||
|
||||
if err := grouper.Add(name, tags, ts, field+"_count", metric.Count); err != nil {
|
||||
if err := grouper.Add(name, tags, ts, field+"_count", dist.Count); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := grouper.Add(name, tags, ts, field+"_mean", metric.Mean); err != nil {
|
||||
if err := grouper.Add(name, tags, ts, field+"_mean", dist.Mean); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := grouper.Add(name, tags, ts, field+"_sum_of_squared_deviation", metric.SumOfSquaredDeviation); err != nil {
|
||||
if err := grouper.Add(name, tags, ts, field+"_sum_of_squared_deviation", dist.SumOfSquaredDeviation); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if metric.Range != nil {
|
||||
if err := grouper.Add(name, tags, ts, field+"_range_min", metric.Range.Min); err != nil {
|
||||
if dist.Range != nil {
|
||||
if err := grouper.Add(name, tags, ts, field+"_range_min", dist.Range.Min); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := grouper.Add(name, tags, ts, field+"_range_max", metric.Range.Max); err != nil {
|
||||
if err := grouper.Add(name, tags, ts, field+"_range_max", dist.Range.Max); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
linearBuckets := metric.BucketOptions.GetLinearBuckets()
|
||||
exponentialBuckets := metric.BucketOptions.GetExponentialBuckets()
|
||||
explicitBuckets := metric.BucketOptions.GetExplicitBuckets()
|
||||
linearBuckets := dist.BucketOptions.GetLinearBuckets()
|
||||
exponentialBuckets := dist.BucketOptions.GetExponentialBuckets()
|
||||
explicitBuckets := dist.BucketOptions.GetExplicitBuckets()
|
||||
|
||||
var numBuckets int32
|
||||
if linearBuckets != nil {
|
||||
|
|
@ -704,8 +704,8 @@ func (s *Stackdriver) addDistribution(
|
|||
|
||||
// Add to the cumulative count; trailing buckets with value 0 are
|
||||
// omitted from the response.
|
||||
if i < int32(len(metric.BucketCounts)) {
|
||||
count += metric.BucketCounts[i]
|
||||
if i < int32(len(dist.BucketCounts)) {
|
||||
count += dist.BucketCounts[i]
|
||||
}
|
||||
if err := grouper.Add(name, tags, ts, field+"_bucket", count); err != nil {
|
||||
return err
|
||||
|
|
|
|||
|
|
@ -120,11 +120,10 @@ func (s *Statsd) parseEventMessage(now time.Time, message string, defaultHostnam
|
|||
case "s:":
|
||||
fields["source_type_name"] = rawMetadataFields[i][2:]
|
||||
default:
|
||||
if rawMetadataFields[i][0] == '#' {
|
||||
parseDataDogTags(tags, rawMetadataFields[i][1:])
|
||||
} else {
|
||||
if rawMetadataFields[i][0] != '#' {
|
||||
return fmt.Errorf("unknown metadata type: '%s'", rawMetadataFields[i])
|
||||
}
|
||||
parseDataDogTags(tags, rawMetadataFields[i][1:])
|
||||
}
|
||||
}
|
||||
// Use source tag because host is reserved tag key in Telegraf.
|
||||
|
|
|
|||
|
|
@ -11,13 +11,14 @@ import (
|
|||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
|
||||
"github.com/influxdata/telegraf"
|
||||
"github.com/influxdata/telegraf/config"
|
||||
"github.com/influxdata/telegraf/internal"
|
||||
"github.com/influxdata/telegraf/plugins/inputs"
|
||||
"github.com/influxdata/telegraf/plugins/parsers/graphite"
|
||||
"github.com/influxdata/telegraf/selfstat"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
@ -745,10 +746,10 @@ func (s *Statsd) parseStatsdLine(line string) error {
|
|||
// config file. If there is a match, it will parse the name of the metric and
|
||||
// map of tags.
|
||||
// Return values are (<name>, <field>, <tags>)
|
||||
func (s *Statsd) parseName(bucket string) (string, string, map[string]string) {
|
||||
func (s *Statsd) parseName(bucket string) (name string, field string, tags map[string]string) {
|
||||
s.Lock()
|
||||
defer s.Unlock()
|
||||
tags := make(map[string]string)
|
||||
tags = make(map[string]string)
|
||||
|
||||
bucketparts := strings.Split(bucket, ",")
|
||||
// Parse out any tags in the bucket
|
||||
|
|
@ -761,8 +762,7 @@ func (s *Statsd) parseName(bucket string) (string, string, map[string]string) {
|
|||
}
|
||||
}
|
||||
|
||||
var field string
|
||||
name := bucketparts[0]
|
||||
name = bucketparts[0]
|
||||
|
||||
p := s.graphiteParser
|
||||
var err error
|
||||
|
|
@ -789,10 +789,8 @@ func (s *Statsd) parseName(bucket string) (string, string, map[string]string) {
|
|||
}
|
||||
|
||||
// Parse the key,value out of a string that looks like "key=value"
|
||||
func parseKeyValue(keyvalue string) (string, string) {
|
||||
var key, val string
|
||||
|
||||
split := strings.Split(keyvalue, "=")
|
||||
func parseKeyValue(keyValue string) (key string, val string) {
|
||||
split := strings.Split(keyValue, "=")
|
||||
// Must be exactly 2 to get anything meaningful out of them
|
||||
if len(split) == 2 {
|
||||
key = split[0]
|
||||
|
|
|
|||
|
|
@ -7,11 +7,10 @@ import (
|
|||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/influxdata/telegraf"
|
||||
"github.com/influxdata/telegraf/config"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/influxdata/telegraf"
|
||||
"github.com/influxdata/telegraf/config"
|
||||
"github.com/influxdata/telegraf/testutil"
|
||||
)
|
||||
|
||||
|
|
@ -53,19 +52,19 @@ func TestConcurrentConns(t *testing.T) {
|
|||
|
||||
time.Sleep(time.Millisecond * 250)
|
||||
_, err := net.Dial("tcp", "127.0.0.1:8125")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
_, err = net.Dial("tcp", "127.0.0.1:8125")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Connection over the limit:
|
||||
conn, err := net.Dial("tcp", "127.0.0.1:8125")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
_, err = net.Dial("tcp", "127.0.0.1:8125")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
_, err = conn.Write([]byte(testMsg))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
time.Sleep(time.Millisecond * 100)
|
||||
assert.Zero(t, acc.NFields())
|
||||
require.Zero(t, acc.NFields())
|
||||
}
|
||||
|
||||
// Test that MaxTCPConnections is respected when max==1
|
||||
|
|
@ -84,17 +83,17 @@ func TestConcurrentConns1(t *testing.T) {
|
|||
|
||||
time.Sleep(time.Millisecond * 250)
|
||||
_, err := net.Dial("tcp", "127.0.0.1:8125")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Connection over the limit:
|
||||
conn, err := net.Dial("tcp", "127.0.0.1:8125")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
_, err = net.Dial("tcp", "127.0.0.1:8125")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
_, err = conn.Write([]byte(testMsg))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
time.Sleep(time.Millisecond * 100)
|
||||
assert.Zero(t, acc.NFields())
|
||||
require.Zero(t, acc.NFields())
|
||||
}
|
||||
|
||||
// Test that MaxTCPConnections is respected
|
||||
|
|
@ -112,9 +111,9 @@ func TestCloseConcurrentConns(t *testing.T) {
|
|||
|
||||
time.Sleep(time.Millisecond * 250)
|
||||
_, err := net.Dial("tcp", "127.0.0.1:8125")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
_, err = net.Dial("tcp", "127.0.0.1:8125")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
listener.Stop()
|
||||
}
|
||||
|
|
@ -156,7 +155,7 @@ func sendRequests(conn net.Conn, wg *sync.WaitGroup) {
|
|||
defer wg.Done()
|
||||
for i := 0; i < 25000; i++ {
|
||||
//nolint:errcheck,revive
|
||||
fmt.Fprintf(conn, testMsg)
|
||||
fmt.Fprint(conn, testMsg)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -476,7 +475,7 @@ func TestParse_Distributions(t *testing.T) {
|
|||
parseMetrics()
|
||||
for key, value := range validMeasurementMap {
|
||||
field := map[string]interface{}{
|
||||
"value": float64(value),
|
||||
"value": value,
|
||||
}
|
||||
acc.AssertContainsFields(t, key, field)
|
||||
}
|
||||
|
|
@ -1570,7 +1569,7 @@ func testValidateGauge(
|
|||
}
|
||||
|
||||
if valueExpected != valueActual {
|
||||
return fmt.Errorf("Measurement: %s, expected %f, actual %f", name, valueExpected, valueActual)
|
||||
return fmt.Errorf("measurement: %s, expected %f, actual %f", name, valueExpected, valueActual)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
@ -1590,6 +1589,8 @@ func TestTCP(t *testing.T) {
|
|||
addr := statsd.TCPlistener.Addr().String()
|
||||
|
||||
conn, err := net.Dial("tcp", addr)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = conn.Write([]byte("cpu.time_idle:42|c\n"))
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, conn.Close())
|
||||
|
|
|
|||
|
|
@ -11,9 +11,10 @@ import (
|
|||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/influxdata/telegraf"
|
||||
"github.com/influxdata/telegraf/testutil"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var ex2 = `{"timestamp":"2017-03-06T07:43:39.000397+0000","event_type":"stats","stats":{"capture":{"kernel_packets":905344474,"kernel_drops":78355440,"kernel_packets_delta":2376742,"kernel_drops_delta":82049}}}`
|
||||
|
|
@ -388,11 +389,13 @@ func TestSuricataParse(t *testing.T) {
|
|||
for _, tc := range tests {
|
||||
data, err := os.ReadFile("testdata/" + tc.filename)
|
||||
require.NoError(t, err)
|
||||
|
||||
s := Suricata{
|
||||
Delimiter: "_",
|
||||
}
|
||||
acc := testutil.Accumulator{}
|
||||
s.parse(&acc, data)
|
||||
err = s.parse(&acc, data)
|
||||
require.NoError(t, err)
|
||||
|
||||
testutil.RequireMetricsEqual(t, tc.expected, acc.GetTelegrafMetrics(), testutil.IgnoreTime())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@ import (
|
|||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/influxdata/telegraf/testutil"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/influxdata/telegraf/testutil"
|
||||
)
|
||||
|
||||
func TestSynproxyFileNormal(t *testing.T) {
|
||||
|
|
@ -38,8 +38,8 @@ func TestSynproxyFileHeaderMismatch(t *testing.T) {
|
|||
|
||||
acc := testutil.Accumulator{}
|
||||
err := k.Gather(&acc)
|
||||
assert.Error(t, err)
|
||||
assert.Contains(t, err.Error(), "invalid number of columns in data")
|
||||
require.Error(t, err)
|
||||
require.Contains(t, err.Error(), "invalid number of columns in data")
|
||||
}
|
||||
|
||||
func TestSynproxyFileInvalidHex(t *testing.T) {
|
||||
|
|
@ -52,8 +52,8 @@ func TestSynproxyFileInvalidHex(t *testing.T) {
|
|||
|
||||
acc := testutil.Accumulator{}
|
||||
err := k.Gather(&acc)
|
||||
assert.Error(t, err)
|
||||
assert.Contains(t, err.Error(), "invalid value")
|
||||
require.Error(t, err)
|
||||
require.Contains(t, err.Error(), "invalid value")
|
||||
}
|
||||
|
||||
func TestNoSynproxyFile(t *testing.T) {
|
||||
|
|
@ -69,7 +69,7 @@ func TestNoSynproxyFile(t *testing.T) {
|
|||
|
||||
acc := testutil.Accumulator{}
|
||||
err := k.Gather(&acc)
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
||||
// Valid Synproxy file
|
||||
|
|
@ -149,7 +149,7 @@ func testSynproxyFileData(t *testing.T, fileData string, telegrafData map[string
|
|||
|
||||
acc := testutil.Accumulator{}
|
||||
err := k.Gather(&acc)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
acc.AssertContainsFields(t, "synproxy", telegrafData)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import (
|
|||
"time"
|
||||
"unicode"
|
||||
|
||||
syslog "github.com/influxdata/go-syslog/v3"
|
||||
"github.com/influxdata/go-syslog/v3"
|
||||
"github.com/influxdata/go-syslog/v3/nontransparent"
|
||||
"github.com/influxdata/go-syslog/v3/octetcounting"
|
||||
"github.com/influxdata/go-syslog/v3/rfc3164"
|
||||
|
|
@ -205,7 +205,7 @@ func (s *Syslog) Stop() {
|
|||
// getAddressParts returns the address scheme and host
|
||||
// it also sets defaults for them when missing
|
||||
// when the input address does not specify the protocol it returns an error
|
||||
func getAddressParts(a string) (string, string, error) {
|
||||
func getAddressParts(a string) (scheme string, host string, err error) {
|
||||
parts := strings.SplitN(a, "://", 2)
|
||||
if len(parts) != 2 {
|
||||
return "", "", fmt.Errorf("missing protocol within address '%s'", a)
|
||||
|
|
@ -220,7 +220,6 @@ func getAddressParts(a string) (string, string, error) {
|
|||
return parts[0], parts[1], nil
|
||||
}
|
||||
|
||||
var host string
|
||||
if u.Hostname() != "" {
|
||||
host = u.Hostname()
|
||||
}
|
||||
|
|
@ -259,7 +258,7 @@ func (s *Syslog) listenPacket(acc telegraf.Accumulator) {
|
|||
|
||||
message, err := p.Parse(b[:n])
|
||||
if message != nil {
|
||||
acc.AddFields("syslog", fields(message, s), tags(message), s.time())
|
||||
acc.AddFields("syslog", fields(message, s), tags(message), s.currentTime())
|
||||
}
|
||||
if err != nil {
|
||||
acc.AddError(err)
|
||||
|
|
@ -383,7 +382,7 @@ func (s *Syslog) store(res syslog.Result, acc telegraf.Accumulator) {
|
|||
acc.AddError(res.Error)
|
||||
}
|
||||
if res.Message != nil {
|
||||
acc.AddFields("syslog", fields(res.Message, s), tags(res.Message), s.time())
|
||||
acc.AddFields("syslog", fields(res.Message, s), tags(res.Message), s.currentTime())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -473,7 +472,7 @@ func (uc unixCloser) Close() error {
|
|||
return err
|
||||
}
|
||||
|
||||
func (s *Syslog) time() time.Time {
|
||||
func (s *Syslog) currentTime() time.Time {
|
||||
t := s.now()
|
||||
if t == s.lastTime {
|
||||
t = t.Add(time.Nanosecond)
|
||||
|
|
|
|||
|
|
@ -241,9 +241,9 @@ func (s *Sysstat) parse(acc telegraf.Accumulator, option string, ts time.Time) e
|
|||
}
|
||||
|
||||
r := bufio.NewReader(stdout)
|
||||
csv := csv.NewReader(r)
|
||||
csv.Comma = '\t'
|
||||
csv.FieldsPerRecord = 6
|
||||
csvReader := csv.NewReader(r)
|
||||
csvReader.Comma = '\t'
|
||||
csvReader.FieldsPerRecord = 6
|
||||
var measurement string
|
||||
// groupData to accumulate data when Group=true
|
||||
type groupData struct {
|
||||
|
|
@ -252,7 +252,7 @@ func (s *Sysstat) parse(acc telegraf.Accumulator, option string, ts time.Time) e
|
|||
}
|
||||
m := make(map[string]groupData)
|
||||
for {
|
||||
record, err := csv.Read()
|
||||
record, err := csvReader.Read()
|
||||
if err == io.EOF {
|
||||
break
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,8 +10,9 @@ import (
|
|||
"path"
|
||||
"testing"
|
||||
|
||||
"github.com/influxdata/telegraf/testutil"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/influxdata/telegraf/testutil"
|
||||
)
|
||||
|
||||
var s = Sysstat{
|
||||
|
|
@ -310,5 +311,6 @@ dell-xps 5 2016-03-25 16:18:10 UTC sdb %util 0.30
|
|||
default:
|
||||
}
|
||||
// some code here to check arguments perhaps?
|
||||
//nolint:revive // error code is important for this "test"
|
||||
os.Exit(0)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@ import (
|
|||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/influxdata/telegraf/internal"
|
||||
|
||||
"github.com/shirou/gopsutil/cpu"
|
||||
"github.com/shirou/gopsutil/disk"
|
||||
"github.com/shirou/gopsutil/host"
|
||||
"github.com/shirou/gopsutil/mem"
|
||||
"github.com/shirou/gopsutil/net"
|
||||
|
||||
"github.com/influxdata/telegraf/internal"
|
||||
)
|
||||
|
||||
type PS interface {
|
||||
|
|
@ -46,18 +46,18 @@ type SystemPSDisk struct{}
|
|||
func (s *SystemPS) CPUTimes(perCPU, totalCPU bool) ([]cpu.TimesStat, error) {
|
||||
var cpuTimes []cpu.TimesStat
|
||||
if perCPU {
|
||||
if perCPUTimes, err := cpu.Times(true); err == nil {
|
||||
cpuTimes = append(cpuTimes, perCPUTimes...)
|
||||
} else {
|
||||
perCPUTimes, err := cpu.Times(true)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
cpuTimes = append(cpuTimes, perCPUTimes...)
|
||||
}
|
||||
if totalCPU {
|
||||
if totalCPUTimes, err := cpu.Times(false); err == nil {
|
||||
cpuTimes = append(cpuTimes, totalCPUTimes...)
|
||||
} else {
|
||||
totalCPUTimes, err := cpu.Times(false)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
cpuTimes = append(cpuTimes, totalCPUTimes...)
|
||||
}
|
||||
return cpuTimes, nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue