// applyFocus filters samples based on the focus/ignore options func applyFocus(prof *profile.Profile, v variables, ui plugin.UI) error { focus, err := compileRegexOption("focus", v["focus"].value, nil) ignore, err := compileRegexOption("ignore", v["ignore"].value, err) hide, err := compileRegexOption("hide", v["hide"].value, err) show, err := compileRegexOption("show", v["show"].value, err) tagfocus, err := compileTagFilter("tagfocus", v["tagfocus"].value, ui, err) tagignore, err := compileTagFilter("tagignore", v["tagignore"].value, ui, err) prunefrom, err := compileRegexOption("prune_from", v["prune_from"].value, err) if err != nil { return err } fm, im, hm, hnm := prof.FilterSamplesByName(focus, ignore, hide, show) warnNoMatches(focus == nil || fm, "Focus", ui) warnNoMatches(ignore == nil || im, "Ignore", ui) warnNoMatches(hide == nil || hm, "Hide", ui) warnNoMatches(show == nil || hnm, "Show", ui) tfm, tim := prof.FilterSamplesByTag(tagfocus, tagignore) warnNoMatches(tagfocus == nil || tfm, "TagFocus", ui) warnNoMatches(tagignore == nil || tim, "TagIgnore", ui) if prunefrom != nil { prof.PruneFrom(prunefrom) } return nil }