Metrics
Overview
Section titled “Overview”When a filter is enabled, it automatically collects thread-safe metrics about what was checked and filtered.
Basic Usage
Section titled “Basic Usage”f := gogenfilter.NewFilter( gogenfilter.Enabled(), gogenfilter.WithFilterOptions(gogenfilter.FilterAll),)
f.ShouldFilter("db/models.go")f.ShouldFilter("page_templ.go")f.ShouldFilter("main.go")
stats := f.GetStats()fmt.Printf("Total checked: %d\n", stats.TotalFilesChecked)fmt.Printf("Total filtered: %d\n", stats.TotalFiltered())Per-Reason Breakdown
Section titled “Per-Reason Breakdown”stats := f.GetStats()
fmt.Printf("SQLC files: %d\n", stats.FilteredBy(gogenfilter.ReasonSQLC))fmt.Printf("Templ files: %d\n", stats.FilteredBy(gogenfilter.ReasonTempl))fmt.Printf("Protobuf files: %d\n", stats.FilteredBy(gogenfilter.ReasonProtobuf))Available Reasons
Section titled “Available Reasons”| Reason | Description |
|---|---|
ReasonSQLC | sqlc generated files |
ReasonTempl | templ generated files |
ReasonGoEnum | go-enum generated files |
ReasonProtobuf | protobuf generated files |
ReasonOapi | oapi-codegen generated files |
ReasonDeepcopy | deepcopy-gen generated files |
ReasonWire | wire generated files |
ReasonMoq | moq generated files |
ReasonMockgen | mockgen generated files |
ReasonStringer | stringer generated files |
ReasonGeneric | Any Code generated by comment |
ReasonIncludePattern | Excluded by include pattern scope |
ReasonExcludePattern | Matched an exclude pattern |
Disabled Filter
Section titled “Disabled Filter”A disabled filter returns zero stats:
f := gogenfilter.NewFilter(gogenfilter.Disabled())stats := f.GetStats()// stats.TotalFilesChecked == 0// stats.TotalFiltered() == 0Thread Safety
Section titled “Thread Safety”GetStats() returns a snapshot. The internal metrics use sync primitives safe for concurrent use from multiple goroutines.