@@ -14,6 +14,7 @@ import (
1414 "time"
1515
1616 "github.com/felixge/fgprof"
17+ "go.uber.org/automaxprocs/maxprocs"
1718
1819 "github.com/datafog/datafog-api/internal/policy"
1920 "github.com/datafog/datafog-api/internal/receipts"
@@ -22,6 +23,9 @@ import (
2223)
2324
2425func main () {
26+ revertAuto := configureMaxProcs (log .Default ())
27+ defer revertAuto ()
28+
2529 policyPath := getenv ("DATAFOG_POLICY_PATH" , "config/policy.json" )
2630 receiptPath := getenv ("DATAFOG_RECEIPT_PATH" , "datafog_receipts.jsonl" )
2731 apiToken := getenv ("DATAFOG_API_TOKEN" , "" )
@@ -177,6 +181,20 @@ func getenvBool(key string, fallback bool) bool {
177181 return fallback
178182}
179183
184+ func configureMaxProcs (logger * log.Logger ) func () {
185+ if logger == nil {
186+ logger = log .Default ()
187+ }
188+ undo , err := maxprocs .Set (maxprocs .Logger (func (format string , args ... interface {}) {
189+ logger .Printf (format , args ... )
190+ }))
191+ if err != nil {
192+ logger .Printf ("maxprocs configuration skipped: %v" , err )
193+ return func () {}
194+ }
195+ return undo
196+ }
197+
180198func startProfilingServer (addr string , enableFGProf bool , logger * log.Logger ) * http.Server {
181199 mux := http .NewServeMux ()
182200 mux .Handle ("/debug/pprof/" , http .DefaultServeMux )
0 commit comments