Prechádzať zdrojové kódy

feat: support optional otel global initialization for #3284 (#3292)

MiNG 1 rok pred
rodič
commit
1b5946346e
3 zmenil súbory, kde vykonal 18 pridanie a 1 odobranie
  1. 5 0
      core/trace/agent.go
  2. 9 0
      core/trace/agent_test.go
  3. 4 1
      core/trace/config.go

+ 5 - 0
core/trace/agent.go

@@ -33,6 +33,11 @@ var (
 
 // StartAgent starts an opentelemetry agent.
 func StartAgent(c Config) {
+
+	if c.Disabled {
+		return
+	}
+
 	lock.Lock()
 	defer lock.Unlock()
 

+ 9 - 0
core/trace/agent_test.go

@@ -16,6 +16,7 @@ func TestStartAgent(t *testing.T) {
 		endpoint3 = "localhost:1235"
 		endpoint4 = "localhost:1236"
 		endpoint5 = "udp://localhost:6831"
+		endpoint6 = "localhost:1237"
 	)
 	c1 := Config{
 		Name: "foo",
@@ -57,6 +58,11 @@ func TestStartAgent(t *testing.T) {
 		Endpoint: endpoint5,
 		Batcher:  kindJaeger,
 	}
+	c8 := Config{
+		Disabled: true,
+		Endpoint: endpoint6,
+		Batcher:  kindJaeger,
+	}
 
 	StartAgent(c1)
 	StartAgent(c1)
@@ -66,6 +72,7 @@ func TestStartAgent(t *testing.T) {
 	StartAgent(c5)
 	StartAgent(c6)
 	StartAgent(c7)
+	StartAgent(c8)
 
 	lock.Lock()
 	defer lock.Unlock()
@@ -80,4 +87,6 @@ func TestStartAgent(t *testing.T) {
 	assert.False(t, ok)
 	_, ok = agents[endpoint5]
 	assert.True(t, ok)
+	_, ok = agents[endpoint6]
+	assert.False(t, ok)
 }

+ 4 - 1
core/trace/config.go

@@ -16,5 +16,8 @@ type Config struct {
 	// OtlpHttpPath represents the path for OTLP HTTP transport.
 	// For example
 	// /v1/traces
-	OtlpHttpPath string            `json:",optional"`
+	OtlpHttpPath string `json:",optional"`
+
+	// Disabled indicates whether StartAgent should be called when starting the server.
+	Disabled bool
 }