Командная строка Middle Трейсы и OpenTelemetry обновлено
Где тратится время в трейсе
Условие
На stdin спаны одного трейса в произвольном порядке: <span_id> <parent_id или -> <сервис> <имя> <начало_мс> <конец_мс> (в имени нет пробелов). Корневой спан имеет родителя -. Дочерние спаны одного родителя не пересекаются по времени. Собственное время спана: его длительность минус сумма длительностей его прямых детей. Выведите первой строкой total <длительность корня>, затем три спана с наибольшим собственным временем в формате <собственное_мс> <сервис> <имя> (при равенстве по сервису, затем по имени).
Как подойти
Подсказки: 2
- Сумма длительностей детей копится по ключу родителя:
ch[$2] += $6 - $5. - Корень единственный спан с родителем
-.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.