func addAPIServerCoresInfoInterceptor()

in contrib/cmd/runkperf/commands/bench/utils.go [28:60]


func addAPIServerCoresInfoInterceptor(handler subcmdActionFunc) subcmdActionFunc {
	return func(cliCtx *cli.Context) (*internaltypes.BenchmarkReport, error) {
		ctx := context.Background()
		kubeCfgPath := cliCtx.GlobalString("kubeconfig")

		beforeCores, ferr := utils.FetchAPIServerCores(ctx, kubeCfgPath)
		if ferr != nil {
			log.GetLogger(ctx).
				WithKeyValues("level", "warn").
				LogKV("msg", "failed to fetch apiserver cores", "error", ferr)
		}

		report, err := handler(cliCtx)
		if err != nil {
			return nil, err
		}

		afterCores, ferr := utils.FetchAPIServerCores(ctx, kubeCfgPath)
		if ferr != nil {
			log.GetLogger(ctx).
				WithKeyValues("level", "warn").
				LogKV("msg", "failed to fetch apiserver cores", "error", ferr)
		}

		report.Info["apiserver"] = map[string]interface{}{
			"cores": map[string]interface{}{
				"before": beforeCores,
				"after":  afterCores,
			},
		}
		return report, nil
	}
}