-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Add OpenTelemetry Traces to GRPC #2783
Conversation
Warning: This pull request is touching the following templated files:
|
/** | ||
* Enable OpenTelemetry Tracing and provide an instance for the client to use. | ||
* | ||
* @param openTelemetrySdk |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we need a description of the param here, or just delete the @param line
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done. added a description.
// NoOp for Grpc | ||
StorageOptions storageOptionsGrpc = StorageOptions.grpc().build(); | ||
Storage storageGrpc = storageOptionsGrpc.getService(); | ||
storageGrpc.create(BucketInfo.of(grpcBucket)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is no-op testing and checking?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just checking to make sure that it still runs without issue and does nothing. basically just that it doesnt error out.
- clirr | ||
- units (8) | ||
- units (11) | ||
- 'Kokoro - Test: Integration' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does Kokoro need to be updated internally to watch this branch as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ill double check!
String bucket = randomBucketName(); | ||
storage.create(BucketInfo.of(bucket)); | ||
TestExporter testExported = (TestExporter) exporter; | ||
SpanData spanData = testExported.getExportedSpans().get(0); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you plan on testing which spans are collected per operation in addition to Span attributes? I think this would be more useful for Upload and Download ops.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know if i understand this question. what do you mean by which spans are collected
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh i meant; let's say you're uploading a large object to GCS. I would assume there's a span for CreateResumableUpload, then span for each WriteObject request. Wondering if there's a way to test that using spanData
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ah I see, I haven't expanded this for that case yet but yeah we would want to test each span is generated. Maybe we could check for the size to make sure if we expect 3 writeObjectRequests we would have 3 spans
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a good start to assert span count; and expand from there.
To keep this more closely aligned with the introduction in HTTP the scope here is small.
To follow will be to add the attributes for recording exceptions and testing that flow.