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()
}