Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

В данном разделе описаны команды, позволяющие просматривать и сохранять в файл трассировки вызовов.

Трассировка вызова - список сохраненных сообщений/событий, связанных с определенным вызовом. Одному вызову соответствует одна трассировка, которая состоит из множества сообщений (все связанные вызовы, если они есть, трассируются отдельно).
Медиа трассировка - аналогичный список трассировок визуализирующий прохождения вызова внутри SSW.

Команды управления трассировками вызовов

list

Команда предназначена для просмотра списка вызовов на ECSS-10, для которых есть трассировка.

Путь команды:

/domain/<DOMAIN>/trace/list

Синтаксис:

list [--id <EndOfDialogID>] [--mode <MODE>] [--limit <LIMIT>]

Параметры:

-- id <EndOfDialogID> - идентификатора вызова в команде "list", либо шаблон идентификатора (проверяется с конца);

-- mode <MODE> - тип просматриваемого вызова, принимает значения:

  • internal - внутренний, системный вызов;
  • normal - обычный вызов;
  • callback - вызов, порожденный сервисом "callback";
  • dummy - фиктивный внутренний вызов;
  • all - все вызовы.
    По умолчанию используется режим "normal".

--limit <LIMIT> - количество вызовов, информацию о которых необходимо показать.

Пример:

lena@[mycelium1@ecss1]:/$ domain/test.domain/trace/list   
------------------------------------------------------------------------------------------------------
|Short ID|       Start       |Stage |Original| Original  |CgPN|CdPN|M|Duration|  Release   | ISUP  |F|
|        |                   |      |  CgPN  |   CdPN    |    |    | |        |            |release| |
|--------+-------------------+------+--------+-----------+----+----+-+--------+------------+-------+-|
|a50c1c97|23.01.2015 15:45:11|onhook|     906|        908| 906| 908|n|     12s|            |       | |
|b2e015f4|23.01.2015 15:49:03|onhook|     906|        666|    |    |n|      1s|            |       | |
|b4a940a2|23.01.2015 15:49:33|onhook|     906|*55*7*1550#|    |    |n|      2s|            |       | |
|cfffbabd|23.01.2015 18:20:21|onhook|        |        906|    | 906|n|     36s|   normal   | 16/0  | |
|e045d9d5|23.01.2015 18:24:54|onhook|        |        906|    | 906|n|   1m 6s|   normal   | 16/0  | |
|e48ff6d1|23.01.2015 18:26:06|onhook|        |        906|    | 906|n|   1m 2s|   normal   | 16/0  | |
|690785b3|23.01.2015 19:03:09|onhook|        |        906|    | 906|n|      0s|   normal   | 16/0  | |
|690cb380|23.01.2015 19:03:09|onhook|        |        906|    | 906|n|     26s|   normal   | 16/0  | |
|71366099|23.01.2015 19:05:26|onhook|        |        906|    | 906|n|     15s|   normal   | 16/0  | |
|736c4146|23.01.2015 19:06:03|onhook|        |        908|    | 908|n|      9s|            |       | |
|74c015a8|23.01.2015 19:06:25|onhook|        |        908|    | 908|n|      1s|   normal   | 16/0  | |
|75da8e8b|23.01.2015 19:06:44|onhook|     910|        910| 910| 910|n|      0s|bPtyBusyUDUB|       | |
|76edbf23|23.01.2015 19:07:02|onhook|        |        910|    | 910|n|     53s|   normal   | 16/0  | |
|8839e8a8|23.01.2015 19:11:52|onhook|        |        910|    | 910|n|   1m 0s|            |       | |
------------------------------------------------------------------------------------------------------
Legend:
M - mode
    i - internal
    n - normal
    c - callback
    d - dummy
F - flag show is call-process failed or not
    * - call-procss failed
    [empty] - call-procss active or successfullly finished

Total call processes' records: 133
Selected call processes' records: 14

purge

Путь команды:

/domain/<DOMAIN>/trace/purge

Синтаксис:

purge [--Tb <TemplateBegin>] [--Te <TemplateEnd>] [--r <REASON>] [--c <COUNT>] [--t <Livetime>]

Команда trace/purge удаляет трассировки ядра вне зависимости от текущего бэкэнда. Будут удалены трассировки соответствующие условиям как в режиме ETS так и в режиме DETS (Удаляются только те детс трассировки, которые лежат по стандартным путям и имеют расширение .dets).
Открытые ETS трассировки игнорируются. Открытые Dets трассировки будут удалены т.к. по файлу слишком затратно понять, закончился разговор или файл закрыт по неактивности.

Команда не запрашивает подтверждение на удаление!

Чтобы не удалять все трассировки, существуют определенные флаги

--Tb <Template> - Template Begin - С какой последовательности должна начинаться трассировка (call_id)
    --Te <Template> - Tepmlate End - На какую последовательность должна заканчиваться трассировка (call_id)
    --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@[mycelium1@ecss1]:/$ domain/biysk.local/trace/purge --c 1000                
Successfully removed records: 1375

save-trace

Команда предназначена для сохранения сигнальной трассировки вызова в файл.

Путь команды:

/domain/<DOMAIN>/trace/save-trace

Синтаксис:

save-trace [--Tb <BeginPattern>| --Te <EndPattern> | --Tl <CallNumber>] | [--text | --dets] --filename <host> <filename>

Параметры:

--Tb <TemplateBegin> - префикс, шаблон с начала, идентификаторов вызовов, которые необходимо удалить;
--Te <TemplateEnd> - суффикс, шаблон с конца, идентификаторов вызовов, которые необходимо удалить;
--Tl <CallNumber> - порядковый номер вызовов с конца списка трассировок, который необходимо сохранить. Например, 1 - последний вызов, 2 - предпоследний, и так далее;
--text - при указании команды трассировки вызовов будут сохраняться в текстовом файле;
--dets(по умолчанию) - при указании команды трассировки вызовов будут сохраняться в формате DETS файла. Файл в формате DETS можно будет использовать в команде "show";
--filename <HOST> <FILENAME> - при указании команды трассировки вызовов будут сохраняться на заданном хосте (<HOST>), в заданном файле (<FILENAME>).

Сохранение сигнальной трассировки в файл производится по пути: {DATA-ROOT}/cp/<DOMAIN>>/traces.
Команда "save-trace --filename <Host> <File>" эквивалентна команде "save-trace --dets --Tl 1 --filename <Host> <File>".

Пример:

elena@[mycelium1@ecss1]:/$ domain/test.domain/trace/save-trace --Tl 1 --filename ecss1 my_trace.dets
ok

save-media

Команда предназначена для сохранения медиа трассировки вызова в файл.

Путь команды:

/domain/<DOMAIN>/trace/save-media

Синтаксис:

save-media --Te <EndPattern> [--filename <host> <filename>]

Параметры:
--Te <TemplateEnd> - суффикс, шаблон с конца, идентификаторов вызовов, которые необходимо удалить;
--filename <HOST> <FILENAME> - Медиа трассировка сохранится на заданном хосте (<HOST>), в заданном файле (<FILENAME>). По умолчанию, этот параметр будет равен "mm-<TRACE ID>".

Сохранение медиа трассировки в файл производится по пути: {DATA-ROOT}/cp/<DOMAIN>>/traces.

Пример:

admin@[mycelium1@ecss1]:/$ domain/eltex.local/trace/save-media --Te 72
Trace saved succesfull.

media-topology

Команда предназначена для просмотра медиа трассировок.

Путь команды:

/domain/<DOMAIN>/trace/media-topology

Синтаксис:

media-topology [<PARAMETERS>]

Параметры:

<PARAMETERS>:
--Te <TemplateEnd> - суффикс, шаблон с конца, идентификаторов вызовов, которые необходимо удалить;
--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.

show

Данной командой выполняется просмотр трассировки по вызовам на ECSS-10.

Путь команды:

/domain/<DOMAIN>/trace/show

Синтаксис:

show [--Te <TemplateEnd> | --Tl <TraceNumber> | --file <Filename>] [--amqp | --trike | --ccp <Module> | --all] [--Bid <BranchId>] [--payload | --short-payload [--show-sdp]] [--desired all | <Number>] [--condition <Condition>]

Параметры:

--Te <TemplateEnd> - суффикс, шаблон с конца, идентификаторов вызовов, которые необходимо отобразить;
--Tl <CallNumber> - порядковый номер вызовов с конца, который необходимо отобразить. Например, 1 - последний вызов, 2 - предпоследний, и так далее;
--file <Host> <Filename> - опция для загрузки трассировок с указанного хоста (<Host>) файла (<Filename>);
--amqp - опция для просмотра только AMQP-сообщений, установлено по умолчанию;
--trike - опция для просмотра только сообщений, которыми обмениваются сервисы внутри ядра системы;
--ccp <Module> - опция для просмотра трассировок только по заданному модулю ядра системы;
--all - опция для просмотра всех трассировок;
--Bid <BranchId> - опция для просмотра трассировок только по заданной цепочке вызова (обычный вызов состоит из одной цепочки, но в случае услуг, например, HOLD, 3WAY и другое, цепочек в рамках одного вызова будет более одной);
--payload - показывать только тело сообщения (без транспортной информации);
--short-payload - показывать только тип сообщения с минимальным набором информации, которое передается в сообщении;
--show-sdp - опция для просмотра SDP, если они включены в сообщение;
--desired <Number> - опция для просмотра событий с заданным номером <Number>, при указании значения "all" будут показаны все события.

Пример:

admin@[restfs1@ecss1]:/$ domain/test.domain/trace/show   
Current release: 3.6.0.150
Trace id: <<"sip-t:05368e4c402325ef">>
First message time: 2016/07/01 13:54:36

1.     0 00:00:00:000   044099  i SetupInd               28052fa1b8ba7134               A:103,B:#161,sdp_o
2.     0 00:00:00:027   044099  o SetupIndAck            28052fa1b8ba7134               
3.     0 00:00:00:158           n Notification           {{zone,<<"default">>},{site,<<"local">>},{ccid,undefined}}
4.     0 00:00:00:158           n Notification           {contact,<<101,116,104,48,59,49,64,49,57,50,46,49,54,56,46,50,51,46,56,48,63,
           172,202,1>>}
5.     0 00:00:00:168   044099  o SetupResp              28052fa1b8ba7134               sdp_a
6.     0 00:00:00:180   044099  i CallProgressInd        28052fa1b8ba7134               noIndication,system,[answer,confirmed]
7.     0 00:00:00:409   044099  i ReleaseInd             28052fa1b8ba7134               normal,<<128,144>>,user,need_ack
8.     0 00:00:00:415   044099  o ReleaseIndAck          28052fa1b8ba7134    

На экран выведено 8 сообщений (в самом простом вызове их намного больше). Это связано с тем, что команда по умолчанию выводит только ACP (Adapter Core Protocol) сообщения, которые являются внутренним протоколом сигнализации ECSS-10.

Все трассировки находятся в хранилищах трассировок. Количество хранилищ однозначно не регламентировано, и может варьироваться вместе с масштабированием ядра ESCC-10.

Команда /domain/<DOMAIN>/trace/show при выборе файла, не являющегося снятым трэйсом(dets-ом),  выдает:

admin@mycelium1@ecss1:/$ domain/biysk.local/trace/show --file ecss1 dump1.pcap --all 
Command error: Invalid format of trace file.

[exec at: 13.09.2019 14:29:24, exec time: 14ms, nodes: core1@ecss1]

Команды настройки подсистемы трассировки вызовов

Настройка трассировки

Чтобы избежать проблем с расходованием памяти, необходимо периодически удалять старые трассировки вызовов. Существует два механизма удаления старых трассировок:

  • max_trace_count - максимальное количество трассировок вызовов в одном хранилище трассировок. При превышении данного количества удаляются наиболее старые трассировки. Это нормальный способ удаления старых трейсов.
  • critical_max_events - максимальное количество сообщений в одном хранилище трассировок. При достижении количеством сообщений значения, равного critical_max_events, все трассировки в данном хранилище будут удалены. После трассировка продолжиться в обычном режиме. Это аварийный способ подчистки старых трейсов.
  • lifetime - Время жизни файлов трассировок. Распространяется только на режим записи трассировок DETS.

Значение параметра max_trace_count необходимо выбирать в зависимости от того, какое количество вызовов мы хотим сохранить. Так как этот параметр определяет не общее количество трассировок в системе, а по отдельности в каждом хранилище трассировок, максимальное количество хранимых вызовов будет равняться max_trace_count * N, где N - количество хранилищ.

Допустим количество вызовов, к которым мы хотим гарантированно иметь доступ - 1000, а количество хранилищ трассировок - 4. Если мы укажем max_trace_count равным 250, это будет ошибкой, так как вызовы могут распределяться по хранилищам неравномерно, и часть более новых вызовов могут быть вытеснены из одного из хранилищ. Поэтому нет точного способа подсчета значения max_trace_count в системе целиком, исходя из желаемого количества хранимых трассировок и количества хранилищ. В рамках данной задачи можно просто установить значение max_trace_count равным 1000.

Количество сообщений в рамках одной трассировки чаще всего не превышает 2000. То есть в качестве значения critical_max_events подойдет max_trace_count * 2000. Если выбрать это значение слишком маленьким, то можно периодически терять часть трассировок, независимо от того новые они или старые. В случае, если такая ошибка происходит, нужно увеличить значение critical_max_events.

Непосредственно проверкой хранилищ трассировок и удалением старых трассировок занимается менеджер трассировок. Частота с которой он будет проверять таблицы трассировок определяется параметром suspend_time - время в миллисекундах, которое менеджер будет ждать перед следующей проверкой.

Режимы трассировки

Существует четыре режима трассировки, которые задаются с помощью параметра mode:

  • compressed - трассировка с использованием сжатия. Уменьшает расход памяти, но снижает производительность.
  • raw - данные трассировки сохраняются в сыром виде. Несколько увеличивает расход памяти, но не снижает производительность.
  • full_compressed - аналогично режиму compressed, отличие в том, что трассировка содержит подробные данные.
  • full_raw - аналогично режиму raw, отличие в том, что трассировка содержит подробные данные.

Значение параметра mode = disabled означает что трассировка выключена.

properties/

Таблица 1 - Описание общих свойств подсистемы трассировки вызовов

НазваниеЗначение по умолчаниюОписание
backendetsУстройство хранения трассировки. ETS - оперативная память, DETS - жесткий диск
cleanup_time02:15Время подчистки устаревших трассировок
description_clean_lifetime60000Таймаут подчистки списка файлов, мс
description_clean_timeout60000Интервал подчистки списка файлов, мс
dets_autoclose_timeout15000Таймаут автозакрытия dets файла, если он не изменялся, мс
lifetime7Время хранения трассировок на жестком диске. Задается в днях
critical_max_events100000Максимальное количество сообщений в одном хранилище трассировок.
max_trace_count1000максимальное количество трассировок вызовов в одном хранилище трассировок.
modedisabledРежим трассировки для вызовов.
suspend_time2000Период обновления данных в хранилище трассировок, задается в миллисекундах.

clean

Данной командой осуществляется сброс значения указываемого свойства в значение по умолчанию.

Путь команды:

domain/<DOMAIN>/trace/properties/clean

Синтаксис:

clean [<FIELD>]

Параметры:

<FIELD> - свойство, значение которого будет установлено по умолчанию. Значения по умолчанию приведены в Таблице 1.

Пример:

admin@[restfs1@ecss1]:/$ domain/tc.domain/trace/properties/clean * critical_max_events

info

Отображение значения указанного свойства или всех свойств.

Путь команды:

domain/<DOMAIN>/trace/properties/info

Синтаксис:

info [<FIELD>]

Параметры:

<FIELD> - просматриваемое свойство. Описание свойств приведено в Таблице 1.

Пример:

hurd@[restfs1@ecss1]:/domain/eltex.local/trace/properties$ ./info 
┌───────────────────┬───────────┬───────────────┐
│     Property      │  Domain   │     Value     │
├───────────────────┼───────────┼───────────────┤
│backend            │eltex.local│ets            │
│lifetime           │eltex.local│7              │
│critical_max_events│eltex.local│200000         │
│max_trace_count    │eltex.local│20000          │
│mode               │eltex.local│full_compressed│
│suspend_time       │eltex.local│2000           │
└───────────────────┴───────────┴───────────────┘

[exec at: 14.06.2016 13:19:52, exec time: 135ms, nodes: core1@ecss1]

set

Устанавливает требуемое значение для указанного свойства.

Путь команды:

domain/<DOMAIN>/trace/properties/set

Синтаксис:

set <FIELD> <VALUE>

Параметры:

<FIELD> - настраиваемое свойство, описание свойств приведено в Таблице 1.

Пример:

admin@[mycelium1@ecss1]:/$ domain/test.ssw/trace/properties/set mode full_compressed
Property "mode" successfully changed from:
disabled
   to
full_compressed.
  • Нет меток