Skip to content

Commit 694d821

Browse files
radhusalethenorio
authored andcommitted
feat(pubsub): extract trace information
Pass a context that contains trace information extracted from the incoming message, allowing traces to span from publishers over to subscribers. In order for publishers to include tracing information, the pubsub client should be created with: ```go client, err := pubsub.NewClientWithConfig( ctx, cloudrunner.Runtime(ctx).ProjectID, &pubsub.ClientConfig{ EnableOpenTelemetryTracing: true, }, ``` Depends on googleapis/google-cloud-go#10827 which is included in [v1.43.0](https://github.com/googleapis/google-cloud-go/releases/tag/pubsub%2Fv1.43.0).
1 parent 11e084d commit 694d821

File tree

3 files changed

+8
-0
lines changed

3 files changed

+8
-0
lines changed

cloudpubsub/httphandler.go

+3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ import (
77
"net/http"
88
"time"
99

10+
"cloud.google.com/go/pubsub"
1011
"cloud.google.com/go/pubsub/apiv1/pubsubpb"
1112
"go.einride.tech/cloudrunner/cloudrequestlog"
1213
"go.einride.tech/cloudrunner/cloudstatus"
14+
"go.opentelemetry.io/otel/propagation"
1315
"google.golang.org/grpc/status"
1416
"google.golang.org/protobuf/types/known/timestamppb"
1517
)
@@ -55,6 +57,7 @@ func (fn httpHandlerFn) ServeHTTP(w http.ResponseWriter, r *http.Request) {
5557
fields.Add(slog.Any("pubsubMessage", &pubsubMessage))
5658
}
5759
ctx := withSubscription(r.Context(), payload.Subscription)
60+
ctx = propagation.TraceContext{}.Extract(ctx, pubsub.NewMessageCarrierFromPB(&pubsubMessage))
5861
if err := fn(ctx, &pubsubMessage); err != nil {
5962
if fields, ok := cloudrequestlog.GetAdditionalFields(r.Context()); ok {
6063
fields.Add(slog.Any("error", err))

go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ require (
4343
cloud.google.com/go v0.117.0 // indirect
4444
cloud.google.com/go/auth v0.13.0 // indirect
4545
cloud.google.com/go/auth/oauth2adapt v0.2.6 // indirect
46+
cloud.google.com/go/iam v1.2.2 // indirect
4647
cloud.google.com/go/longrunning v0.6.2 // indirect
4748
cloud.google.com/go/monitoring v1.21.2 // indirect
4849
cloud.google.com/go/trace v1.11.2 // indirect

go.sum

+4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ cloud.google.com/go/compute/metadata v0.6.0 h1:A6hENjEsCDtC1k8byVsgwvVcioamEHvZ4
99
cloud.google.com/go/compute/metadata v0.6.0/go.mod h1:FjyFAW1MW0C203CEOMDTu3Dk1FlqW3Rga40jzHL4hfg=
1010
cloud.google.com/go/iam v1.2.2 h1:ozUSofHUGf/F4tCNy/mu9tHLTaxZFLOUiKzjcgWHGIA=
1111
cloud.google.com/go/iam v1.2.2/go.mod h1:0Ys8ccaZHdI1dEUilwzqng/6ps2YB6vRsjIe00/+6JY=
12+
cloud.google.com/go/kms v1.20.1 h1:og29Wv59uf2FVaZlesaiDAqHFzHaoUyHI3HYp9VUHVg=
13+
cloud.google.com/go/kms v1.20.1/go.mod h1:LywpNiVCvzYNJWS9JUcGJSVTNSwPwi0vBAotzDqn2nc=
1214
cloud.google.com/go/logging v1.13.0 h1:7j0HgAp0B94o1YRDqiqm26w4q1rDMH7XNRU34lJXHYc=
1315
cloud.google.com/go/logging v1.13.0/go.mod h1:36CoKh6KA/M0PbhPKMq6/qety2DCAErbhXT62TuXALA=
1416
cloud.google.com/go/longrunning v0.6.2 h1:xjDfh1pQcWPEvnfjZmwjKQEcHnpz6lHjfy7Fo0MK+hc=
@@ -150,6 +152,8 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
150152
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
151153
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
152154
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
155+
go.einride.tech/aip v0.68.0 h1:4seM66oLzTpz50u4K1zlJyOXQ3tCzcJN7I22tKkjipw=
156+
go.einride.tech/aip v0.68.0/go.mod h1:7y9FF8VtPWqpxuAxl0KQWqaULxW4zFIesD6zF5RIHHg=
153157
go.einride.tech/protobuf-sensitive v0.8.0 h1:EoeKBbjJFc+K1xvfut6Wat0AY1eMAdmBYmGiBdK8Plw=
154158
go.einride.tech/protobuf-sensitive v0.8.0/go.mod h1:YkjV9z/m+HxFxtvdEUKdjUhImB5QjTD+mzqAqP5pAnU=
155159
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=

0 commit comments

Comments
 (0)