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

[enhancement] Utilize the capability of distributed tracing to support traffic recording #171

Closed
sadadw1 opened this issue Nov 24, 2023 · 2 comments
Labels
enhancement New feature or request

Comments

@sadadw1
Copy link
Contributor

sadadw1 commented Nov 24, 2023

We currently have an idea to implement traffic recording functionality using a tracing system. Why can traffic recording be achieved using tracing?

Firstly, the technical solution for traffic recording involves logging the incoming and outgoing parameters of requests, as well as request headers, into log files within the business containers. This information is then collected by a log agent. This approach bears significant resemblance to the current architecture of tracing, and they share certain commonalities, indicating that some capabilities of tracing can be reused.

Internally within Opentelemetry, we will leverage the Nacos configuration notification mechanism. This will enable Opentelemetry to utilize Nacos configuration functionality. In the trac-etl-manager, capabilities will be provided to push configurations to Nacos.

@sadadw1 sadadw1 added the enhancement New feature or request label Nov 24, 2023
@HawickMason
Copy link

Traffic interception involves how to intercept and collect traffics. Generally, available interception locations include:

  • NIC driver
  • protocol stack
  • syscall
  • language standard library
  • communication framework (eg: rpc framework)
  • business code
    For the above interception positions, the further down, the more traffic characteristics there are, and the more flexible the interception methods are.

Trace's probe's existing burying points and code enhancement capabilities can implement flexible traffic interception at the communication framework layer and business code layer, and reduce the impact on business logic in a certain flow chart, making it easier to implement record strategies. Taking RPC traffic as an example, an independent recording filter is implemented through the code enhancement of the Trace mark, and it can be conveniently determined through configuration whether to record this request or not

@wtt40122
Copy link
Contributor

wtt40122 commented Dec 4, 2023

this is indeed a feasible solution, but we have not considered the threshold for the amount of traffic, because if the traffic is particularly high, writing files also requires a lot of overhead, and the resource IO will be very high. It's time to introduce pageCache technology

@sadadw1 sadadw1 closed this as completed May 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants