v0.37.0 lwconf live and fixes
Package / arch (push) Canceled after 0s
Package / user (push) Canceled after 0s
Package / deb (push) Canceled after 0s
Package / freebsd (push) Canceled after 0s
Package / image (push) Canceled after 0s
Test / test (push) Canceled after 0s
Test / e2e (push) Canceled after 0s
Package / arch (push) Canceled after 0s
Package / user (push) Canceled after 0s
Package / deb (push) Canceled after 0s
Package / freebsd (push) Canceled after 0s
Package / image (push) Canceled after 0s
Test / test (push) Canceled after 0s
Test / e2e (push) Canceled after 0s
This commit is contained in:
1 parent
a63b512733
commit
24c3eb1d6e
13 files changed
+97
-48
No files matched your search
@@ -64,8 +64,9 @@ func TestWrittenFormsReadBack(t *testing.T) {
|
||||
exclude, err := c.Add(0, "filters", "exclude")
|
||||
must(err)
|
||||
must(c.Set(0, exclude, "patterns", `password=\S{8,64}`, `"quoted"`))
|
||||
_, err = c.Add(0, "filters", "include")
|
||||
include, err := c.Add(0, "filters", "include")
|
||||
must(err)
|
||||
must(c.Set(0, include, "patterns", "ERROR"))
|
||||
must(c.MoveFilter(0, 1, 0))
|
||||
must(c.Set(0, Node{Role: "rate_limit"}, "entries_per_second", "100"))
|
||||
must(c.Set(0, Node{Role: "heartbeat"}, "interval_ms", "5000"))
|
||||
|
||||
@@ -138,7 +138,7 @@ const (
|
||||
type FilterConfig struct {
|
||||
Type FilterType `toml:"type" default:"include" lw:"enum=include|exclude" help:"pass only matching entries, or drop them"`
|
||||
Logic FilterLogic `toml:"logic" default:"or" lw:"enum=or|and" help:"match any pattern, or all"`
|
||||
Patterns []string `toml:"patterns,omitempty" lw:"hint=regex" help:"RE2 patterns"`
|
||||
Patterns []string `toml:"patterns,omitempty" lw:"required,hint=regex" help:"RE2 patterns"`
|
||||
}
|
||||
|
||||
// --- Sources ---
|
||||
|
||||
@@ -370,15 +370,15 @@ func setDefault(f reflect.Value, o option) {
|
||||
}
|
||||
|
||||
// checkTags applies the tag rules to a table's own keys, naming each by
|
||||
// prefix and key. A zero number is the default or its zero meaning, and
|
||||
// meets the range unless required; an empty enum is one only by its zero
|
||||
// or default.
|
||||
// prefix and key. A required list needs an entry. A zero number is the
|
||||
// default or its zero meaning, and meets the range unless required; an empty
|
||||
// enum is one only by its zero or default.
|
||||
func checkTags(v reflect.Value, prefix string) error {
|
||||
for _, o := range options(v.Type()) {
|
||||
f := v.Field(o.index)
|
||||
var err error
|
||||
switch {
|
||||
case o.Required && (f.IsZero() || f.Kind() == reflect.String && strings.TrimSpace(f.String()) == ""):
|
||||
case o.Required && (f.IsZero() || f.Kind() == reflect.String && strings.TrimSpace(f.String()) == "" || f.Kind() == reflect.Slice && f.Len() == 0):
|
||||
err = errors.New("must be set")
|
||||
case f.Kind() == reflect.String && len(o.Enum) > 0 && (f.String() != "" || o.Zero == "" && o.Default == "") && !slices.Contains(o.Enum, f.String()):
|
||||
err = fmt.Errorf("must be one of %s, got %q", strings.Join(o.Enum, ", "), f.String())
|
||||
|
||||
@@ -26,7 +26,7 @@ func TestEveryRowDecodesFromItsRequiredKeys(t *testing.T) {
|
||||
t.Errorf("%s %s from %v: %v", p.Type, p.Role, m, err)
|
||||
}
|
||||
}
|
||||
for _, stage := range []any{&HeartbeatConfig{}, &RateLimitConfig{}, &FormatConfig{}, &FilterConfig{}} {
|
||||
for _, stage := range []any{&HeartbeatConfig{}, &RateLimitConfig{}, &FormatConfig{}, &FilterConfig{Patterns: []string{"1"}}} {
|
||||
if err := Settle(stage); err != nil {
|
||||
t.Errorf("%T: %v", stage, err)
|
||||
}
|
||||
|
||||
@@ -58,14 +58,6 @@ func NewFilter(cfg config.FilterConfig, logger *log.Logger) (*Filter, error) {
|
||||
func (f *Filter) Apply(entry core.LogEntry) bool {
|
||||
f.totalProcessed.Add(1)
|
||||
|
||||
// No patterns means pass everything
|
||||
if len(f.patterns) == 0 {
|
||||
f.logger.Debug("msg", "No patterns configured, passing entry",
|
||||
"component", "filter",
|
||||
"type", f.config.Type)
|
||||
return true
|
||||
}
|
||||
|
||||
// Check against all fields that might contain the log content
|
||||
text := entry.Message
|
||||
if entry.Level != "" {
|
||||
|
||||
Reference in new issue
Block a user