{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "source": [ "# Ripe-Atlas log analisis scripts\n", "\n", "This notebook is intended to plot and analyze logs from ripe-atlas probes.\n", "\n", "The *log_url* varible is the url that appears in \"Download URL Preview\" in the \"Download logs\" section of the \"Built-Ins\" tab of the probe information page. In json format.\n", "\n", "\n" ], "metadata": { "id": "-HuvJmkTuNhJ" } }, { "cell_type": "markdown", "source": [ "## Ping logs\n" ], "metadata": { "id": "chjHbCl9uniJ" } }, { "cell_type": "code", "source": [ "# @title Load file - use the input on the right to place the url with PING logs and run this box.\n", "\n", "import requests\n", "import time\n", "from io import StringIO\n", "import pandas as pd\n", "\n", "dataframes = []\n", "\n", "log_url = \"https://atlas.ripe.net/api/v2/measurements/1001/results/?probe_ids=1008517&start=1725494400&stop=1725839999&format=json\" #@param {type:\"string\"}\n", "data = requests.get(log_url)\n", "ping_df = pd.read_json(StringIO(data.text))\n", "df_sorted = ping_df.sort_values('timestamp', ascending=True)\n", "dataframes.append(df_sorted)\n", "ping_df.head()\n", "\n", "\n", "log_url_1 = \"\" #@param {type:\"string\"}\n", "if log_url_1 != \"\":\n", " time.sleep(2)\n", " data = requests.get(log_url_1)\n", " ping_df = pd.read_json(StringIO(data.text))\n", " df_sorted = ping_df.sort_values('timestamp', ascending=True)\n", " dataframes.append(df_sorted)\n", "\n", "log_url_2 = \"\" #@param {type:\"string\"}\n", "if log_url_2 != \"\":\n", " time.sleep(5)\n", " data = requests.get(log_url_2)\n", " ping_df = pd.read_json(StringIO(data.text))\n", " df_sorted = ping_df.sort_values('timestamp', ascending=True)\n", " dataframes.append(df_sorted)\n", "\n", "# concatenate dataframes\n", "ping_df = pd.concat(dataframes)\n", "\n", "\n", "\n" ], "metadata": { "id": "B7GSvu-nx-md", "cellView": "form" }, "execution_count": 16, "outputs": [] }, { "cell_type": "code", "execution_count": 17, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 542 }, "id": "EQZ847IkuGQq", "outputId": "122830cc-bffc-4a48-ec9c-6636ff91febf", "cellView": "form" }, "outputs": [ { "output_type": "display_data", "data": { "text/html": [ "\n", "
\n", "\n", "| \n", " | fw | \n", "mver | \n", "lts | \n", "result | \n", "uri | \n", "msm_id | \n", "prb_id | \n", "timestamp | \n", "msm_name | \n", "from | \n", "type | \n", "stored_timestamp | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "5080 | \n", "2.6.2 | \n", "816873 | \n", "[{'header': ['X-Client-IP: 186.118.170.139', '... | \n", "http://193.0.6.141 | \n", "12027 | \n", "1008517 | \n", "2024-09-05 00:29:17 | \n", "HTTPGet | \n", "186.118.170.139 | \n", "http | \n", "1725496234 | \n", "
| 1 | \n", "5080 | \n", "2.6.2 | \n", "820474 | \n", "[{'header': ['X-Client-IP: 186.118.170.139', '... | \n", "http://193.0.6.141 | \n", "12027 | \n", "1008517 | \n", "2024-09-05 01:29:19 | \n", "HTTPGet | \n", "186.118.170.139 | \n", "http | \n", "1725499842 | \n", "
| 2 | \n", "5080 | \n", "2.6.2 | \n", "824073 | \n", "[{'header': ['X-Client-IP: 186.118.170.139', '... | \n", "http://193.0.6.141 | \n", "12027 | \n", "1008517 | \n", "2024-09-05 02:29:17 | \n", "HTTPGet | \n", "186.118.170.139 | \n", "http | \n", "1725503448 | \n", "
| 3 | \n", "5080 | \n", "2.6.2 | \n", "827672 | \n", "[{'header': ['X-Client-IP: 186.118.170.139', '... | \n", "http://193.0.6.141 | \n", "12027 | \n", "1008517 | \n", "2024-09-05 03:29:17 | \n", "HTTPGet | \n", "186.118.170.139 | \n", "http | \n", "1725507032 | \n", "
| 4 | \n", "5080 | \n", "2.6.2 | \n", "831271 | \n", "[{'header': ['X-Client-IP: 186.118.170.139', '... | \n", "http://193.0.6.141 | \n", "12027 | \n", "1008517 | \n", "2024-09-05 04:29:16 | \n", "HTTPGet | \n", "186.118.170.139 | \n", "http | \n", "1725510630 | \n", "
| \n", " | Start Time | \n", "End Time | \n", "Disconnection Time (hours) | \n", "
|---|
| \n", " | fw | \n", "mver | \n", "lts | \n", "endtime | \n", "dst_name | \n", "dst_addr | \n", "src_addr | \n", "proto | \n", "af | \n", "size | \n", "paris_id | \n", "result | \n", "destination_ip_responded | \n", "msm_id | \n", "prb_id | \n", "timestamp | \n", "msm_name | \n", "from | \n", "type | \n", "stored_timestamp | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "5080 | \n", "2.6.2 | \n", "815268 | \n", "1725494553 | \n", "193.0.14.129 | \n", "193.0.14.129 | \n", "192.168.3.134 | \n", "UDP | \n", "4 | \n", "40 | \n", "8 | \n", "[{'hop': 1, 'result': [{'from': '192.168.3.1',... | \n", "True | \n", "5001 | \n", "1008517 | \n", "2024-09-05 00:02:20 | \n", "Traceroute | \n", "186.118.170.139 | \n", "traceroute | \n", "1725494612 | \n", "
| 1 | \n", "5080 | \n", "2.6.2 | \n", "817066 | \n", "1725496351 | \n", "193.0.14.129 | \n", "193.0.14.129 | \n", "192.168.3.134 | \n", "UDP | \n", "4 | \n", "40 | \n", "9 | \n", "[{'hop': 1, 'result': [{'from': '192.168.3.1',... | \n", "True | \n", "5001 | \n", "1008517 | \n", "2024-09-05 00:32:18 | \n", "Traceroute | \n", "186.118.170.139 | \n", "traceroute | \n", "1725496423 | \n", "
| 2 | \n", "5080 | \n", "2.6.2 | \n", "818863 | \n", "1725498148 | \n", "193.0.14.129 | \n", "193.0.14.129 | \n", "192.168.3.134 | \n", "UDP | \n", "4 | \n", "40 | \n", "10 | \n", "[{'hop': 1, 'result': [{'from': '192.168.3.1',... | \n", "True | \n", "5001 | \n", "1008517 | \n", "2024-09-05 01:02:17 | \n", "Traceroute | \n", "186.118.170.139 | \n", "traceroute | \n", "1725498212 | \n", "
| 3 | \n", "5080 | \n", "2.6.2 | \n", "820668 | \n", "1725499953 | \n", "193.0.14.129 | \n", "193.0.14.129 | \n", "192.168.3.134 | \n", "UDP | \n", "4 | \n", "40 | \n", "11 | \n", "[{'hop': 1, 'result': [{'from': '192.168.3.1',... | \n", "True | \n", "5001 | \n", "1008517 | \n", "2024-09-05 01:32:20 | \n", "Traceroute | \n", "186.118.170.139 | \n", "traceroute | \n", "1725500029 | \n", "
| 4 | \n", "5080 | \n", "2.6.2 | \n", "822465 | \n", "1725501750 | \n", "193.0.14.129 | \n", "193.0.14.129 | \n", "192.168.3.134 | \n", "UDP | \n", "4 | \n", "40 | \n", "12 | \n", "[{'hop': 1, 'result': [{'from': '192.168.3.1',... | \n", "True | \n", "5001 | \n", "1008517 | \n", "2024-09-05 02:02:18 | \n", "Traceroute | \n", "186.118.170.139 | \n", "traceroute | \n", "1725501816 | \n", "
| \n", " | index :57 | \n", "index :55 | \n", "
|---|---|---|
| fw | \n", "5080 | \n", "5080 | \n", "
| mver | \n", "2.6.2 | \n", "2.6.2 | \n", "
| lts | \n", "917872 | \n", "914264 | \n", "
| endtime | \n", "1725597157 | \n", "1725593549 | \n", "
| dst_name | \n", "193.0.14.129 | \n", "193.0.14.129 | \n", "
| dst_addr | \n", "193.0.14.129 | \n", "193.0.14.129 | \n", "
| src_addr | \n", "192.168.3.134 | \n", "192.168.3.134 | \n", "
| proto | \n", "UDP | \n", "UDP | \n", "
| af | \n", "4 | \n", "4 | \n", "
| size | \n", "40 | \n", "40 | \n", "
| paris_id | \n", "1 | \n", "15 | \n", "
| destination_ip_responded | \n", "False | \n", "True | \n", "
| msm_id | \n", "5001 | \n", "5001 | \n", "
| prb_id | \n", "1008517 | \n", "1008517 | \n", "
| timestamp | \n", "2024-09-06 04:32:19 | \n", "2024-09-06 03:32:17 | \n", "
| msm_name | \n", "Traceroute | \n", "Traceroute | \n", "
| from | \n", "186.118.170.139 | \n", "186.118.170.139 | \n", "
| type | \n", "traceroute | \n", "traceroute | \n", "
| stored_timestamp | \n", "1725597339 | \n", "1725593625 | \n", "
| hop_count | \n", "8 | \n", "14 | \n", "
| hover_text | \n", "index: 57 2024-09-06 04:32:19 1: 192.168.3.1 2: 186.118.170.137 3: * 4: * 5: * 6: * 7: * 255: * | \n",
" index: 55 2024-09-06 03:32:17 1: 192.168.3.1 2: 186.118.170.137 3: 10.7.79.201 4: * 5: * 6: 94.142.118.231 7: 213.140.36.27 8: 213.140.36.28 9: 5.53.5.92 10: 84.16.6.43 11: * 12: 189.89.141.38 13: 187.44.146.78 14: 193.0.14.129 | \n",
"
| result | \n", "[{'hop': 1, 'result': [{'from': '192.168.3.1', 'ttl': 64, 'size': 68, 'rtt': 0.323}, {'from': '192.168.3.1', 'ttl': 64, 'size': 68, 'rtt': 0.23800000000000002}, {'from': '192.168.3.1', 'ttl': 64, 'size': 68, 'rtt': 0.215}]}, {'hop': 2, 'result': [{'from': '186.118.170.137', 'ttl': 254, 'size': 28, 'rtt': 1.366}, {'from': '186.118.170.137', 'ttl': 254, 'size': 28, 'rtt': 1.161}, {'from': '186.118.170.137', 'ttl': 254, 'size': 28, 'rtt': 1.385}]}, {'hop': 3, 'result': [{'x': '*'}, {'x': '*'}, {'x': '*'}]}, {'hop': 4, 'result': [{'x': '*'}, {'x': '*'}, {'x': '*'}]}, {'hop': 5, 'result': [{'x': '*'}, {'x': '*'}, {'x': '*'}]}, {'hop': 6, 'result': [{'x': '*'}, {'x': '*'}, {'x': '*'}]}, {'hop': 7, 'result': [{'x': '*'}, {'x': '*'}, {'x': '*'}]}, {'hop': 255, 'result': [{'x': '*'}, {'x': '*'}, {'x': '*'}]}] | \n", "[{'hop': 1, 'result': [{'from': '192.168.3.1', 'ttl': 64, 'size': 68, 'rtt': 0.319}, {'from': '192.168.3.1', 'ttl': 64, 'size': 68, 'rtt': 0.20800000000000002}, {'from': '192.168.3.1', 'ttl': 64, 'size': 68, 'rtt': 0.223}]}, {'hop': 2, 'result': [{'from': '186.118.170.137', 'ttl': 254, 'size': 28, 'rtt': 1.3860000000000001}, {'from': '186.118.170.137', 'ttl': 254, 'size': 28, 'rtt': 1.089}, {'from': '186.118.170.137', 'ttl': 254, 'size': 28, 'rtt': 1.166}]}, {'hop': 3, 'result': [{'from': '10.7.79.201', 'ttl': 62, 'size': 68, 'rtt': 0.454}, {'from': '10.7.79.201', 'ttl': 62, 'size': 68, 'rtt': 0.435}, {'from': '10.7.79.201', 'ttl': 62, 'size': 68, 'rtt': 0.41500000000000004}]}, {'hop': 4, 'result': [{'x': '*'}, {'x': '*'}, {'x': '*'}]}, {'hop': 5, 'result': [{'x': '*'}, {'x': '*'}, {'x': '*'}]}, {'hop': 6, 'result': [{'from': '94.142.118.231', 'ttl': 248, 'size': 68, 'rtt': 22.238, 'itos': 128}, {'from': '94.142.118.231', 'ttl': 248, 'size': 68, 'rtt': 22.008, 'itos': 128}, {'from': '94.142.118.231', 'ttl': 248, 'size': 68, 'rtt': 22.057, 'itos': 128}]}, {'hop': 7, 'result': [{'from': '213.140.36.27', 'ttl': 245, 'size': 140, 'rtt': 152.803, 'itos': 128, 'icmpext': {'version': 0, 'rfc4884': 1, 'obj': [{'class': 0, 'type': 0}]}}, {'from': '213.140.36.27', 'ttl': 245, 'size': 140, 'rtt': 152.462, 'itos': 128, 'icmpext': {'version': 0, 'rfc4884': 1, 'obj': [{'class': 0, 'type': 0}]}}, {'from': '213.140.36.27', 'ttl': 245, 'size': 140, 'rtt': 152.462, 'itos': 128, 'icmpext': {'version': 0, 'rfc4884': 1, 'obj': [{'class': 0, 'type': 0}]}}]}, {'hop': 8, 'result': [{'from': '213.140.36.28', 'ttl': 246, 'size': 140, 'rtt': 152.165, 'ittl': 2, 'itos': 128, 'icmpext': {'version': 0, 'rfc4884': 1, 'obj': [{'class': 0, 'type': 0}]}}, {'from': '213.140.36.28', 'ttl': 246, 'size': 140, 'rtt': 152.415, 'ittl': 2, 'itos': 128, 'icmpext': {'version': 0, 'rfc4884': 1, 'obj': [{'class': 0, 'type': 0}]}}, {'from': '213.140.36.28', 'ttl': 246, 'size': 140, 'rtt': 152.3, 'ittl': 2, 'itos': 128, 'icmpext': {'version': 0, 'rfc4884': 1, 'obj': [{'class': 0, 'type': 0}]}}]}, {'hop': 9, 'result': [{'from': '5.53.5.92', 'ttl': 246, 'size': 28, 'rtt': 152.32, 'itos': 128}, {'from': '5.53.5.92', 'ttl': 246, 'size': 28, 'rtt': 152.649, 'itos': 128}, {'from': '5.53.5.92', 'ttl': 246, 'size': 28, 'rtt': 152.049, 'itos': 128}]}, {'hop': 10, 'result': [{'from': '84.16.6.43', 'ttl': 246, 'size': 28, 'rtt': 152.566}, {'from': '84.16.6.43', 'ttl': 246, 'size': 28, 'rtt': 156.21}, {'from': '84.16.6.43', 'ttl': 246, 'size': 28, 'rtt': 152.373}]}, {'hop': 11, 'result': [{'x': '*'}, {'x': '*'}, {'x': '*'}]}, {'hop': 12, 'result': [{'from': '189.89.141.38', 'ttl': 244, 'size': 28, 'rtt': 173.841}, {'from': '189.89.141.38', 'ttl': 244, 'size': 28, 'rtt': 166.825}, {'from': '189.89.141.38', 'ttl': 244, 'size': 28, 'rtt': 168.018}]}, {'hop': 13, 'result': [{'from': '187.44.146.78', 'ttl': 52, 'size': 68, 'rtt': 152.42}, {'from': '187.44.146.78', 'ttl': 52, 'size': 68, 'rtt': 152.296}, {'from': '187.44.146.78', 'ttl': 52, 'size': 68, 'rtt': 152.291}]}, {'hop': 14, 'result': [{'from': '193.0.14.129', 'ttl': 51, 'size': 68, 'rtt': 153.028}, {'from': '193.0.14.129', 'ttl': 51, 'size': 68, 'rtt': 152.999}, {'from': '193.0.14.129', 'ttl': 51, 'size': 68, 'rtt': 152.976}]}] | \n", "