Skip to content
This repository has been archived by the owner on Mar 31, 2023. It is now read-only.

[Tracing] Support Jaeger tracing in NCM and TC #707

Merged
merged 136 commits into from
Dec 10, 2021

Conversation

zzxgzgz
Copy link
Contributor

@zzxgzgz zzxgzgz commented Dec 1, 2021

What does this PR do:

  1. Added Jaeger tracing to NCM's gRPC server/client, so that we can use Jaeger to trace NCM's gRPC activities.
  2. Added Jaeger tracing to the Test Controller, to make the tracing more complete.
  3. Closes [NCM] NCM Not Putting VPC States into Cache during PushGoalStatesStream #708

Please refer to the following screenshot to get an idea of what to expect, when running Test Controller:
GoalState Pushdown process:
image

On-demand process:
image
The on-demand tracing was captured before merging #704 , after merging this PR, on-demand doesn't get triggered, as neigbhor states all push down before the pings.

Future improvements:

  1. Improve how the spans are organized when on-demand is triggered, the RequestGoalStates spans show be at the same level, but right now they are chained together. For the reason behind it and a possible solution, please refer to this issue for a possible solution.
  2. Jaeger tracing is also implemented in ACA, but the spans between ACA and NCM doesn't get connected, so the ACA's spans look like this:
    image
    we suspect that this is because we are using different libraries here. In ACA, jaeger tracing was adding using the opentelemetry-cpp library, however, NCM uses the opentracing library. We suspect this mismatch is causing the ACA spans not connected with the NCM spans. We may want to change to opentelemetry library in Alcor later.

@zzxgzgz zzxgzgz self-assigned this Dec 1, 2021
@zzxgzgz zzxgzgz added the enhancement New feature or request label Dec 1, 2021
@lgtm-com
Copy link

lgtm-com bot commented Dec 1, 2021

This pull request introduces 2 alerts when merging 4c99f65 into a843622 - view on LGTM.com

new alerts:

  • 2 for Dereferenced variable may be null

@zzxgzgz zzxgzgz changed the title Added Jaeger tracing to NCM's gRPC server/client and to the Test Controller Added Jaeger tracing to NCM's gRPC server/client and to the Test Controller; Put VPC States into Cache during pushGoalStatesStream Dec 4, 2021
@xieus
Copy link
Contributor

xieus commented Dec 7, 2021

@cj-chung Could you review this PR?

@cj-chung
Copy link
Contributor

cj-chung commented Dec 7, 2021

@cj-chung Could you review this PR?

sure

Copy link
Contributor

@xieus xieus left a comment

Choose a reason for hiding this comment

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

A few comments.

Copy link
Contributor

@xieus xieus left a comment

Choose a reason for hiding this comment

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

LGTM.

@xieus xieus changed the title Added Jaeger tracing to NCM's gRPC server/client and to the Test Controller; Put VPC States into Cache during pushGoalStatesStream [Tracing] Support Jaeger tracing in NCM and TC Dec 10, 2021
@xieus xieus merged commit 42a6edc into futurewei-cloud:master Dec 10, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[NCM] NCM Not Putting VPC States into Cache during PushGoalStatesStream
3 participants