@@ -47,6 +47,7 @@ type discoveryOption struct {
47
47
namespace string
48
48
pod string
49
49
gkeAutoDiscoverMetaData bool
50
+ discoverPubSub bool
50
51
}
51
52
52
53
func WithKubernetes (clusterName , namespace , pod , containerName string ) discoveryOption {
@@ -58,6 +59,12 @@ func WithKubernetes(clusterName, namespace, pod, containerName string) discovery
58
59
}
59
60
}
60
61
62
+ func WithPubSub () discoveryOption {
63
+ return discoveryOption {
64
+ discoverPubSub : true ,
65
+ }
66
+ }
67
+
61
68
func WithGKEAutoDiscoverMetaData () discoveryOption {
62
69
/*
63
70
This option will try to auto discover available metadata from the Google Cloud metadata service and environment variables.
@@ -118,6 +125,7 @@ func DiscoverServices(project, serviceName string, tracerProviderOptions []sdktr
118
125
ErrorReporting : errorClient ,
119
126
}
120
127
128
+ discoverPubSub := false
121
129
var traceResource * resource.Resource
122
130
for _ , opt := range opts {
123
131
if opt .gkeAutoDiscoverMetaData {
@@ -134,11 +142,19 @@ func DiscoverServices(project, serviceName string, tracerProviderOptions []sdktr
134
142
traceResource = gke .TraceResourceFromMetaData (serviceName , metadata )
135
143
} else if opt .pod != "" {
136
144
s .MonitoredResource = gke .MonitoredResource (s .Logging , project , opt .clusterName , opt .namespace , opt .pod , opt .containerName )
145
+ } else if opt .discoverPubSub {
146
+ discoverPubSub = true
137
147
}
138
148
}
139
149
if traceResource != nil {
140
150
tracerProviderOptions = append (tracerProviderOptions , sdktrace .WithResource (traceResource ))
141
151
}
152
+ if discoverPubSub {
153
+ s .PubSub , err = pubsub .NewClient (context .Background (), project )
154
+ if err != nil {
155
+ return nil , err
156
+ }
157
+ }
142
158
143
159
s .TracerProvider = sdktrace .NewTracerProvider (append (tracerProviderOptions , sdktrace .WithBatcher (exporter ))... )
144
160
0 commit comments