diff --git a/plugins/parsers/xpath/parser.go b/plugins/parsers/xpath/parser.go index 2f3290dcc..bac9a7fea 100644 --- a/plugins/parsers/xpath/parser.go +++ b/plugins/parsers/xpath/parser.go @@ -100,11 +100,9 @@ func (p *Parser) Parse(buf []byte) ([]telegraf.Metric, error) { if err != nil { return nil, err } - if len(selectedNodes) < 1 || selectedNodes[0] == nil { + if (len(selectedNodes) < 1 || selectedNodes[0] == nil) && !p.AllowEmptySelection { p.debugEmptyQuery("metric selection", doc, config.Selection) - if !p.AllowEmptySelection { - return metrics, fmt.Errorf("cannot parse with empty selection node") - } + return metrics, fmt.Errorf("cannot parse with empty selection node") } p.Log.Debugf("Number of selected metric nodes: %d", len(selectedNodes))