Skip to content

Commit

Permalink
gcp/observability: Add isSampled bool to log entries (#6160)
Browse files Browse the repository at this point in the history
  • Loading branch information
zasweq committed Mar 31, 2023
1 parent 4a12595 commit 113d75f
Show file tree
Hide file tree
Showing 7 changed files with 45 additions and 37 deletions.
2 changes: 1 addition & 1 deletion gcp/observability/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ require (
golang.org/x/oauth2 v0.5.0
google.golang.org/api v0.109.0
google.golang.org/grpc v1.53.0-dev.0.20230315171901-a1e657ce53ba
google.golang.org/grpc/stats/opencensus v0.0.0-20230317183452-b638faff2204
google.golang.org/grpc/stats/opencensus v0.0.0-20230330193705-4a12595692ae
)

require (
Expand Down
4 changes: 2 additions & 2 deletions gcp/observability/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -598,8 +598,8 @@ google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9K
google.golang.org/grpc v1.53.0-dev.0.20230315171901-a1e657ce53ba h1:puuDphNHQZRngQpzUGvfXMBFBv6DuahfWMZaj0jVtjw=
google.golang.org/grpc v1.53.0-dev.0.20230315171901-a1e657ce53ba/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
google.golang.org/grpc/stats/opencensus v0.0.0-20230317183452-b638faff2204 h1:MeDNVH2KmQ9Z3AbXKsvU9UcbRR8LfpZVLmZAVWIX0nI=
google.golang.org/grpc/stats/opencensus v0.0.0-20230317183452-b638faff2204/go.mod h1:Dg7VaOjf0r9QhRn/YpwSf3vKQz1ixulffTlhEarxEXA=
google.golang.org/grpc/stats/opencensus v0.0.0-20230330193705-4a12595692ae h1:40UWCQ40A2NTDabsmbZNznFf9SUftDlaBASj7OCdKDY=
google.golang.org/grpc/stats/opencensus v0.0.0-20230330193705-4a12595692ae/go.mod h1:qPsHQZhltTPryCUC0naykSpbIJDodlCLM/vNa607CrE=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
Expand Down
27 changes: 15 additions & 12 deletions gcp/observability/logging.go
Original file line number Diff line number Diff line change
Expand Up @@ -318,24 +318,27 @@ func (bml *binaryMethodLogger) buildGCPLoggingEntry(ctx context.Context, c iblog
grpcLogEntry.MethodName = bml.methodName
grpcLogEntry.Authority = bml.authority

gcploggingEntry := gcplogging.Entry{
Timestamp: binLogEntry.GetTimestamp().AsTime(),
Severity: 100,
Payload: grpcLogEntry,
}
var sc trace.SpanContext
var ok bool
if bml.clientSide {
// client side span, populated through opencensus trace package.
if span := trace.FromContext(ctx); span != nil {
sc := span.SpanContext()
gcploggingEntry.Trace = "projects/" + bml.projectID + "/traces/" + sc.TraceID.String()
gcploggingEntry.SpanID = sc.SpanID.String()
sc = span.SpanContext()
ok = true
}
} else {
// server side span, populated through stats/opencensus package.
if tID, sID, ok := opencensus.GetTraceAndSpanID(ctx); ok {
gcploggingEntry.Trace = "projects/" + bml.projectID + "/traces/" + tID.String()
gcploggingEntry.SpanID = sID.String()
}
sc, ok = opencensus.SpanContextFromContext(ctx)
}
gcploggingEntry := gcplogging.Entry{
Timestamp: binLogEntry.GetTimestamp().AsTime(),
Severity: 100,
Payload: grpcLogEntry,
}
if ok {
gcploggingEntry.Trace = "projects/" + bml.projectID + "/traces/" + sc.TraceID.String()
gcploggingEntry.SpanID = sc.SpanID.String()
gcploggingEntry.TraceSampled = sc.IsSampled()
}
return gcploggingEntry
}
Expand Down
5 changes: 3 additions & 2 deletions gcp/observability/logging_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,9 @@ func (fle *fakeLoggingExporter) EmitGcpLoggingEntry(entry gcplogging.Entry) {
}

ids := &traceAndSpanIDString{
traceID: entry.Trace,
spanID: entry.SpanID,
traceID: entry.Trace,
spanID: entry.SpanID,
isSampled: entry.TraceSampled,
}
fle.idsSeen = append(fle.idsSeen, ids)

Expand Down
38 changes: 21 additions & 17 deletions gcp/observability/observability_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,22 +110,25 @@ func (fe *fakeOpenCensusExporter) ExportView(vd *view.Data) {
}

type traceAndSpanID struct {
spanName string
traceID trace.TraceID
spanID trace.SpanID
spanName string
traceID trace.TraceID
spanID trace.SpanID
isSampled bool
}

type traceAndSpanIDString struct {
traceID string
spanID string
traceID string
spanID string
isSampled bool
}

// idsToString is a helper that converts from generated trace and span IDs to
// the string version stored in trace message events.
func idsToString(tasi traceAndSpanID, projectID string) traceAndSpanIDString {
func (tasi *traceAndSpanID) idsToString(projectID string) traceAndSpanIDString {
return traceAndSpanIDString{
traceID: "projects/" + projectID + "/traces/" + tasi.traceID.String(),
spanID: tasi.spanID.String(),
traceID: "projects/" + projectID + "/traces/" + tasi.traceID.String(),
spanID: tasi.spanID.String(),
isSampled: tasi.isSampled,
}
}

Expand All @@ -135,9 +138,10 @@ func (fe *fakeOpenCensusExporter) ExportSpan(vd *trace.SpanData) {
// will populate different contexts throughout the system, convert in
// caller to string version as the logging code does.
fe.idCh.Send(traceAndSpanID{
spanName: vd.Name,
traceID: vd.TraceID,
spanID: vd.SpanID,
spanName: vd.Name,
traceID: vd.TraceID,
spanID: vd.SpanID,
isSampled: vd.IsSampled(),
})
}

Expand Down Expand Up @@ -650,7 +654,7 @@ func (s) TestLoggingLinkedWithTraceClientSide(t *testing.T) {
var tasiSent traceAndSpanIDString
for _, tasi := range traceAndSpanIDs {
if strings.HasPrefix(tasi.spanName, "Sent.") {
tasiSent = idsToString(tasi, projectID)
tasiSent = tasi.idsToString(projectID)
continue
}
}
Expand Down Expand Up @@ -792,7 +796,7 @@ func (s) TestLoggingLinkedWithTraceServerSide(t *testing.T) {
var tasiServer traceAndSpanIDString
for _, tasi := range traceAndSpanIDs {
if strings.HasPrefix(tasi.spanName, "grpc.") {
tasiServer = idsToString(tasi, projectID)
tasiServer = tasi.idsToString(projectID)
continue
}
}
Expand Down Expand Up @@ -944,11 +948,11 @@ func (s) TestLoggingLinkedWithTrace(t *testing.T) {
var tasiServer traceAndSpanIDString
for _, tasi := range traceAndSpanIDs {
if strings.HasPrefix(tasi.spanName, "Sent.") {
tasiSent = idsToString(tasi, projectID)
tasiSent = tasi.idsToString(projectID)
continue
}
if strings.HasPrefix(tasi.spanName, "grpc.") {
tasiServer = idsToString(tasi, projectID)
tasiServer = tasi.idsToString(projectID)
}
}

Expand Down Expand Up @@ -1024,11 +1028,11 @@ func (s) TestLoggingLinkedWithTrace(t *testing.T) {
var tasiServer traceAndSpanIDString
for _, tasi := range traceAndSpanIDs {
if strings.HasPrefix(tasi.spanName, "Sent.") {
tasiSent = idsToString(tasi, projectID)
tasiSent = tasi.idsToString(projectID)
continue
}
if strings.HasPrefix(tasi.spanName, "grpc.") {
tasiServer = idsToString(tasi, projectID)
tasiServer = tasi.idsToString(projectID)
}
}

Expand Down
2 changes: 1 addition & 1 deletion interop/observability/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ require (
google.golang.org/api v0.110.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect
google.golang.org/grpc/stats/opencensus v0.0.0-20230317183452-b638faff2204 // indirect
google.golang.org/grpc/stats/opencensus v0.0.0-20230330193705-4a12595692ae // indirect
google.golang.org/protobuf v1.30.0 // indirect
)

Expand Down
4 changes: 2 additions & 2 deletions interop/observability/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1305,8 +1305,8 @@ google.golang.org/genproto v0.0.0-20230222225845-10f96fb3dbec/go.mod h1:3Dl5ZL0q
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA=
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
google.golang.org/grpc/stats/opencensus v0.0.0-20230317183452-b638faff2204 h1:MeDNVH2KmQ9Z3AbXKsvU9UcbRR8LfpZVLmZAVWIX0nI=
google.golang.org/grpc/stats/opencensus v0.0.0-20230317183452-b638faff2204/go.mod h1:Dg7VaOjf0r9QhRn/YpwSf3vKQz1ixulffTlhEarxEXA=
google.golang.org/grpc/stats/opencensus v0.0.0-20230330193705-4a12595692ae h1:40UWCQ40A2NTDabsmbZNznFf9SUftDlaBASj7OCdKDY=
google.golang.org/grpc/stats/opencensus v0.0.0-20230330193705-4a12595692ae/go.mod h1:qPsHQZhltTPryCUC0naykSpbIJDodlCLM/vNa607CrE=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
Expand Down

0 comments on commit 113d75f

Please sign in to comment.