Skip to content

Commit 87e26e8

Browse files
committed
Add artifact-evaluation
1 parent 2631d84 commit 87e26e8

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
---
2+
title: Artifact Evaluation for DeepFlow
3+
permalink: /auto-tracing/artifact-evaluation
4+
---
5+
6+
# 1 DeepFlow paper
7+
8+
We attach our submitted paper for the committee's reference.
9+
[Network-Centric Distributed Tracing with DeepFlow: Troubleshooting Your Microservices in Zero Code](https://github.com/deepflowio/deepflow/blob/AEC/docs/deepflow_sigcomm2023.pdf)
10+
11+
# 2 Source code
12+
13+
[https://github.com/deepflowio/deepflow/tree/AEC](https://github.com/deepflowio/deepflow/tree/AEC)
14+
15+
16+
Currentlyource code includes the following core modules:
17+
- agent
18+
19+
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.
20+
Among them, `agent/src/ebpf` is the source code related to eBPF, which is divided into two parts:
21+
22+
- `kernel`: The source code of the eBPF program, will be compiled into bytecode and loaded into the kernel.
23+
- `user`: Used for load eBPF bytecode, and receiving tracing data.
24+
25+
- server
26+
27+
It is responsible for storing spans in the database and assembling them into traces when users query.
28+
29+
# 3 How to install and run artifact
30+
31+
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).
32+
Please follow the instructions in the document below to install and run artifact:
33+
34+
- [Deploying Istio Bookinfo Demo](https://deepflow.io/docs/auto-tracing/istio-bookinfo-demo/).
35+
- [Deploying DeepFlow to monitor a single K8s cluster](https://deepflow.io/docs/install/single-k8s/).
36+
37+
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.
38+
39+
# 4 Artifact Operating Instructions
40+
41+
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.
42+
Go to Grafana, open the `Distributed Tracing` Dashboard, and after selecting `namespace` = `deepflow-ebpf-istio-demo`, you can choose a specific call to trace.
43+
44+
The following video demonstrates the procedure:
45+
46+
<video width="100%" height="100%" controls autoplay>
47+
<source src="http://yunshan-guangzhou.oss-cn-beijing.aliyuncs.com/yunshan-ticket/mp4/c1689f803a82f9198060c646f3306921_20230809113130.mp4" type="video/mp4">
48+
</video>
49+
50+
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:
51+
52+
- `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).
53+
- `req_tcp_seq` and `resp_tcp_seq` are TCP sequence numbers used for associating client and server spans.
54+
55+
You can click on `Related Data` in order to view the connections between all spans.

0 commit comments

Comments
 (0)