From 87e26e8af89698ea256c3a42be9c66fba7c56cd4 Mon Sep 17 00:00:00 2001 From: Jiping Yin Date: Wed, 9 Aug 2023 12:06:36 +0800 Subject: [PATCH 1/3] Add artifact-evaluation --- .../04-auto-tracing/04-artifact-evaluation.md | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 docs/04-auto-tracing/04-artifact-evaluation.md diff --git a/docs/04-auto-tracing/04-artifact-evaluation.md b/docs/04-auto-tracing/04-artifact-evaluation.md new file mode 100644 index 00000000..42ae67a6 --- /dev/null +++ b/docs/04-auto-tracing/04-artifact-evaluation.md @@ -0,0 +1,55 @@ +--- +title: Artifact Evaluation for DeepFlow +permalink: /auto-tracing/artifact-evaluation +--- + +# 1 DeepFlow paper + +We attach our submitted paper for the committee's reference. +[Network-Centric Distributed Tracing with DeepFlow: Troubleshooting Your Microservices in Zero Code](https://github.com/deepflowio/deepflow/blob/AEC/docs/deepflow_sigcomm2023.pdf) + +# 2 Source code + +[https://github.com/deepflowio/deepflow/tree/AEC](https://github.com/deepflowio/deepflow/tree/AEC) + + +Currentlyource code includes the following core modules: +- agent + + It is used to capture trace data using pre-defined eBPF instrumentation hooks and instrumentation extensions. In addition, the Agent is responsible for integrating metrics and tags from third-party frameworks or cloud platforms and transmitting them to the Server. + Among them, `agent/src/ebpf` is the source code related to eBPF, which is divided into two parts: + + - `kernel`: The source code of the eBPF program, will be compiled into bytecode and loaded into the kernel. + - `user`: Used for load eBPF bytecode, and receiving tracing data. + +- server + + It is responsible for storing spans in the database and assembling them into traces when users query. + +# 3 How to install and run artifact + +We have prepared a demo of a microservice for your review, sourced from [this GitHub repository](https://github.com/istio/istio/tree/master/samples/bookinfo). +Please follow the instructions in the document below to install and run artifact: + +- [Deploying Istio Bookinfo Demo](https://deepflow.io/docs/auto-tracing/istio-bookinfo-demo/). +- [Deploying DeepFlow to monitor a single K8s cluster](https://deepflow.io/docs/install/single-k8s/). + +We have set up an online accessible environment for you. Please [click here](https://ce-demo.deepflow.yunshan.net/d/Distributed_Tracing/distributed-tracing?var-namespace=deepflow-ebpf-istio-demo&from=deepflow-doc) to access it. + +# 4 Artifact Operating Instructions + +According to the introduction in Section 3, you can build and run the artifact on your own, or you can [click here](https://ce-demo.deepflow.yunshan.net/d/Distributed_Tracing/distributed-tracing?var-namespace=deepflow-ebpf-istio-demo&from=deepflow-doc) to access it directly online. +Go to Grafana, open the `Distributed Tracing` Dashboard, and after selecting `namespace` = `deepflow-ebpf-istio-demo`, you can choose a specific call to trace. + +The following video demonstrates the procedure: + + + +In the `Flame Graph`, you will observe associations among all spans. Here,`S` represents system spans, which are collected by attaching eBPF programs to application service system call interfaces. `N` represents network spans, and the data is collected using the `AF_PACKET` method. These data are correlated using the following four field values: + +- `syscall_trace_id_request` and `syscall_trace_id_responseare` trace IDs generated based on the same thread or coroutine, enabling intra-microservice data tracing (association of spans within microservices). +- `req_tcp_seq` and `resp_tcp_seq` are TCP sequence numbers used for associating client and server spans. + +You can click on `Related Data` in order to view the connections between all spans. From 833612aec42d3b45077c7830430bb72eca44882e Mon Sep 17 00:00:00 2001 From: zhifu Date: Wed, 9 Aug 2023 14:46:32 +0800 Subject: [PATCH 2/3] Add artifact-evaluation.mp4 --- .../04-auto-tracing/04-artifact-evaluation.md | 20 +++++++++--------- .../imgs/artifact-evaluation.mp4 | Bin 0 -> 12623448 bytes 2 files changed, 10 insertions(+), 10 deletions(-) create mode 100644 docs/04-auto-tracing/imgs/artifact-evaluation.mp4 diff --git a/docs/04-auto-tracing/04-artifact-evaluation.md b/docs/04-auto-tracing/04-artifact-evaluation.md index 42ae67a6..7f31c8a8 100644 --- a/docs/04-auto-tracing/04-artifact-evaluation.md +++ b/docs/04-auto-tracing/04-artifact-evaluation.md @@ -3,17 +3,17 @@ title: Artifact Evaluation for DeepFlow permalink: /auto-tracing/artifact-evaluation --- -# 1 DeepFlow paper +# DeepFlow paper We attach our submitted paper for the committee's reference. [Network-Centric Distributed Tracing with DeepFlow: Troubleshooting Your Microservices in Zero Code](https://github.com/deepflowio/deepflow/blob/AEC/docs/deepflow_sigcomm2023.pdf) -# 2 Source code +# Source code [https://github.com/deepflowio/deepflow/tree/AEC](https://github.com/deepflowio/deepflow/tree/AEC) - Currentlyource code includes the following core modules: + - agent It is used to capture trace data using pre-defined eBPF instrumentation hooks and instrumentation extensions. In addition, the Agent is responsible for integrating metrics and tags from third-party frameworks or cloud platforms and transmitting them to the Server. @@ -26,7 +26,7 @@ Currentlyource code includes the following core modules: It is responsible for storing spans in the database and assembling them into traces when users query. -# 3 How to install and run artifact +# How to install and run artifact We have prepared a demo of a microservice for your review, sourced from [this GitHub repository](https://github.com/istio/istio/tree/master/samples/bookinfo). Please follow the instructions in the document below to install and run artifact: @@ -36,20 +36,20 @@ Please follow the instructions in the document below to install and run artifact We have set up an online accessible environment for you. Please [click here](https://ce-demo.deepflow.yunshan.net/d/Distributed_Tracing/distributed-tracing?var-namespace=deepflow-ebpf-istio-demo&from=deepflow-doc) to access it. -# 4 Artifact Operating Instructions +# Artifact Operating Instructions -According to the introduction in Section 3, you can build and run the artifact on your own, or you can [click here](https://ce-demo.deepflow.yunshan.net/d/Distributed_Tracing/distributed-tracing?var-namespace=deepflow-ebpf-istio-demo&from=deepflow-doc) to access it directly online. -Go to Grafana, open the `Distributed Tracing` Dashboard, and after selecting `namespace` = `deepflow-ebpf-istio-demo`, you can choose a specific call to trace. +According to the introduction in Section 3, you can build and run the artifact on your own, or you can [click here](https://ce-demo.deepflow.yunshan.net/d/Distributed_Tracing/distributed-tracing?var-namespace=deepflow-ebpf-istio-demo&from=deepflow-doc) to access it directly online. +Go to Grafana, open the `Distributed Tracing` Dashboard, and after selecting `namespace` = `deepflow-ebpf-istio-demo`, you can choose a specific call to trace. The following video demonstrates the procedure: -