/domain/<DOMAIN>/trace/ - команды управления трассировками вызовов
В данном разделе описаны команды, позволяющие просматривать и сохранять в файл трассировки вызовов.
Трассировка вызова - список сохраненных сообщений/событий, связанных с определенным вызовом. Одному вызову соответствует одна трассировка, которая состоит из множества сообщений (все связанные вызовы, если они есть, трассируются отдельно).
Медиа трассировка - аналогичный список трассировок визуализирующий прохождения вызова внутри SSW.
list
Команда предназначена для просмотра списка вызовов на ECSS-10, для которых есть трассировка.
Путь команды:
/domain/<DOMAIN>/trace/list
Синтаксис:
list [--id <EndOfDialogID>] [--mode <MODE>] [–addr <NUMBER>] [--addr-a <NUMBER>] [--addr-b <NUMBER>] [--limit <LIMIT>]
Параметры:
- --id <EndOfDialogID> - идентификатора вызова в команде "list", либо шаблон идентификатора (проверяется с конца);
- -- mode <MODE> - тип просматриваемого вызова, принимает значения:
- normal - обычный голосовой вызов;
- internal - системный (не голосовой) вызов (например запрос на сервис TSMN);
- callback - в случае, когда система делает обратный отзвон на абонента;
- supervise - вызов супервизора КЦ с целью подключения к разговору оператора КЦ;
- acd - вызов, распределенный очередью;
- message - "вызов" для передачи SIP message;
- refer - "вызов", порожденный SIP refer-ом;
- mgm - вызов для управления ДВО абонента с ТА;
- all - все типы вызовов
- --limit <LIMIT> - количество вызовов, информацию о которых необходимо показать;
- --addr, --addr-a, --addr-b - фильтр выдачи команды по номерам;
- --release-description - добавить в таблицу колонку с описанием причина разъединения вызова.
Пример:
admin@[ds1@ecss1]:/$ domain/biysk.local/trace/list --limit 10 ┌────────┬───────────────────┬────────┬──────────┬────────┬──────────┬──────┬─┬────────┬────────┬───────┬─┐ │Short ID│ Start │ Stage │ Original │Original│ CgPN │ CdPN │M│Duration│Release │ ISUP │F│ │ │ │ │ CgPN │ CdPN │ │ │ │ │ │release│ │ ├────────┼───────────────────┼────────┼──────────┼────────┼──────────┼──────┼─┼────────┼────────┼───────┼─┤ │52794d60│16.03.2019 11:46:59│released│9649910879│ 246584│9649910879│246584│n│ 24s│normal │ 102/0 │ │ │516c4435│16.03.2019 11:51:45│released│9384382481│ 246988│9384382481│246988│n│ 24s│aPtyDisc│ 18/0 │ │ │0bb0c585│16.03.2019 12:02:26│released│9625527107│ 246965│9625527107│246965│n│ 24s│normal │ 102/0 │ │ │062558ff│16.03.2019 12:03:51│released│9609996143│ 245285│9609996143│245285│n│ 24s│normal │ 102/0 │ │ │72744b58│16.03.2019 12:06:47│released│9621061504│ 245138│9621061504│245138│n│ 24s│normal │ 102/0 │ │ │28a99ce8│16.03.2019 12:08:57│released│ 240475│ 058│3854240475│ 058│n│ 5s│normal │ 16/0 │ │ │268dcee7│16.03.2019 12:09:48│released│9913699011│ 240530│9913699011│240530│n│ 4s│normal │ 16/0 │ │ │268dcee7│16.03.2019 12:09:48│released│ 240530│ C101│9913699011│ C101│n│ 4s│normal │ 16/0 │ │ │b711c3be│16.03.2019 12:10:04│released│9913699011│ 240475│9913699011│240475│n│ 20s│normal │ 16/0 │ │ │4a2c37cb│16.03.2019 12:10:45│released│ 240467│ 419145│3854240467│419145│n│ 5s│normal │ 16/0 │ │ └────────┴───────────────────┴────────┴──────────┴────────┴──────────┴──────┴─┴────────┴────────┴───────┴─┘ Legend: M - mode i - internal n - normal c - callback F - flag show is call-process failed or not * - call-procss failed [empty] - call-procss active or successfully finished Total call processes' records: 47 Selected call processes' records: 10 [exec at: 16.03.2019 12:11:10, exec time: 117ms, nodes: core1@ecss1]
Пример 2.
admin@mycelium1@ecss1:/$ domain/biysk.local/trace/list --addr-b 245170 --release-description ┌────────┬──────────┬───────────────────┬────────┬────────┬────────┬──────────┬──────┬─┬────────┬───────┬───────┬────────────────┬─┐ │Short ID│ CallRef │ Start │ Stage │Original│Original│ CgPN │ CdPN │M│Duration│Release│ ISUP │ Release │F│ │ │ │ │ │ CgPN │ CdPN │ │ │ │ │ │release│ description │ │ ├────────┼──────────┼───────────────────┼────────┼────────┼────────┼──────────┼──────┼─┼────────┼───────┼───────┼────────────────┼─┤ │7b986f31│2781582762│26.02.2020 08:29:59│released│ 241170│ 245170│3854241170│245170│n│ 14s│normal │ 16/0 │Call is complete│ │ └────────┴──────────┴───────────────────┴────────┴────────┴────────┴──────────┴──────┴─┴────────┴───────┴───────┴────────────────┴─┘ Legend: M - mode i - internal n - normal c - callback s - supervise a - acd m - message r - refer F - flag show is call-process failed or not * - call-procss failed [empty] - call-procss active or successfully finished Total call processes' records: 204 Selected call processes' records: 1 [exec at: 26.02.2020 08:53:13, exec time: 52ms, nodes: core1@ecss1]
media-topology
Команда предназначена для просмотра медиа трассировок.
Путь команды:
/domain/<DOMAIN>/trace/media-topology
Синтаксис:
media-topology [<PARAMETERS>]
Параметры:
- --Te <TemplateEnd> - суффикс, шаблон с конца, идентификаторов вызовов(8 символов);
- --Tl <CallNumber> - порядковый номер вызовов с конца, который необходимо сохранить. Например, 1 - последний вызов, 2 - предпоследний, и так далее;
- --file <Host> <Filename> - опция для загрузки трассировок с указанного хоста (<Host>) файла (<Filename>);
- --all - опция для просмотра всех трассировок;
- --apps - опция для просмотра сообщений между медиа-менеджером и application side;
- --msr - опция для просмотра сообщений между медиа-менеджером и медиа-сервером;
- --full - опция для печати диалога в полном формате;
- --short - Prints dialog topology dumps;
- --raw - Prints not optimized dialog topology.
Пример:
admin@[ds1@ecss1]:/$ domain/biysk.local/trace/media-topology --Tl 1 ------------------------------------------------------------------------------------- TraceId: <<"8c5e959a0a178244">> First message time: 16.03.2019 14:06:08 ------------------------------------------------------------------------------------- 18. in: 00:00:00:299 timer_rebuild_topology_awake ------------------------------------------------------------------------------------- ┌────────────┐ ┌───────────────┐ ┌───────────────┐ │ <player> │ │ <connection> │ │ <detector> │ │ ivr player │ ──> │ o-leg: 240467 │ ──> │ DTMF detector │ └────────────┘ └───────────────┘ └───────────────┘ ------------------------------------------------------------------------------------- 33. in: 00:00:04:327 timer_rebuild_topology_awake ------------------------------------------------------------------------------------- ┌────────────┐ ┌───────────────┐ ┌───────────────┐ │ <player> │ │ <connection> │ │ <detector> │ │ ivr player │ ──> │ o-leg: 240467 │ ──> │ DTMF detector │ └────────────┘ └───────────────┘ └───────────────┘ ------------------------------------------------------------------------------------- 53. in: 00:00:07:284 timer_rebuild_topology_awake ------------------------------------------------------------------------------------- ┌────────────┐ ┌───────────────┐ ┌───────────────┐ │ <player> │ │ <connection> │ │ <detector> │ │ ivr player │ ──> │ o-leg: 240467 │ ──> │ DTMF detector │ └────────────┘ └───────────────┘ └───────────────┘ [exec at: 16.03.2019 14:17:20, exec time: 921ms, nodes: core1@ecss1]
purge
Команда предназначена для подчистки завершенных вызовов на ECSS-10. Команда удаляет трассировки ядра вне зависимости от текущего бэкэнда. Будут удалены трассировки соответствующие условиям как в режиме ETS так и в режиме DETS (Удаляются только те dets трассировки, которые лежат по стандартным путям и имеют расширение .dets).
Открытые ETS трассировки игнорируются. Открытые Dets трассировки будут удалены.
Путь команды:
/domain/<DOMAIN>/trace/purge
Чтобы не удалять все трассировки, существуют определенные флаги:
Параметры:
- --Tb <Template> - Template Begin - С какой последовательности должна начинаться трассировка (call_id - 8 символов)
- --Te <Template> - Tepmlate End - На какую последовательность должна заканчиваться трассировка (call_id - 8 символов)
- --t <Hours> - Live Time in Hour - Период в часах (от текущего момента), за который трассировки должны остаться
- --c <Count> - Count - Количество трассировок (выбираются самые новые), которые точно должны остаться
- --r <Reason> - Reason - Причина завершения вызова. Может быть normal и exception
При указании флагов --Te и --Tb вместе, поиск нужной трассировки осуществляется по шаблону <Template Begin>*<Template End>. Другими словами, если значения флагов пересекаются (к примеру указано полное имя трассировки в каждом флаге), то трассировка найдена не будет.
Остальные флаги полностью совместимы друг с другом. Ввод одного флага лишь включает соответствующий ему фильтр.
Значение флагов --t и --c не может быть отрицательным.
--с считает все трассировки (включая открытые) и Dets-трассировки расположенные по корректным путям (ручное сохранение трассировок, если оно не попадает под каноничный формат, игнорируется).
Для флага --t, время ETS трассировки - время её закрытия (release_time). Для Dets, если её нет в Actuals calls list - час создания (start_time)
Порядок применения флагов
Start -> --Te / --Tb -> --r -> --t -> --c -> PurgeПример:
admin@[ds1@ecss1]:/$ domain/biysk.local/trace/purge --t 48 Successfully removed records: 600 [exec at: 16.03.2019 14:35:53, exec time: 241ms, nodes: core1@ecss1]
route
Команда предназначена для просмотра трассировок маршрутизации вызова.
Путь команды:
/domain/<DOMAIN>/trace/route
Синтаксис:
route [--Te <TemplateEnd> | --Tl <TraceNumber> | --file <Node> <Filename>]
Параметры:
- --Te <TemplateEnd> - суффикс, шаблон с конца, идентификаторов вызовов, которые необходимо отобразить(8 символов);
- --Tl <CallNumber> - порядковый номер вызовов с конца, который необходимо отобразить. Например, 1 - последний вызов, 2 - предпоследний, и так далее.
- --file <Node> <Filename> - имя файла трассировки. Команда принимает только dets файлы.
- --full-trace <Bool> - ключ который позволяет вывести в трассировках данные о модификаторах вызовов.
Примеры:
Вывод трассировки маршрутизации последнего вызова:
Вывод трассировки маршрутизации вызова из dets файла:
save-trace
Команда предназначена для сохранения сигнальной трассировки вызова в файл.
Путь команды:
/domain/<DOMAIN>/trace/save-trace
Синтаксис:
save-trace [--Tb <BeginPattern>| --Te <EndPattern> | --Tl <CallNumber>] | [--text | --dets] --filename <host> <filename> [--force]
Параметры:
- --Tb <TemplateBegin> - префикс, шаблон с начала, идентификаторов вызовов(8 символов);
- --Te <TemplateEnd> - суффикс, шаблон с конца, идентификаторов вызовов(8 символов);
- --Tl <CallNumber> - порядковый номер вызовов с конца списка трассировок, который необходимо сохранить. Например, 1 - последний вызов, 2 - предпоследний, и так далее;
- --text - при указании команды трассировки вызовов будут сохраняться в текстовом файле;
- --dets(по умолчанию) - при указании команды трассировки вызовов будут сохраняться в формате DETS файла. Файл в формате DETS можно будет использовать в команде "show";
- --filename <HOST> <FILENAME> - при указании команды трассировки вызовов будут сохраняться на заданном хосте (<HOST>), в заданном файле (<FILENAME>);
- --force - сохранять трассировку, даже если файл существует(с перезаписью).
- Примечание 1. Сохранение сигнальной трассировки в файл производится по пути: {DATA-ROOT}/cp/<DOMAIN>/traces. По умолчанию - /var/lib/ecss/cp/<DOMAIN>/traces/.
- Примечание 2. Команда "save-trace --filename <Host> <File>" эквивалентна команде "save-trace --dets --Tl 1 --filename <Host> <File>".
Пример:
admin@[ds1@ecss1]:/$ domain/biysk.local/trace/save-trace --Te 4a2c37cb --text --file ecss1 2019_03_16/240467_cp.txt ok [exec at: 16.03.2019 13:50:04, exec time: 2s 816ms, nodes: core1@ecss1]
save-media
Команда предназначена для сохранения медиа трассировки вызова в файл.
Путь команды:
/domain/<DOMAIN>/trace/save-media
Синтаксис:
save-media --Te <EndPattern> [--filename <host> <filename>]
Параметры:
- --Te <TemplateEnd> - суффикс, шаблон с конца, идентификаторов вызовов(8 символов);
- --filename <HOST> <FILENAME> - Медиа трассировка сохранится на заданном хосте (<HOST>), в заданном файле (<FILENAME>). По умолчанию, этот параметр будет равен "mm-<TRACE ID>".
Примечание. Сохранение медиа трассировки в файл производится по пути: {DATA-ROOT}/cp/<DOMAIN>>/traces. По умолчанию - /var/lib/ecss/cp/<DOMAIN>/traces/.
Пример:
admin@[ds1@ecss1]:/$ domain/biysk.local/trace/save-media --Te 0a178244 --file ecss1 ivr_530.dets Trace saved succesfull. [exec at: 16.03.2019 14:20:10, exec time: 525ms, nodes: core1@ecss1]
dump
Команда предназначена для сохранения всех сигнальных и/или медиа трассировок вызовов в директорию или архив.
Путь команды:
/domain/<DOMAIN>/trace/dump
Синтаксис:
dump [<Filename>] [-a | --archive|-d|--directory] [-m|--with-media] [-u|--uncompress] [-n <Node>] [–force]
Параметры:
- <Filename> - имя директории или архива, куда будут помещены трассировки. По умолчанию: dump_<YYYY>_<MM>_<DD>_<hh>_<mm>_<ss>;
- -a, --archive - сохранить трассировки в архив <Filename>. Если указано, к имени файла будет добавлен суффикс .tar;
- -d, --directory - сохранить трассировки в директорию <Filename>. Если не будут заданы флаги -d, --direcotry, -a, --archive, то трассировки сохранятся в директорию;
- -m, --with-media - сохранить также трассировки медии. Трассировки медии будут сохранены в поддиректорию media/ внутри директории или архива;
- -u, --uncompress - разжать трассировки перед сохранением на диск. Это может быть полезно например для использования утилиты grep. Учтите однако, что это увеличит объем дампа на диске;
- -n, --node - нода на которой трассировки будут сохранены. Трассировки всегда получаются на всех нодах, но сохраняются только на ноде указанной с помощью флага -n. Данный флаг можно опустить только если в кластере Core всего одна нода;
- --force - принудительный запуск команды. Параметр необходимо вводить только в конце строки.
Примечание 1. Сохранение дампа трассировок в архив/директорию производится по пути: {DATA-ROOT}/cp/<DOMAIN>>/traces/<Filename>. По умолчанию - /var/lib/ecss/cp/<DOMAIN>/traces/<Filename>.
Пример:
admin@[mycelium1@PAUL#ECSS-D 000001]:/$ domain/test.domain/trace/dump -u -m -u <<"0624679e20321f19">> OK [1/14] <<"062467a1c9d004e9">> OK [2/14] <<"062468e933cb66e0">> OK [3/14] <<"06246966258ede5c">> OK [4/14] <<"06247715a216d72f">> OK [5/14] <<"062477182cc1827a">> OK [6/14] <<"06247718819c8f61">> OK [7/14] Saving media trace... <<"0624679e20321f19">> OK [8/14] <<"062467a1c9d004e9">> OK [9/14] <<"062468e933cb66e0">> OK [10/14] <<"06246966258ede5c">> OK [11/14] <<"06247715a216d72f">> OK [12/14] <<"062477182cc1827a">> OK [13/14] <<"06247718819c8f61">> OK [14/14] DONE Traces has been saved in "/var/lib/ecss/cp/test.domain/traces/dump_2019_10_31_11_33_25" Media traces has been saved in "/var/lib/ecss/cp/test.domain/traces/dump_2019_10_31_11_33_25/media" [exec at: 31.10.2019 11:33:26, exec time: 1s 447ms, nodes: core1@IBM]
Пример 2:
admin@[mycelium1@PAUL#ECSS-D 000001]:/$ domain/test.domain/trace/dump -a -u -m -u <<"0624679e20321f19">> OK [1/14] <<"062467a1c9d004e9">> OK [2/14] <<"062468e933cb66e0">> OK [3/14] <<"06246966258ede5c">> OK [4/14] <<"06247715a216d72f">> OK [5/14] <<"062477182cc1827a">> OK [6/14] <<"06247718819c8f61">> OK [7/14] Saving media trace... <<"0624679e20321f19">> OK [8/14] <<"062467a1c9d004e9">> OK [9/14] <<"062468e933cb66e0">> OK [10/14] <<"06246966258ede5c">> OK [11/14] <<"06247715a216d72f">> OK [12/14] <<"062477182cc1827a">> OK [13/14] <<"06247718819c8f61">> OK [14/14] DONE Traces has been saved in "/var/lib/ecss/cp/test.domain/traces/dump_2019_10_31_11_33_50.tar" [exec at: 31.10.2019 11:33:53, exec time: 2s 498ms, nodes: core1@IBM]
show
Данной командой выполняется просмотр трассировки по вызовам на ECSS-10.
Путь команды:
/domain/<DOMAIN>/trace/show
Синтаксис:
show [--Te <TemplateEnd> | --Tl <TraceNumber> | --file <Node> <Filename>] [--amqp | --trike | --ccp <Module> | --all] [--Bid <BranchId> | --Oid <ObjectId>] [--payload | --short-payload [--show-sdp | --timers]] [--desired all | <Number>] [--condition <Condition>]
Параметры:
- --all - опция для просмотра всех трассировок;
- --amqp - опция для просмотра только AMQP-сообщений, установлено по умолчанию;
- --Te <TemplateEnd> - суффикс, шаблон с конца, идентификаторов вызовов, которые необходимо отобразить(8 символов);
- --Tl <CallNumber> - порядковый номер вызовов с конца, который необходимо отобразить. Например, 1 - последний вызов, 2 - предпоследний, и так далее;
- --file <Host> <Filename> - опция для загрузки трассировок с указанного хоста (<Host>) файла (<Filename>);
- --trike - опция для просмотра только сообщений, которыми обмениваются сервисы внутри ядра системы;
- --ccp <Module> - опция для просмотра трассировок только по заданному модулю ядра системы;
- --Bid <BranchId> - опция для просмотра трассировок только по заданной цепочке вызова (обычный вызов состоит из одной цепочки, но в случае услуг, например, HOLD, 3WAY и другое, цепочек в рамках одного вызова будет более одной);
- --Oid - показать объекты указанной цепочки;
- --payload - показывать только тело сообщения (без транспортной информации);
- --short-payload - показывать только тип сообщения с минимальным набором информации, которое передается в сообщении;
- --show-sdp - опция для просмотра SDP, если они включены в сообщение;
- --desired <Number> - опция для просмотра событий с заданным номером <Number>, при указании значения "all" будут показаны все события.
- --timers - отображение работы всех таймеров
- --show-sdp - отображать SDP, если они присутствуют в сообщениях;
- --skip-internal - пропускать внутренние сообщения;
- --condition <Condition> - дополнительные условия, синтаксис ввода:
- [not] Expression1 [and | or] [not] Expression2 ...
- <Expression> lvalue [= | > | < | <> | like] rvalue
- <Expression> lvalue in ('term', 'term2')
- <lvalue> field1 | 'Field1' | (atom | term | string) 'Value1'
- <rvalue> field1 | .'field1' | 'term' | (atom | term | string) 'Value1'
Пример:
admin@[ds1@ecss1]:/$ domain/biysk.local/trace/show --short-payload --Tl 1 --timers Current release: 3.14.0.198 Trace id: <<"8c5cd28f2e9205b1">> First message time: 2019/03/16 13:33:50 1. 0 00:00:00:000 976426 i SetupInd smg-4 A:9629272363,B:245440,sdp_o 2. 0 00:00:00:009 n Notification {branch_next,main} 3. 0 00:00:00:010 o Timer start o_heartbeat_send ; 1h 4. 0 00:00:00:010 o Timer start o_heartbeat_receive ; 1h 6m 5. 0 00:00:00:010 o Timer start fill_seizure_timeout ; 2s 6. 0 00:00:00:010 976426 o SetupIndAck smg-4 7. 0 00:00:00:020 n Notification {{leg,o},call_id,<<"1552-718030-886148">>} 8. 0 00:00:00:020 n Notification {{leg,o},{zone,"default"},{site,"local"},{profile,"default"}} 9. 0 00:00:00:030 o Timer cancel fill_seizure_timeout ; 0s 10. 0 00:00:00:065 o Timer start router_resp_timeout ; 5s 11. 0 00:00:00:075 o Timer cancel router_resp_timeout ; 0s 12. 0 00:00:00:075 o Timer cancel collect_timeout ; 0s 13. 0 00:00:00:112 n Notification {{leg,t},{zone,"default"},{site,"local"},{profile,"default"}} 14. 0 00:00:00:112 o Timer start o_no_answer_timeout ; 5m 15. 0 00:00:00:112 o Timer start no_answer_timeout ; 1m 16. 0 00:00:00:115 n Notification {{leg,t},contact,bh,"bond1.2@192.168.2.21?22abcd"} 17. 0 00:00:00:127 n Notification {{leg,t},invite_bh_answer} 18. 0 00:00:00:131 o Timer start bh_timeout ; 200ms 19. 0 00:00:00:131 o Timer start response_ack_timeout ; 6s 20. 0 00:00:00:131 976426 o SetupReq ems1 A:9629272363,B:245440,sdp_o 21. 0 00:00:00:143 976426 i SetupReqAck ems1 22. 0 00:00:00:150 o Timer start t_heartbeat_send ; 1h 23. 0 00:00:00:150 o Timer start t_heartbeat_receive ; 1h 6m 24. 0 00:00:00:150 o Timer cancel response_ack_timeout ; 0s 25. 0 00:00:00:150 o Timer start response_timeout ; 25s 26. 0 00:00:00:332 i Timer awake bh_timeout ; 200ms 27. 0 00:00:24:379 976426 i ReleaseInd smg-4 normal,31,isup_network,"Call is cancelled by initiator" 28. 0 00:00:24:425 n Notification {{leg,t},bye} 29. 0 00:00:24:427 o Timer cancel o_no_answer_timeout ; 0s 30. 0 00:00:24:427 o Timer cancel no_answer_timeout ; 0s 31. 0 00:00:24:427 o Timer cancel response_timeout ; 0s 32. 0 00:00:24:427 976426 o ReleaseReq ems1 normal,31,isup_network,"Call is cancelled by initiator" [exec at: 16.03.2019 13:43:27, exec time: 250ms, nodes: core1@ecss1]
Все трассировки находятся в хранилищах трассировок. Количество хранилищ однозначно не регламентировано, и может варьироваться вместе с масштабированием ядра ESCC-1.