func init()

in loadgen/config/config.go [72:136]


func init() {
	// Server config
	flag.Func(
		"server",
		"server URL (default http://127.0.0.1:8200)",
		func(server string) (err error) {
			if server != "" {
				Config.ServerURL, err = url.Parse(server)
			}
			return
		})
	flag.StringVar(&Config.SecretToken, "secret-token", "", "secret token for APM Server")
	flag.StringVar(&Config.APIKey, "api-key", "", "API key for APM Server")
	flag.BoolVar(&Config.Secure, "secure", false, "validate the remote server TLS certificates")
	flag.BoolVar(
		&Config.RewriteTimestamps,
		"rewrite-timestamps",
		true,
		"rewrite event timestamps every iteration, maintaining relative offsets",
	)

	flag.BoolVar(
		&Config.RewriteIDs,
		"rewrite-ids",
		true,
		"rewrite event IDs every iteration, maintaining event relationships",
	)
	flag.Func("header",
		"extra headers to use when sending data to the server",
		func(s string) error {
			k, v, ok := strings.Cut(s, "=")
			if !ok {
				return fmt.Errorf("invalid header '%s': format must be key=value", s)
			}
			if len(Config.Headers) == 0 {
				Config.Headers = make(map[string]string)
			}
			Config.Headers[k] = v
			return nil
		},
	)
	flag.Var(&Config.EventRate, "event-rate", "Event rate in format of {burst}/{interval}. For example, 200/5s, <= 0 values evaluate to Inf (default 0/s)")
	flag.BoolVar(&Config.IgnoreErrors, "ignore-errors", false, "Ignore HTTP errors while sending events")

	rewriteNames := map[string]*bool{
		"service.name":        &Config.RewriteServiceNames,
		"service.node.name":   &Config.RewriteServiceNodeNames,
		"service.target.name": &Config.RewriteServiceTargetNames,
		"span.name":           &Config.RewriteSpanNames,
		"transaction.name":    &Config.RewriteTransactionNames,
		"transaction.type":    &Config.RewriteTransactionTypes,
	}
	for field, config := range rewriteNames {
		flag.BoolVar(
			config,
			fmt.Sprintf("rewrite-%ss", strings.Replace(field, ".", "-", -1)),
			false,
			fmt.Sprintf("replace `%s` in events", field),
		)
	}

	// For configs that can be set via environment variables, set the required
	// flags from env if they are not explicitly provided via command line
	setFlagsFromEnv()
}