Exemple #1
0
// 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
}