var exceptionMetrics … type Problem … func (p *Problem) String() string { … } type Linter … // Lint performs a linting pass, returning a slice of Problems indicating any // issues found in the metrics stream. The slice is sorted by metric name // and issue description. func (l *Linter) Lint() ([]Problem, error) { … } // shouldIgnore returns true if metric in the exception list, otherwise returns false. func (l *Linter) shouldIgnore(metricName string) bool { … } // NewPromLinter creates a new Linter that reads an input stream of Prometheus metrics. // Only the text exposition format is supported. func NewPromLinter(r io.Reader) *Linter { … } func mergeProblems(problems []Problem) string { … } // shouldIgnore returns true if metric in the exception list, otherwise returns false. func shouldIgnore(metricName string) bool { … } // getLintError will ignore the metrics in exception list and converts lint problem to error. func getLintError(problems []promlint.Problem) error { … }