MCPcopy
hub / github.com/grafana/tempo / RegisterFlagsAndApplyDefaults

Method RegisterFlagsAndApplyDefaults

cmd/tempo/app/config.go:83–160  ·  view source on GitHub ↗

RegisterFlagsAndApplyDefaults registers flag.

(prefix string, f *flag.FlagSet)

Source from the content-addressed store, hash-verified

81
82// RegisterFlagsAndApplyDefaults registers flag.
83func (c *Config) RegisterFlagsAndApplyDefaults(prefix string, f *flag.FlagSet) {
84 c.Target = SingleBinary
85 c.StreamOverHTTPEnabled = false
86
87 // Memory settings
88 c.Memory = MemoryConfig{
89 AutoMemLimitEnabled: false,
90 AutoMemLimitRatio: 0.8,
91 }
92
93 // global settings
94 f.StringVar(&c.Target, "target", SingleBinary, "target module")
95 f.BoolVar(&c.AuthEnabled, "auth.enabled", false, "Set to true to enable auth (deprecated: use multitenancy.enabled)")
96 f.BoolVar(&c.MultitenancyEnabled, "multitenancy.enabled", false, "Set to true to enable multitenancy.")
97 f.StringVar(&c.HTTPAPIPrefix, "http-api-prefix", "", "String prefix for all http api endpoints.")
98 f.BoolVar(&c.EnableGoRuntimeMetrics, "enable-go-runtime-metrics", false, "Set to true to enable all Go runtime metrics")
99 f.DurationVar(&c.ShutdownDelay, "shutdown-delay", 0, "How long to wait between SIGTERM and shutdown. After receiving SIGTERM, Tempo will report not-ready status via /ready endpoint.")
100 f.BoolVar(&c.SpanProfiling, "span-profiling", false, "Set to true to enable span profiling (pyroscope pprof labels on OTel spans).")
101
102 // Server settings
103 flagext.DefaultValues(&c.Server)
104 c.Server.LogLevel.RegisterFlags(f)
105
106 // Internal server settings
107 flagext.DefaultValues(&c.InternalServer)
108
109 // Set log level for internal server as the same as server
110 c.InternalServer.LogLevel = c.Server.LogLevel
111 c.InternalServer.LogFormat = c.Server.LogFormat
112
113 // Increase max message size to 16MB
114 c.Server.GRPCServerMaxRecvMsgSize = 16 * 1024 * 1024
115 c.Server.GRPCServerMaxSendMsgSize = 16 * 1024 * 1024
116
117 // The following GRPC server settings are added to address this issue - https://github.com/grafana/tempo/issues/493
118 // The settings prevent the grpc server from sending a GOAWAY message if a client sends heartbeat messages
119 // too frequently (due to lack of real traffic).
120 c.Server.GRPCServerMinTimeBetweenPings = 10 * time.Second
121 c.Server.GRPCServerPingWithoutStreamAllowed = true
122
123 f.IntVar(&c.Server.HTTPListenPort, "server.http-listen-port", 3200, "HTTP server listen port.")
124 f.IntVar(&c.Server.GRPCListenPort, "server.grpc-listen-port", 9095, "gRPC server listen port.")
125
126 // Memberlist settings
127 fs := flag.NewFlagSet("", flag.PanicOnError) // create a new flag set b/c we don't want all the memberlist settings in our flags. we're just doing this to get defaults
128 c.MemberlistKV.RegisterFlags(fs)
129 _ = fs.Parse([]string{})
130 // these defaults were chosen to balance resource usage vs. ring propagation speed. they are a "toned down" version of
131 // the memberlist defaults
132 c.MemberlistKV.RetransmitMult = 2
133 c.MemberlistKV.GossipInterval = time.Second
134 c.MemberlistKV.GossipNodes = 2
135 c.MemberlistKV.EnableCompression = false
136
137 f.Var(&c.MemberlistKV.JoinMembers, "memberlist.host-port", "Host port to connect to memberlist cluster.")
138 f.IntVar(&c.MemberlistKV.TCPTransport.BindPort, "memberlist.bind-port", 7946, "Port for memberlist to communicate on")
139 f.IntVar(&c.MemberlistKV.MessageHistoryBufferBytes, "memberlist.message-history-buffer-bytes", 0, "")
140

Callers 5

RunMethod · 0.95
validateMigratedConfigFunction · 0.95
loadBackendFunction · 0.95
loadConfigFunction · 0.95
NewDefaultConfigFunction · 0.95

Calls 4

PrefixConfigFunction · 0.92
ParseMethod · 0.65
RegisterFlagsMethod · 0.45

Tested by

no test coverage detected