diff --git a/trace-analysis.ipynb b/trace-analysis.ipynb index 3aca5ac..1ffe77b 100644 --- a/trace-analysis.ipynb +++ b/trace-analysis.ipynb @@ -29,10 +29,7 @@ "%matplotlib inline" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -154,10 +151,7 @@ " print(f\" {k:.<40s} := {v}\")" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -176,10 +170,7 @@ "from matching.subscriptions import sanitize" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -188,10 +179,7 @@ "# Organize Trace Data" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%% md\n" - } + "collapsed": false } }, { @@ -219,10 +207,7 @@ "print(\"Done.\")" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -233,13 +218,22 @@ "\n", "for topic in sorted(topics, key=lambda t: t.name):\n", " topic: TrTopic\n", - " print(f\"{topic.name:.<120s} | {sum(map(lambda p: len(p.instances), topic.publishers))}\")" + " print(f\"{topic.name:.<120s} | {sum(map(lambda p: len(p.instances), topic.publishers))}\")\n", + "\n", + "print(\"\\n[ENTKÄFERN] INPUT TOPICS\")\n", + "for t in sorted(topics, key=lambda t: t.name):\n", + " for f in E2E_INPUT_TOPIC_PATTERNS:\n", + " if re.search(f, t.name):\n", + " print(f\"--[ENTKÄFERN] {f} :ß: {t.name}\")\n", + "\n", + "print(\"\\n[ENTKÄFERN] OUTPUT TOPICS\")\n", + "for t in sorted(topics, key=lambda t: t.name):\n", + " for f in E2E_OUTPUT_TOPIC_PATTERNS:\n", + " if re.search(f, t.name):\n", + " print(f\"--[ENTKÄFERN] {f} :ß: {t.name}\")" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -248,10 +242,7 @@ "# E2E Latency Calculation" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%% md\n" - } + "collapsed": false } }, { @@ -270,10 +261,7 @@ "lat_graph = cached(\"lat_graph\", _make_latency_graph, [TR_PATH], not CACHING_ENABLED)" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -369,10 +357,7 @@ "g" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -503,10 +488,7 @@ "g" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -671,10 +653,7 @@ " return DepTree(inst, deps)" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -710,10 +689,7 @@ " traceback.print_exc()" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -772,10 +748,7 @@ " 'max': parse_bytes(m.group(\"max\"))}\n" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -783,9 +756,10 @@ "execution_count": null, "outputs": [], "source": [ - "\n", "%%skip_if_false E2E_ENABLED\n", "\n", + "from collections import defaultdict\n", + "\n", "def leaf_topics(tree: DepTree, lvl=0):\n", " ret_list = []\n", " match tree.head:\n", @@ -812,6 +786,8 @@ " return ret_list\n", "\n", "\n", + "in_topics_found = set()\n", + "leaf_topics_found = defaultdict(lambda: 0)\n", "def relevant_e2es(tree: DepTree, input_topic_patterns, t_start=None, path=None):\n", " if t_start is None:\n", " t_start = tree.head.timestamp\n", @@ -825,11 +801,12 @@ "\n", " new_path = [tree.head] + path\n", "\n", - " if not tree.deps:\n", - " match tree.head:\n", - " case TrPublishInstance(publisher=pub):\n", - " if pub and any(re.search(f, pub.topic_name) for f in input_topic_patterns):\n", - " return [(latency, new_path)]\n", + " match tree.head:\n", + " case TrPublishInstance(publisher=pub):\n", + " leaf_topics_found[pub.topic_name] += 1\n", + " if pub and any(re.search(f, pub.topic_name) for f in input_topic_patterns):\n", + " in_topics_found.add(pub.topic_name)\n", + " return [(latency, new_path)]\n", "\n", " ret_list = []\n", " for dep in tree.deps:\n", @@ -840,15 +817,24 @@ "e2ess = []\n", "e2e_pathss = []\n", "for tree in trees:\n", - " e2es, e2e_paths = zip(*relevant_e2es(tree, E2E_INPUT_TOPIC_PATTERNS))\n", + " try:\n", + " e2es, e2e_paths = zip(*relevant_e2es(tree, E2E_INPUT_TOPIC_PATTERNS))\n", + " except ValueError as e:\n", + " print(e)\n", + " continue\n", " e2ess.append(e2es)\n", - " e2e_pathss.append(e2e_paths)" + " e2e_pathss.append(e2e_paths)\n", + "\n", + "print(f\"[ENTKÄFERN] {len(e2ess)=} {len(trees)=}\")\n", + "in_topics_found = \"\\n \".join(in_topics_found)\n", + "print(f\" {in_topics_found}\")\n", + "\n", + "print(f\"[ENTKÄFERN]\")\n", + "leaf_topics_found = \"\\n \".join(map(lambda pair: f\"{pair[0]:.<110s} {pair[1]:>10d}\", leaf_topics_found.items()))\n", + "print(f\" {leaf_topics_found}\")" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -897,10 +883,7 @@ "# print(\"==================\")\n" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -950,10 +933,7 @@ "None" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -1017,10 +997,7 @@ "relevant_trees = [t for t in relevant_trees if t]" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -1112,10 +1089,7 @@ "None" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -1151,10 +1125,7 @@ "None" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -1339,10 +1310,7 @@ "print(len(y_labels))" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } }, { @@ -1354,10 +1322,7 @@ "Critical paths are abstracted by their E2E-latency and a list of passed CBs and topics.\n" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%% md\n" - } + "collapsed": false } }, { @@ -1445,10 +1410,7 @@ "out_df.to_csv(os.path.join(OUT_PATH, \"e2e.csv\"), sep=\"\\t\", index=False)\n" ], "metadata": { - "collapsed": false, - "pycharm": { - "name": "#%%\n" - } + "collapsed": false } } ], @@ -1476,4 +1438,4 @@ }, "nbformat": 4, "nbformat_minor": 2 -} \ No newline at end of file +}