2021-10-03 20:53:50 +08:00
|
|
|
package trace
|
2021-08-22 10:03:56 +08:00
|
|
|
|
2023-02-17 12:41:26 +08:00
|
|
|
import "fmt"
|
|
|
|
|
|
2021-09-04 12:16:30 +08:00
|
|
|
// TraceName represents the tracing name.
|
2021-08-24 10:04:12 +08:00
|
|
|
const TraceName = "go-zero"
|
2021-08-22 10:03:56 +08:00
|
|
|
|
2022-11-04 21:55:17 +08:00
|
|
|
// A Config is an opentelemetry config.
|
2021-08-22 10:03:56 +08:00
|
|
|
type Config struct {
|
2023-02-16 14:43:39 +08:00
|
|
|
Name string `json:",optional"`
|
|
|
|
|
AgentHost string `json:",optional"`
|
|
|
|
|
AgentPort string `json:",optional"`
|
|
|
|
|
Endpoint string `json:",optional"`
|
|
|
|
|
Sampler float64 `json:",default=1.0"`
|
2023-02-17 12:41:26 +08:00
|
|
|
Batcher string `json:",default=jaeger,options=jaeger|jaegerudp|zipkin|otlpgrpc|otlphttp"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (c *Config) isAgentEndPoint() bool {
|
|
|
|
|
return len(c.AgentHost) != 0 && len(c.AgentPort) != 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (c *Config) getEndpoint() string {
|
|
|
|
|
if c.isAgentEndPoint() {
|
|
|
|
|
return fmt.Sprintf("%s:%s", c.AgentHost, c.AgentPort)
|
|
|
|
|
}
|
|
|
|
|
return c.Endpoint
|
2021-08-22 10:03:56 +08:00
|
|
|
}
|