// newView returns an initial view containing common settings. func newView(key *Key, config *config.Config) (*View, error) { host, err := config.Host(key.Host) if err != nil { return nil, err } view := &View{ Relay: make(map[string]*Relay), } // Load custom filter rules. err = config.Filter.Run(&view.Filter, key.Program, host.ID, host.ClusterID) if err != nil { return nil, &internalError{err} } // Add host tag if missing. view.Filter = append(view.Filter, &Rule{ Match: []string{"", "host", "^$"}, Set: []string{"", "host", host.ID}, }) return view, nil }