Параметр event_hook#

Группа параметров event_hook производит журналирование событий.

Доступно четыре вида журналирования:

  • запрос клиенту;

  • ответ клиенту;

  • запрос на upstream;

  • ответ от upstream.

Обязательные параметры:

  • stage

    В значении параметра указывается последовательность этапов журналирования.

    Обязательно в случае:

    enabled: true.
    

    Тип параметра: последовательность строковых значений.

    По умолчанию: не имеет значения по умолчанию.

    Обязательные параметры:

    • name

    В значении параметра name определяется, на каком из этапов необходимо включить журналирование.

    Значение параметра name должно быть уникальным.

    stage:
      - name: client_request
      - name: client_response
      - name: upstream_request
      - name: upstream_response
    

    Тип параметра:

    • client_request;

    • client_response;

    • upstream_request;

    • upstream_response.

    По умолчанию: не имеет значения по умолчанию.

    Опциональные параметры:

    • log_file

    В значении параметра указывается имя файла журнала.

    Тип параметра: строковое значение.

    По умолчанию:

    /sowalogs/<profile_name>/services/
    service_http_proxy/service_http_proxy_<id>/
    <stage>/$request_id.log
    
    • pattern_file

    В значении параметра задается файл шаблона, в соответствии с которым будет заполнен файл журнала. Содержимое файла шаблона:

    event_client_request:

    {
     "eventTime": "$client_request_time",
     "userSessionID": "$ucs_session_id",
     "procStatus": "$client_request_status",
     "contentBody": "$client_request_body",
     "inboundURL": "$scheme://$http_host$client_request_uri",
     "outboundURL": "",
     "protocolHeaders": [$client_request_headers],
     "domain": "$profile_name",
     "cookies": [],
     "protocolMethod": "$client_request_method",
     "multiProtocolGatewayName": "$profile_name",
     "LGBGroup": "",
     "clientIP": "$remote_addr:$remote_port",
     "targetValidator": "$request_validation_schema",
     "initDNCertificate": "$ssl_client_s_dn",
     "originalHTTPResponseCode": "",
     "xGlobalTransactionID": "$request_id",
     "userActionID": "$service_name"
    }
    

    event_client_response:

    {
     "eventTime": "$client_response_time",
     "userSessionID": "$ucs_session_id",
     "procStatus": "$client_response_status",
     "contentBody": "$upstream_response_body",
     "inboundURL": "$scheme://$http_host$uri",
     "outboundURL": "",
     "protocolHeaders": [$client_response_headers],
     "domain": "$profile_name",
     "cookies": [$client_response_set_cookies],
     "protocolMethod": "$request_method",
     "multiProtocolGatewayName": "$profile_name",
     "LGBGroup": "$upstream_name",
     "clientIP": "$remote_addr:$remote_port",
     "targetValidator": "$response_validation_schema",
     "initDNCertificate": "$ssl_client_s_dn",
     "originalHTTPResponseCode": "$status",
     "xGlobalTransactionID": "$request_id",
     "userActionID": "$service_name"
    }
    

    event_upstream_request:

    {
        "eventTime": "$upstream_request_time",
        "userSessionID": "$ucs_session_id",
        "procStatus": "$upstream_request_status",
        "contentBody": $upstream_request_body,
        "inboundURL": "$scheme://$http_host$request_uri",
        "outboundURL": "$upstream_request_url",
        "outboundServer": "$upstream_real_server",
        "protocolHeaders": {$upstream_request_headers},
        "domain": "$profile_name",
        "cookies": {},
        "protocolMethod": "$upstream_request_method",
        "multiProtocolGatewayName": "$profile_name",
        "LGBGroup": "$upstream_name",
        "clientIP": "$remote_addr",
        "targetValidator": "$request_validation_schema",
        "initDNCertificate": "$ssl_client_s_dn",
        "originalHTTPResponseCode": "",
        "xGlobalTransactionID": "$request_id",
        "userActionID": "$service_name"
    }
    

    event_upstream_response:

    {
        "eventTime": "$upstream_real_response_time",
        "userSessionID": "$ucs_session_id",
        "procStatus": "$upstream_response_status",
        "contentBody": $upstream_response_body,
        "inboundURL": "$scheme://$http_host$request_uri",
        "outboundURL": "$upstream_request_url",
        "outboundServer": "$upstream_real_server",
        "protocolHeaders": {$upstream_response_headers},
        "domain": "$profile_name",
        "cookies": {$upstream_response_set_cookies},
        "protocolMethod": "$upstream_request_method",
        "multiProtocolGatewayName": "$profile_name",
        "LGBGroup": "$upstream_name",
        "clientIP": "$remote_addr",
        "targetValidator": "$response_validation_schema",
        "initDNCertificate": "$ssl_client_s_dn",
        "originalHTTPResponseCode": "$upstream_response_state",
        "xGlobalTransactionID": "$request_id",
        "userActionID": "$service_name"
    }
    

    Тип параметра: строковое значение.

    По умолчанию: не имеет значения по умолчанию.

    • max_size

    В значении параметра задается пороговое значение, после превышения которого событие журналирования будет записано в файл temp в каталоге, указанном в качестве значения параметра temp_path.

    Тип параметра: текстовое значение с суффиксом:

    • число без суффикса — байты;

    • k / K — килобайты;

    • m / M — мегабайты.

    По умолчанию: не имеет значения по умолчанию.

  • log_in_file

    В значении параметра определяется, необходимо ли осуществлять журналирование в файл.

    Обязательно в случае:

    • enabled: true;

    • logger_service is None.

    log_in_file: "on"     
    

    Тип параметра:

    • «on»;

    • «off».

    По умолчанию: не имеет значения по умолчанию.

Опциональные параметры:

  • enabled

    Вкл./Откл. evh (журналирование) для сервиса.

    Тип параметра:

    • true;

    • false.

    По умолчанию:

    enabled: true
    
  • logger_service

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

    logger_service: service_http_mq_proxy
    

    Тип параметра: текстовое значение.

    По умолчанию: не имеет значения по умолчанию.

  • logger_service_type

    В значении параметра определяется синхронное или асинхронное журналирование.

    Тип параметра: текстовое значение.

    • sync;

    • async.

    По умолчанию:

    logger_service_type: sync
    
  • logger_id

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

    Обязательно в случае:

    • enable: true;

    • logger_service is not None.

    logger_id: logger
    

    Тип параметра: текстовое значение.

    По умолчанию: не имеет значения по умолчанию.

  • logger_read_timeout

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

    Обязательно в случае:

    • logger_service is not None.

    Тип параметра: текстовое значение.

    По умолчанию:

    logger_read_timeout: 1s
    
  • logger_send_timeout

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

    Обязательно в случае:

    • logger_service is not None.

    Тип параметра: текстовое значение.

    По умолчанию:

    logger_send_timeout: 1s
    
  • logger_connect_timeout

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

    Обязательно в случае:

    • logger_service is not None.

    Тип параметра: текстовое значение.

    По умолчанию:

    logger_connect_timeout: 1s
    
  • logger_client_body_timeout

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

    Обязательно в случае:

    • logger_service is not None.

    Тип параметра: текстовое значение.

    По умолчанию:

    logger_client_body_timeout: 1s
    
  • logger_buffer_size

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

    Обязательно в случае:

    • logger_service != None;

    • logger_service_type != None;

    • logger_service_type == „async“.

    Тип параметра: текстовое значение.

    По умолчанию:

    logger_buffer_size: 16k
    
  • logger_max_memory

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

    Обязательно в случае:

    • logger_service != None;

    • logger_service_type != None;

    • logger_service_type == „async“.

    Тип параметра: текстовое значение.

    По умолчанию:

    logger_max_memory: 2M
    
  • temp_path

    В значении параметра указывается путь для хранения временных данных.

    Тип параметра: строковое значение.

    По умолчанию:

    /sowarun/<profile_name>/service_http_proxy/service_http_proxy_<id>
    

Пример использования параметра event_hook:

event_hook:
  stage:
    - name: client_request
    - name: client_response
    - name: upstream_request
    - name: upstream_response
  log_in_file: "on"