Параметр event_hook#
Группа параметров event_hook производит журналирование событий.
Доступно четыре вида журналирования:
запрос клиенту;
ответ клиенту;
запрос на upstream;
ответ от upstream'a.
Обязательные параметры:
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.logpattern_file
В значении параметра задается файл шаблона, в соответствии с которым будет заполнен файл журнала. Содержимое файла шаблона:
event_client_request:
{ "eventTime": "$client_request_time", "userSessionID": "$client_request_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_user_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: truelogger_service
В значении параметра определяется тип сервиса для обработки события.
logger_service: service_http_mq_proxyТип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
logger_service_type
В значении параметра определяется синхронное или асинхронное журналирование.
Тип параметра: текстовое значение.
sync;
async.
По умолчанию:
logger_service_type: synclogger_id
В значении параметра определяется идентификатор сервиса для обработки события.
Обязательно в случае:
enable: true;
logger_service is not None.
logger_id: loggerТип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
logger_read_timeout
В значении параметра указывается таймаут чтения для сервиса обработки события.
Обязательно в случае:
logger_service is not None.
Тип параметра: текстовое значение.
По умолчанию:
logger_read_timeout: 1slogger_send_timeout
В значении параметра указывается таймаут отправки для сервиса обработки события.
Обязательно в случае:
logger_service is not None.
Тип параметра: текстовое значение.
По умолчанию:
logger_send_timeout: 1slogger_connect_timeout
В значении параметра указывается таймаут соединения для сервиса обработки события.
Обязательно в случае:
logger_service is not None.
Тип параметра: текстовое значение.
По умолчанию:
logger_connect_timeout: 1slogger_client_body_timeout
В значении параметра указывается таймаут для тела клиента для сервиса обработки события.
Обязательно в случае:
logger_service is not None.
Тип параметра: текстовое значение.
По умолчанию:
logger_client_body_timeout: 1slogger_buffer_size
В значении параметра указывается размер буфера сервиса обработки события для записи в сервис таймаута.
Обязательно в случае:
logger_service != None;
logger_service_type != None;
logger_service_type == 'async'.
Тип параметра: текстовое значение.
По умолчанию:
logger_buffer_size: 16klogger_max_memory
В значении параметра указывается максимальный размер встроенной памяти асинхронного сервиса обработки события для события. В случае, если лимит превышен, событие записывается во временный файл.
Обязательно в случае:
logger_service != None;
logger_service_type != None;
logger_service_type == 'async'.
Тип параметра: текстовое значение.
По умолчанию:
logger_max_memory: 2Mtemp_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"