Maybe it's good to have a standard data structure like RIPE Atlas.
[{
"af": 4,
"dst_addr": "202.12.27.33",
"dst_name": "202.12.27.33",
"endtime": 1637626292,
"from": "151.246.166.238",
"fw": 5020,
"lts": 9,
"msm_id": 5006,
"msm_name": "Traceroute",
"mver": "2.2.1",
"paris_id": 10,
"prb_id": 1000580,
"proto": "UDP",
"result": [{
"hop": 1,
"result": [{
"from": "172.17.0.1",
"rtt": 0.56,
"size": 68,
"ttl": 64
}, {
"from": "172.17.0.1",
"rtt": 0.399,
"size": 68,
"ttl": 64
}, {
"from": "172.17.0.1",
"rtt": 0.391,
"size": 68,
"ttl": 64
}
]
}, {
"hop": 2,
"result": [{
"from": "192.168.10.1",
"rtt": 2.873,
"size": 68,
"ttl": 63
}, {
"from": "192.168.10.1",
"rtt": 2.793,
"size": 68,
"ttl": 63
}, {
"from": "192.168.10.1",
"rtt": 2.778,
"size": 68,
"ttl": 63
}
]
}, {
"hop": 3,
"result": [{
"from": "192.168.1.1",
"ittl": 0,
"rtt": 6.255,
"size": 28,
"ttl": 252
}, {
"from": "192.168.1.1",
"ittl": 0,
"rtt": 3.729,
"size": 28,
"ttl": 252
}, {
"from": "192.168.1.1",
"ittl": 0,
"rtt": 3.408,
"size": 28,
"ttl": 252
}
]
}, {
"hop": 4,
"result": [{
"from": "94.183.140.6",
"rtt": 36.494,
"size": 28,
"ttl": 252
}, {
"from": "94.183.140.6",
"rtt": 34.834,
"size": 28,
"ttl": 252
}, {
"from": "94.183.140.6",
"rtt": 33.892,
"size": 28,
"ttl": 252
}
]
}, {
"hop": 5,
"result": [{
"from": "94.183.140.1",
"rtt": 34.591,
"size": 28,
"ttl": 251
}, {
"from": "94.183.140.1",
"rtt": 34.263,
"size": 28,
"ttl": 251
}, {
"from": "94.183.140.1",
"rtt": 33.309,
"size": 28,
"ttl": 251
}
]
}, {
"hop": 6,
"result": [{
"from": "172.22.133.37",
"rtt": 37.557,
"size": 68,
"ttl": 250
}, {
"from": "172.22.133.37",
"rtt": 37.491,
"size": 68,
"ttl": 250
}, {
"from": "172.22.133.37",
"rtt": 38.068,
"size": 68,
"ttl": 250
}
]
}, {
"hop": 7,
"result": [{
"from": "172.18.218.145",
"rtt": 38.313,
"size": 68,
"ttl": 249
}, {
"from": "172.18.218.137",
"rtt": 38.449,
"size": 68,
"ttl": 249
}, {
"from": "172.18.205.249",
"rtt": 37.496,
"size": 68,
"ttl": 249
}
]
}, {
"hop": 8,
"result": [{
"from": "172.18.188.18",
"rtt": 38.758,
"size": 68,
"ttl": 121
}, {
"from": "172.18.188.18",
"rtt": 38.614,
"size": 68,
"ttl": 121
}, {
"from": "172.18.188.18",
"rtt": 38.552,
"size": 68,
"ttl": 121
}
]
}, {
"hop": 9,
"result": [{
"from": "172.18.188.68",
"rtt": 39.842,
"size": 68,
"ttl": 247
}, {
"from": "172.18.188.68",
"rtt": 39.143,
"size": 68,
"ttl": 247
}, {
"from": "172.18.188.68",
"rtt": 44.919,
"size": 68,
"ttl": 247
}
]
}, {
"hop": 10,
"result": [{
"from": "172.18.192.17",
"rtt": 40.768,
"size": 68,
"ttl": 246
}, {
"from": "172.18.192.25",
"rtt": 39.261,
"size": 68,
"ttl": 246
}, {
"from": "172.18.192.13",
"rtt": 40.284,
"size": 68,
"ttl": 246
}
]
}, {
"hop": 11,
"result": [{
"from": "172.18.181.137",
"rtt": 40.962,
"size": 68,
"ttl": 245
}, {
"from": "172.16.46.1",
"rtt": 41.896,
"size": 68,
"ttl": 245
}, {
"from": "172.16.46.5",
"rtt": 47.197,
"size": 68,
"ttl": 245
}
]
}, {
"hop": 12,
"result": [{
"from": "10.201.177.221",
"rtt": 43.408,
"size": 68,
"ttl": 242
}, {
"from": "10.201.177.225",
"rtt": 43.689,
"size": 68,
"ttl": 242
}, {
"from": "10.201.177.225",
"rtt": 42.649,
"size": 68,
"ttl": 242
}
]
}, {
"hop": 13,
"result": [{
"from": "10.21.21.10",
"rtt": 42.748,
"size": 68,
"ttl": 241
}, {
"from": "10.21.21.10",
"rtt": 41.301,
"size": 68,
"ttl": 241
}, {
"from": "10.21.21.10",
"rtt": 62.887,
"size": 68,
"ttl": 241
}
]
}, {
"hop": 14,
"result": [{
"from": "10.21.211.10",
"icmpext": {
"obj": [{
"class": 0,
"type": 0
}
],
"rfc4884": 1,
"version": 0
},
"ittl": 2,
"rtt": 43.338,
"size": 140,
"ttl": 239
}, {
"from": "10.21.211.10",
"icmpext": {
"obj": [{
"class": 0,
"type": 0
}
],
"rfc4884": 1,
"version": 0
},
"ittl": 2,
"rtt": 45.076,
"size": 140,
"ttl": 239
}, {
"from": "10.21.211.10",
"icmpext": {
"obj": [{
"class": 0,
"type": 0
}
],
"rfc4884": 1,
"version": 0
},
"ittl": 2,
"rtt": 41.775,
"size": 140,
"ttl": 239
}
]
}, {
"hop": 15,
"result": [{
"from": "10.21.21.10",
"rtt": 42.107,
"size": 68,
"ttl": 241
}, {
"from": "10.21.21.10",
"rtt": 46.849,
"size": 68,
"ttl": 241
}, {
"from": "10.21.21.10",
"rtt": 42.075,
"size": 68,
"ttl": 241
}
]
}, {
"hop": 16,
"result": [{
"from": "185.1.48.16",
"rtt": 76.749,
"size": 68,
"ttl": 49
}, {
"from": "185.1.48.16",
"rtt": 74.96,
"size": 68,
"ttl": 49
}, {
"from": "185.1.48.16",
"rtt": 74.57,
"size": 68,
"ttl": 49
}
]
}, {
"hop": 17,
"result": [{
"from": "184.104.196.45",
"rtt": 84.812,
"size": 68,
"ttl": 48
}, {
"from": "184.104.196.45",
"rtt": 82.897,
"size": 68,
"ttl": 48
}, {
"from": "184.104.196.45",
"rtt": 83.57,
"size": 68,
"ttl": 48
}
]
}, {
"hop": 18,
"result": [{
"from": "184.104.196.1",
"rtt": 82.066,
"size": 28,
"ttl": 46
}, {
"from": "184.104.196.1",
"rtt": 82.954,
"size": 28,
"ttl": 46
}, {
"from": "184.104.196.1",
"rtt": 82.795,
"size": 28,
"ttl": 46
}
]
}, {
"hop": 19,
"result": [{
"from": "184.105.65.133",
"rtt": 96.805,
"size": 28,
"ttl": 46
}, {
"from": "184.105.65.133",
"rtt": 96.212,
"size": 28,
"ttl": 46
}, {
"from": "184.105.65.133",
"rtt": 102.439,
"size": 28,
"ttl": 46
}
]
}, {
"hop": 20,
"result": [{
"from": "184.105.65.5",
"rtt": 115.32,
"size": 28,
"ttl": 45
}, {
"from": "184.105.65.5",
"rtt": 111.125,
"size": 28,
"ttl": 45
}, {
"from": "184.105.65.5",
"rtt": 113.071,
"size": 28,
"ttl": 45
}
]
}, {
"hop": 21,
"result": [{
"from": "37.49.237.106",
"rtt": 129.242,
"size": 28,
"ttl": 235
}, {
"from": "195.42.144.79",
"rtt": 130.602,
"size": 28,
"ttl": 235
}, {
"from": "37.49.237.106",
"rtt": 126.654,
"size": 28,
"ttl": 235
}
]
}, {
"hop": 22,
"result": [{
"from": "202.12.27.33",
"rtt": 130.383,
"size": 28,
"ttl": 233
}, {
"from": "202.12.27.33",
"rtt": 126.517,
"size": 28,
"ttl": 233
}, {
"from": "202.12.27.33",
"rtt": 127.824,
"size": 28,
"ttl": 233
}
]
}
],
"size": 40,
"src_addr": "172.17.0.2",
"stored_timestamp": 1637626336,
"timestamp": 1637626288,
"type": "traceroute"
}, {
"af": 4,
"dst_addr": "202.12.27.33",
"dst_name": "202.12.27.33",
"endtime": 1637628093,
"from": "151.246.166.238",
"fw": 5020,
"lts": 14,
"msm_id": 5006,
"msm_name": "Traceroute",
"mver": "2.2.1",
"paris_id": 11,
"prb_id": 1000580,
"proto": "UDP",
"result": [{
"hop": 1,
"result": [{
"from": "172.17.0.1",
"rtt": 0.564,
"size": 68,
"ttl": 64
}, {
"from": "172.17.0.1",
"rtt": 0.399,
"size": 68,
"ttl": 64
}, {
"from": "172.17.0.1",
"rtt": 0.315,
"size": 68,
"ttl": 64
}
]
}, {
"hop": 2,
"result": [{
"from": "192.168.10.1",
"rtt": 2.748,
"size": 68,
"ttl": 63
}, {
"from": "192.168.10.1",
"rtt": 2.916,
"size": 68,
"ttl": 63
}, {
"from": "192.168.10.1",
"rtt": 4.468,
"size": 68,
"ttl": 63
}
]
}, {
"hop": 3,
"result": [{
"from": "192.168.1.1",
"ittl": 0,
"rtt": 3.946,
"size": 28,
"ttl": 252
}, {
"from": "192.168.1.1",
"ittl": 0,
"rtt": 3.641,
"size": 28,
"ttl": 252
}, {
"from": "192.168.1.1",
"ittl": 0,
"rtt": 3.745,
"size": 28,
"ttl": 252
}
]
}, {
"hop": 4,
"result": [{
"from": "94.183.140.6",
"rtt": 34.607,
"size": 28,
"ttl": 252
}, {
"from": "94.183.140.6",
"rtt": 34.368,
"size": 28,
"ttl": 252
}, {
"from": "94.183.140.6",
"rtt": 33.883,
"size": 28,
"ttl": 252
}
]
}, {
"hop": 5,
"result": [{
"from": "94.183.140.1",
"rtt": 35.126,
"size": 28,
"ttl": 251
}, {
"from": "94.183.140.1",
"rtt": 34.16,
"size": 28,
"ttl": 251
}, {
"from": "94.183.140.1",
"rtt": 34.08,
"size": 28,
"ttl": 251
}
]
}, {
"hop": 6,
"result": [{
"from": "172.22.133.37",
"rtt": 40.524,
"size": 68,
"ttl": 250
}, {
"from": "172.22.133.37",
"rtt": 37.733,
"size": 68,
"ttl": 250
}, {
"from": "172.22.133.37",
"rtt": 37.492,
"size": 68,
"ttl": 250
}
]
}, {
"hop": 7,
"result": [{
"from": "172.18.218.137",
"rtt": 38.053,
"size": 68,
"ttl": 249
}, {
"from": "172.18.205.213",
"rtt": 38.36,
"size": 68,
"ttl": 249
}, {
"from": "172.18.222.209",
"rtt": 37.867,
"size": 68,
"ttl": 249
}
]
}, {
"hop": 8,
"result": [{
"from": "172.18.188.18",
"rtt": 37.903,
"size": 68,
"ttl": 121
}, {
"from": "172.18.188.18",
"rtt": 39.561,
"size": 68,
"ttl": 121
}, {
"from": "172.18.188.18",
"rtt": 37.919,
"size": 68,
"ttl": 121
}
]
}, {
"hop": 9,
"result": [{
"from": "172.18.188.68",
"rtt": 41.651,
"size": 68,
"ttl": 247
}, {
"from": "172.18.188.68",
"rtt": 39.315,
"size": 68,
"ttl": 247
}, {
"from": "172.18.188.68",
"rtt": 40.564,
"size": 68,
"ttl": 247
}
]
}, {
"hop": 10,
"result": [{
"from": "172.18.192.1",
"rtt": 38.432,
"size": 68,
"ttl": 246
}, {
"from": "172.18.192.29",
"rtt": 39.749,
"size": 68,
"ttl": 246
}, {
"from": "172.18.192.5",
"rtt": 53.008,
"size": 68,
"ttl": 246
}
]
}, {
"hop": 11,
"result": [{
"from": "172.16.46.9",
"rtt": 41.886,
"size": 68,
"ttl": 245
}, {
"from": "172.16.46.193",
"rtt": 41.042,
"size": 68,
"ttl": 245
}, {
"from": "172.16.46.197",
"rtt": 42.388,
"size": 68,
"ttl": 245
}
]
}, {
"hop": 12,
"result": [{
"from": "10.201.177.225",
"rtt": 41.305,
"size": 68,
"ttl": 242
}, {
"from": "10.201.177.221",
"rtt": 44.863,
"size": 68,
"ttl": 242
}, {
"from": "10.201.177.225",
"rtt": 47.7,
"size": 68,
"ttl": 242
}
]
}, {
"hop": 13,
"result": [{
"from": "10.21.21.10",
"rtt": 42.65,
"size": 68,
"ttl": 241
}, {
"from": "10.21.21.10",
"rtt": 42.842,
"size": 68,
"ttl": 241
}, {
"from": "10.21.21.10",
"rtt": 42.72,
"size": 68,
"ttl": 241
}
]
}, {
"hop": 14,
"result": [{
"from": "10.21.211.10",
"icmpext": {
"obj": [{
"class": 0,
"type": 0
}
],
"rfc4884": 1,
"version": 0
},
"ittl": 2,
"rtt": 43.051,
"size": 140,
"ttl": 239
}, {
"from": "10.21.211.10",
"icmpext": {
"obj": [{
"class": 0,
"type": 0
}
],
"rfc4884": 1,
"version": 0
},
"ittl": 2,
"rtt": 43.543,
"size": 140,
"ttl": 239
}, {
"from": "10.21.211.10",
"icmpext": {
"obj": [{
"class": 0,
"type": 0
}
],
"rfc4884": 1,
"version": 0
},
"ittl": 2,
"rtt": 43.603,
"size": 140,
"ttl": 239
}
]
}, {
"hop": 15,
"result": [{
"from": "10.21.21.10",
"rtt": 42.254,
"size": 68,
"ttl": 241
}, {
"from": "10.21.21.10",
"rtt": 44.902,
"size": 68,
"ttl": 241
}, {
"from": "10.21.21.10",
"rtt": 41.691,
"size": 68,
"ttl": 241
}
]
}, {
"hop": 16,
"result": [{
"from": "185.1.48.16",
"rtt": 77.511,
"size": 68,
"ttl": 49
}, {
"from": "185.1.48.16",
"rtt": 74.563,
"size": 68,
"ttl": 49
}, {
"from": "185.1.48.16",
"rtt": 76.154,
"size": 68,
"ttl": 49
}
]
}, {
"hop": 17,
"result": [{
"from": "184.104.196.45",
"rtt": 84.355,
"size": 68,
"ttl": 48
}, {
"from": "184.104.196.45",
"rtt": 85.82,
"size": 68,
"ttl": 48
}, {
"from": "184.104.196.45",
"rtt": 82.819,
"size": 68,
"ttl": 48
}
]
}, {
"hop": 18,
"result": [{
"from": "184.104.196.1",
"rtt": 84.804,
"size": 28,
"ttl": 46
}, {
"from": "184.104.196.1",
"rtt": 83.745,
"size": 28,
"ttl": 46
}, {
"from": "184.104.196.1",
"rtt": 81.614,
"size": 28,
"ttl": 46
}
]
}, {
"hop": 19,
"result": [{
"from": "184.105.65.133",
"rtt": 96.806,
"size": 28,
"ttl": 46
}, {
"from": "184.105.65.133",
"rtt": 95.489,
"size": 28,
"ttl": 46
}, {
"from": "184.105.65.133",
"rtt": 96.774,
"size": 28,
"ttl": 46
}
]
}, {
"hop": 20,
"result": [{
"from": "184.105.65.5",
"rtt": 119.542,
"size": 28,
"ttl": 45
}, {
"from": "184.105.65.5",
"rtt": 111.951,
"size": 28,
"ttl": 45
}, {
"from": "184.105.65.5",
"rtt": 113.013,
"size": 28,
"ttl": 45
}
]
}, {
"hop": 21,
"result": [{
"from": "195.42.144.79",
"rtt": 138.066,
"size": 28,
"ttl": 235
}, {
"from": "37.49.237.106",
"rtt": 128.829,
"size": 28,
"ttl": 235
}, {
"from": "37.49.237.106",
"rtt": 132.527,
"size": 28,
"ttl": 235
}
]
}, {
"hop": 22,
"result": [{
"from": "202.12.27.33",
"rtt": 129.301,
"size": 28,
"ttl": 233
}, {
"from": "202.12.27.33",
"rtt": 124.837,
"size": 28,
"ttl": 233
}, {
"from": "202.12.27.33",
"rtt": 125.361,
"size": 28,
"ttl": 233
}
]
}
],
"size": 40,
"src_addr": "172.17.0.2",
"stored_timestamp": 1637628137,
"timestamp": 1637628089,
"type": "traceroute"
}]