Commit e7dcf36c authored by Andreas Schmidt's avatar Andreas Schmidt
Browse files

+= allow to hide default durations

parent 39cdd957
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"from xlap.analyse.jitter import trace_jitter\n", "from xlap.analyse.jitter import trace_jitter\n",
"trace_jitter(df_1, config,file_name=\"{}_trace_jitter.pdf\".format(protocol),export=True)" "trace_jitter(df_1, config,file_name=\"{}_trace_jitter.pdf\".format(protocol),export=True, default_durations=False)"
] ]
}, },
{ {
......
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
# X-Lap in Action # X-Lap in Action
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
%matplotlib inline %matplotlib inline
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Data Retrieval ## Data Retrieval
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
from xlap.parse import evaluate, parse_config from xlap.parse import evaluate, parse_config
config = parse_config("drone/xlap.yml") config = parse_config("drone/xlap.yml")
protocol = "python" protocol = "python"
data_files = { data_files = {
"sender": "drone/{}-bridge/sender.csv".format(protocol), "sender": "drone/{}-bridge/sender.csv".format(protocol),
"receiver": "drone/{}-bridge/receiver.csv".format(protocol) "receiver": "drone/{}-bridge/receiver.csv".format(protocol)
} }
df_1 = evaluate(data_files["sender"], data_files["receiver"], config=config, kind=0) df_1 = evaluate(data_files["sender"], data_files["receiver"], config=config, kind=0)
df_1.name = "" df_1.name = ""
dfs = [df_1] dfs = [df_1]
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Individual Packet Traces ## Individual Packet Traces
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
from xlap.analyse.trace import traces from xlap.analyse.trace import traces
traces(df_1, config, global_xaxis=True) traces(df_1, config, global_xaxis=True)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Trace Jitter Analysis ## Trace Jitter Analysis
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
from xlap.analyse.jitter import trace_jitter from xlap.analyse.jitter import trace_jitter
trace_jitter(df_1, config,file_name="{}_trace_jitter.pdf".format(protocol),export=True) trace_jitter(df_1, config,file_name="{}_trace_jitter.pdf".format(protocol),export=True, default_durations=False)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Latency Distributions ## Latency Distributions
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
from xlap.analyse.cdf import multi_cdf from xlap.analyse.cdf import multi_cdf
from xlap.analyse.util import colors from xlap.analyse.util import colors
import copy import copy
cfg = copy.deepcopy(config) cfg = copy.deepcopy(config)
multi_cdf(dfs, cfg, colors=colors) multi_cdf(dfs, cfg, colors=colors)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Correlation with E2E Latency ## Correlation with E2E Latency
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
from xlap.analyse.correlation import multi_correlation from xlap.analyse.correlation import multi_correlation
multi_correlation(dfs, config, colors=colors, figsize=(3.0,2.0), cols=4) multi_correlation(dfs, config, colors=colors, figsize=(3.0,2.0), cols=4)
``` ```
......
No preview for this file type
...@@ -29,11 +29,11 @@ def jitter_causes(df, config, export=False, file_name=None, figsize=(8,3), color ...@@ -29,11 +29,11 @@ def jitter_causes(df, config, export=False, file_name=None, figsize=(8,3), color
fig.savefig(file_name) fig.savefig(file_name)
print("Outliers:", len(outliers), ";", "Threshold[us]:", threshold) print("Outliers:", len(outliers), ";", "Threshold[us]:", threshold)
def trace_jitter(data_frame, config=None, threshold=None, export=False, file_name=None, figsize=(8, 4.5)): def trace_jitter(data_frame, config=None, threshold=None, export=False, file_name=None, figsize=(8, 4.5), default_durations=True):
""" """
Displays (and saves) a stacked boxplot of durations. Displays (and saves) a stacked boxplot of durations.
""" """
data_frame = data_frame[[x + "_D" for x in extract_durations(config)]] data_frame = data_frame[[x + "_D" for x in extract_durations(config, default_durations)]]
if threshold is None: if threshold is None:
threshold = get_outlier_threshold(data_frame["EndToEnd_D"].describe()) threshold = get_outlier_threshold(data_frame["EndToEnd_D"].describe())
......
...@@ -30,13 +30,16 @@ def get_outlier_threshold(stats): ...@@ -30,13 +30,16 @@ def get_outlier_threshold(stats):
return q75 + 1.5 * iqr return q75 + 1.5 * iqr
def extract_durations(config): def extract_durations(config, default_durations=True):
durations = config["durations"] durations = config["durations"]
durations_send = [x for x in durations if durations[x]["Source"] == "sender"] durations_send = [x for x in durations if durations[x]["Source"] == "sender"]
durations_recv = [x for x in durations if durations[x]["Source"] == "receiver"] durations_recv = [x for x in durations if durations[x]["Source"] == "receiver"]
return ["EndToEnd", "Sender"] + durations_send + ["Receiver"] + durations_recv sender_default_durations = ["Sender"] if default_durations else []
receiver_default_durations = ["Receiver"] if default_durations else []
return ["EndToEnd"] + sender_default_durations + durations_send + receiver_default_durations + durations_recv
def box(data_frame, xlim=None, export=False, file_name=None, figsize=(8, 4.5)): def box(data_frame, xlim=None, export=False, file_name=None, figsize=(8, 4.5)):
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment