-
Notifications
You must be signed in to change notification settings - Fork 344
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
Added OpenTelemetry instrumentation #738
Added OpenTelemetry instrumentation #738
Conversation
I built an image based on this branch: |
82d1fd2
to
4695441
Compare
Signed-off-by: Juraci Paixão Kröhling <juraci@kroehling.de>
Signed-off-by: Juraci Paixão Kröhling <juraci@kroehling.de>
4695441
to
785c3e6
Compare
Signed-off-by: Juraci Paixão Kröhling <juraci@kroehling.de>
b4eba41
to
aaaf9cc
Compare
Signed-off-by: Juraci Paixão Kröhling <juraci@kroehling.de>
I just ran this with OLM and could confirm that it works fine. During my first test, I didn't get the ---
apiVersion: operators.coreos.com/v1
kind: OperatorSource
metadata:
name: jpkroehling-operators
namespace: marketplace
spec:
type: appregistry
endpoint: https://quay.io/cnr
registryNamespace: jpkroehling
---
apiVersion: operators.coreos.com/v1alpha2
kind: OperatorGroup
metadata:
name: jpkroehling-operatorgroup
namespace: marketplace
spec:
targetNamespaces:
- marketplace
---
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: jpkroehling-subsription
namespace: marketplace
spec:
channel: stable
name: jaeger
source: jpkroehling-operators
sourceNamespace: marketplace And here's the CSV: https://paste.centos.org/view/c7b0cfba |
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.
Partial review, will continue later.
cfg, err := config.GetConfig() | ||
if err != nil { | ||
span.SetStatus(codes.Internal) | ||
span.SetAttribute(key.String("error", err.Error())) |
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.
From a quick scan of the otel docs, couldn't find a standard definition for error
attribute, so unclear whether should be a boolean
type as in opentracing?
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.
Something for @pavolloffay perhaps.
Signed-off-by: Juraci Paixão Kröhling <juraci@kroehling.de>
Signed-off-by: Juraci Paixão Kröhling <juraci@kroehling.de>
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.
End of first pass. Looks good - couple of comments:
- Wondering whether some/all of the operation names may need more scope - to make it clear what part of the code they relate to, e.g.
upgrade.ManagedInstances
rather than justManagedInstances
. - I think only the dependencies processing actually added extra attributes - because it was processing of a loop with multiple dependencies. Possibly not for this initial PR, but it might be useful having additional information about the data being passed to the functions, as attributes.
Good point. Looking at the screenshots, I have the feeling that the context is indeed there, given that the parent spans do have upgrade in the name. On the other hand, the operation name is already big, and we can probably use slashes
+1, but I'd do that on an individual basis |
Signed-off-by: Juraci Paixão Kröhling <juraci@kroehling.de>
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.
Only one minor change required on test operator.yaml.
Signed-off-by: Juraci Paixão Kröhling <juraci@kroehling.de>
Merging, e2e passed locally. |
This PR adds OpenTelemetry instrumentation to the Jaeger Operator. It also allows the operator to auto-provision a Jaeger instance. A new sidecar was added to the
deploy/operator.yaml
, pointing to the Jaeger instance that will be provisioned by the operator. As the agent is resilient enough, all spans that are generated via the bootstrap are collected:And this is how the reconciliation loop looks like for the auto-provisioned CR:
Closes #737.
Signed-off-by: Juraci Paixão Kröhling juraci@kroehling.de