Skip to content
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

Inject span #55

Closed
wants to merge 3 commits into from
Closed

Inject span #55

wants to merge 3 commits into from

Conversation

YANYZP
Copy link
Contributor

@YANYZP YANYZP commented Jun 29, 2020

This includes functions of injecting labels into trace spans and initializing label maps by one time

charleskorn and others added 3 commits May 17, 2020 18:05
…ors.

The parent span ID was being formatted incorrectly, which meant all
spans except the root span were rejected by the GCP tracing API.

If clients did not have error logging hooked up to WithOnError, this
would cause child spans to be silently dropped.

The documentation says the parent span ID should be formatted as a
64-bit integer encoded as a string, but appears to accept the
hexadecimal format returned by SpanID.String().
Fix 'rpc error: code = InvalidArgument desc = Invalid parent id!' err…
@googlebot
Copy link

All (the pull request submitter and all commit authors) CLAs are signed, but one or more commits were authored or co-authored by someone other than the pull request submitter.

We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that by leaving a comment that contains only @googlebot I consent. in this pull request.

Note to project maintainer: There may be cases where the author cannot leave a comment, or the comment is not properly detected as consent. In those cases, you can manually confirm consent of the commit author(s), and set the cla label to yes (if enabled on your project).

ℹ️ Googlers: Go here for more info.

@@ -206,11 +212,30 @@ func newContextWithTimeout(ctx context.Context, timeout time.Duration) (context.
return context.WithTimeout(ctx, timeout)
}

// SetResLabelMapForOnce intializes ResLabelMap for once since
// monitored resources are static
func (e * Exporter) SetResLabelMapForOnce(input map[string]string) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even though it's true that monitored resources are static, OT doesn't preclude the possibility of specifying different resource info for different telemetry data.

For example, see this proposal which would allow different resource scopes: open-telemetry/oteps#78

As such, we shouldn't make the assumption of static resources in the exporter. Instead, you should just translate from the Otel resource in the trace data to the expected attribute values, similar to what you did for the metrics resource mapping code in the other PR.


Having said that, this does come at the cost of performance. We may end up looking to optimize this somewhat in the future, but I don't think we should do that now.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm I should have read your other PR first sorry as that makes it more clear what you're trying to achieve here.

Getting the resource from the controller config might actually be a reasonable thing to do (perhaps it would be better to get it from the top-level tracer/meter config). This is a somewhat dependent on how the SDK changes over time, but we could probably fix this if the SDK changed significantly.

Interesting idea - let me think about it some more and get back to you tomorrow.

FYI @nilebox

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No problem. In fact, the PR(https://github.com/GoogleCloudPlatform/opentelemetry-operations-go/pull/53/files) needs to be changed because I plan to export labels from the merged exporter instead of from cloudmonitoring.go or metric.go. But I may still use Config to extract resources from push.Option. More details are in my design doc.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 - commented on design doc

@YANYZP YANYZP closed this Jul 6, 2020
@YANYZP YANYZP deleted the injectSpan branch July 6, 2020 21:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants