Перейти к содержимому
Kitegra
← Вернуться в блог

Модуль в этой статье: Message Monitor

Уровень журнала TRACE в SAP CPI: почему он выключается и как безопасно держать его включённым

Почему уровень журнала TRACE в SAP CPI сбрасывается примерно через 10 минут, что и сколько он хранит, чем рискован в продуктиве и как держать его включённым только во время работы.

Уровень журнала TRACE в SAP CPI: почему он выключается и как безопасно держать его включённым

Вы ставите iFlow уровень журнала Trace, четверть часа тестируете что-то другое, отправляете нужное сообщение — а трассировка пуста. SAP Cloud Integration (SAP CPI) тихо вернул уровень назад. Это сделано намеренно, и когда понимаешь почему, правила работы с TRACE вытекают сами собой.

В этой статье — что хранит каждый уровень журнала, почему TRACE истекает, как пользоваться им безопасно и как держать его включённым ровно столько, сколько вы работаете.

Уровни журнала и что добавляет TRACE

Уровень журналаЧто хранится для каждого сообщения
InfoОбщий статус, время и ошибку, если она была
DebugЗапись для каждого шага, который выполнило сообщение
TraceТо же, что Debug, плюс тело, headers и exchange properties перед каждым шагом

Уровень задаётся для развёрнутого iFlow, поэтому, пока он установлен, он действует на каждое сообщение, которое обрабатывает этот iFlow.

Почему TRACE выключается сам

TRACE записывает payload, headers и свойства каждого шага в базу данных tenant. На нагруженном iFlow это много данных, и среди них могут быть персональные или конфиденциальные. Поэтому SAP ограничивает TRACE по времени: уровень TRACE действует около 10 минут, после чего iFlow возвращается на более низкий уровень, а само содержимое трассировки хранится около часа.

Tenant также можно настроить так, чтобы TRACE был запрещён вовсе. Тогда установить его не получится, кто бы ни пытался.

Как включить TRACE вручную

  1. В мониторе откройте Manage Integration Content и выберите развёрнутый iFlow.
  2. В его настройках журнала установите уровень Trace.
  3. Отправьте тестовые сообщения в течение следующих 10 минут и прочитайте их трассировки в течение часа.
  4. Во время долгой сессии ставьте Trace заново каждые 10 минут.

Как пользоваться TRACE безопасно

import com.sap.gateway.ip.core.customdev.util.Message

def Message processData(Message message) {
    // Set the exchange property logPayload to "true" (for example from an
    // externalized parameter) only while you investigate.
    if (message.getProperty("logPayload") == "true") {
        def log = messageLogFactory.getMessageLog(message)
        log?.addAttachmentAsString("Payload before mapping", message.getBody(String), "text/plain")
    }
    return message
}
  • Предпочитайте тестовые данные. Трассировка продуктивного сообщения хранит данные этого клиента в tenant в течение часа.
  • В продуктиве трассируйте как можно меньше времени — ровно столько, чтобы ответить на вопрос, — и соблюдайте правила согласования вашей компании.
  • Не оставляйте Debug или Trace настроенным уровнем журнала iFlow: за это платит каждое сообщение.
  • Не пишите пароли и токены в headers или свойства, где их покажет трассировка.
  • Если payload регулярно нужен в журнале, прикрепляйте его к журналу обработки сообщения из скрипта, и только пока включён переключатель:

Держите TRACE включённым, только пока работаете

В Kitegra на панели «Сообщения» открытого iFlow есть переключатель с надписью «Trace: выкл.». Один щелчок ставит уровень журнала на TRACE. Пока переключатель включён и открыта вкладка дизайнера с этим iFlow, расширение каждые 9 минут ставит TRACE заново, прежде чем SAP его сбросит, и прекращает через 20 минут после вашей последней активности в iFlow. Выключение возвращает уровень, который был у iFlow раньше. Состояние сохраняется после перезагрузки страницы, а Alt+Shift+R переключает его с клавиатуры.

Расширение отказывает с понятным сообщением, если iFlow не развёрнут в выбранной среде выполнения, если tenant не разрешает TRACE или если в параметрах выключено «Разрешить действия, изменяющие тенант».

Чтобы прочитать, что записала трассировка, см. статью о пошаговой трассировке сообщения на схеме.

Чем помогает Kitegra

Trace — одно из четырёх действий Kitegra, которые меняют ваш tenant, и выполняется оно только по вашему щелчку. Перед запуском в продуктив проверка дизайна iFlow Inspector «Подробный уровень логирования» отмечает iFlow, у которого настроенный уровень журнала трассировал бы или отлаживал каждое сообщение; чек-лист ревью iFlow разбирает её вместе с другими проверками.

Helper, Message Monitor, iFlow Inspector и iFlow Docs по отдельности считают iFlow, на которых вы их используете: 5 на модуль без аккаунта Kitegra, 50 на тарифе Free, 100 на Starter и 300 на Pro; в Business ограничений нет. Toolbox и дополнения для рабочего пространства бесплатны. Сравните тарифы.

Попробуйте в следующем iFlow

Узнайте, что Kitegra добавляет к дизайнеру SAP Integration Suite, или посмотрите его рядом с другими расширениями Kitegra для Chrome.

Частые вопросы

Почему TRACE в SAP CPI выключается сам?

TRACE сохраняет payload каждого шага в tenant. Чтобы ограничить объём данных, SAP держит уровень TRACE около 10 минут, а содержимое трассировки — около часа.

Сколько хранятся данные трассировки?

Около часа. После этого журнал сообщения остаётся, но трассированные тело, headers и свойства исчезают.

Безопасно ли использовать TRACE в продуктиве?

Он сохраняет реальные payload в tenant, поэтому используйте его как можно меньше времени — столько, чтобы ответить на вопрос, — по возможности на тестовых данных и по правилам своей компании.

Чем Debug отличается от Trace?

Debug создаёт запись для каждого шага. Trace добавляет тело, headers и exchange properties перед каждым шагом.

Почему на моём tenant не удаётся установить TRACE?

Возможно, tenant не разрешает TRACE, iFlow не развёрнут в этой среде выполнения или у вашего пользователя нет нужной роли. В расширении действия, меняющие tenant, также могут быть выключены в параметрах.

Держит ли расширение TRACE включённым, когда я закончил работу?

Нет. Оно продлевает TRACE, только пока переключатель включён и вы работаете в iFlow, и прекращает через 20 минут после вашей последней активности.

Работайте с iFlows, не покидая дизайнер

Добавьте Kitegra в Chrome или Microsoft Edge. Начните бесплатно, без аккаунта.