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

Initial observer API #1

Merged
merged 5 commits into from
Jun 15, 2017

Conversation

hkshaw1990
Copy link
Collaborator

@hkshaw1990 hkshaw1990 commented Jun 12, 2017

Previous discussion and PR : opentracing/opentracing-go#135
Issue in opentracing-go : opentracing/opentracing-go#136

Signed-off-by: Yuri Shkuro <yurishkuro@users.noreply.github.com>
Signed-off-by: Hemant Kumar <hemant@linux.vnet.ibm.com>
observer.go Outdated
// ...
// }
// OnStartSpan function needs to be defined for a package exporting
// metrics as well.

Choose a reason for hiding this comment

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

should this comment be here? it's a bit confusing

README.md Outdated
As noble as our thoughts might be in fetching additional metrics (other than
latency) for a span using an observer, there are some overhead costs. Not all
observers need to observe all the span events, in which case, we are keeping
a (or, some) handler function(s) empty. In effect, we will still call

Choose a reason for hiding this comment

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

maybe reword/simplify this phrase?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@yurishkuro the new commit rephrased this and removed the other confusing comments.

observer.go Outdated
// SpanObserver is created by the Observer and receives notifications about
// other Span events.
// Client tracers should define these functions for each of the span operations
// which should call the registered (observer) callbacks.

Choose a reason for hiding this comment

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

don't think this sentence is useful.

@tedsuo
Copy link

tedsuo commented Jun 13, 2017

Given all of the previous discussion, and the limitations we currently have due to the lack of a SpanId in OpenTracing, this LGTM.

README.md Outdated

The `otobserver` package provides an API. The (client) tracers (if they want
to implement the observer interface) can implement this interface. To do
that, first fetch the package using go get :

Choose a reason for hiding this comment

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

this description seems a bit off. The API provided by the tracers would be something like a functional option to tracer constructor that passes an Observer. The actual observer API is implemented by a 3rd party, not by the tracer itself.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yeah. Rephrased this in the new commit.

README.md Outdated

and then, define the required span event callbacks. These registered
callbacks would then be called on span events if an observer is created.
Multiple observers can be registered for a given distributed tracer. Have a

Choose a reason for hiding this comment

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

nit: Tracers may allow registering multiple observers (i.e. s/can/may/)

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Fixed.

README.md Outdated
As noble as our thoughts might be in fetching additional metrics (other than
latency) for a span using an observer, there are some overhead costs. Not all
observers need to observe all the span events, in which case, we may have
to keep some callback function(s) empty. In effect, we will still call these

Choose a reason for hiding this comment

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

nit: s/function(s)/functions/

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Fixed.

observer.go Outdated
@@ -0,0 +1,36 @@
// Copyright (c) 2017 Hemant Kumar, IBM Corp.
// (c) 2017 Yuri Shkuro, Uber Technologies, Inc.

Choose a reason for hiding this comment

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

you don't need to include this.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@yurishkuro Removed that from this file and added a copyright for opentracing-contrib in the LICENSE file (following the convention in other opentracing-contrib projects).

@yurishkuro yurishkuro merged commit a761e77 into opentracing-contrib:master Jun 15, 2017
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.

None yet

3 participants