mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
server: refactor log_interceptor to be more DRY (#9617)
This is purely an internal refactor that should have no effect on consumers of the LogInterceptor class.
This commit is contained in:
parent
f276e5755c
commit
c780ab1787
1 changed files with 21 additions and 36 deletions
|
@ -5,6 +5,24 @@ function doTagsMatch(event, tags) {
|
|||
return isEqual(get(event, 'tags'), tags);
|
||||
}
|
||||
|
||||
// converts the given event into a debug log if it's an error of the given type
|
||||
function downgradeIfErrorMatches(errorType, event) {
|
||||
const isClientError = doTagsMatch(event, ['connection', 'client', 'error']);
|
||||
const matchesErrorType = isClientError && get(event, 'data.errno') === errorType;
|
||||
|
||||
if (!matchesErrorType) return null;
|
||||
|
||||
const errorTypeTag = errorType.toLowerCase();
|
||||
|
||||
return {
|
||||
event: 'log',
|
||||
pid: event.pid,
|
||||
timestamp: event.timestamp,
|
||||
tags: ['debug', 'connection', errorTypeTag],
|
||||
data: `${errorType}: Socket was closed by the client (probably the browser) before it could be read completely`
|
||||
};
|
||||
}
|
||||
|
||||
export class LogInterceptor extends Stream.Transform {
|
||||
constructor() {
|
||||
super({
|
||||
|
@ -24,18 +42,7 @@ export class LogInterceptor extends Stream.Transform {
|
|||
* @param {object} - log event
|
||||
*/
|
||||
downgradeIfEconnreset(event) {
|
||||
const isClientError = doTagsMatch(event, ['connection', 'client', 'error']);
|
||||
const isEconnreset = isClientError && get(event, 'data.errno') === 'ECONNRESET';
|
||||
|
||||
if (!isEconnreset) return null;
|
||||
|
||||
return {
|
||||
event: 'log',
|
||||
pid: event.pid,
|
||||
timestamp: event.timestamp,
|
||||
tags: ['debug', 'connection', 'econnreset'],
|
||||
data: 'ECONNRESET: Socket was closed by the client (probably the browser) before it could be read completely'
|
||||
};
|
||||
return downgradeIfErrorMatches('ECONNRESET', event);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -49,18 +56,7 @@ export class LogInterceptor extends Stream.Transform {
|
|||
* @param {object} - log event
|
||||
*/
|
||||
downgradeIfEpipe(event) {
|
||||
const isClientError = doTagsMatch(event, ['connection', 'client', 'error']);
|
||||
const isEpipe = isClientError && get(event, 'data.errno') === 'EPIPE';
|
||||
|
||||
if (!isEpipe) return null;
|
||||
|
||||
return {
|
||||
event: 'log',
|
||||
pid: event.pid,
|
||||
timestamp: event.timestamp,
|
||||
tags: ['debug', 'connection', 'epipe'],
|
||||
data: 'EPIPE: Socket was closed by the client (probably the browser) before the response could be completed'
|
||||
};
|
||||
return downgradeIfErrorMatches('EPIPE', event);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -74,18 +70,7 @@ export class LogInterceptor extends Stream.Transform {
|
|||
* @param {object} - log event
|
||||
*/
|
||||
downgradeIfEcanceled(event) {
|
||||
const isClientError = doTagsMatch(event, ['connection', 'client', 'error']);
|
||||
const isEcanceled = isClientError && get(event, 'data.errno') === 'ECANCELED';
|
||||
|
||||
if (!isEcanceled) return null;
|
||||
|
||||
return {
|
||||
event: 'log',
|
||||
pid: event.pid,
|
||||
timestamp: event.timestamp,
|
||||
tags: ['debug', 'connection', 'ecanceled'],
|
||||
data: 'ECANCELED: Socket was closed by the client (probably the browser) before the response could be completed'
|
||||
};
|
||||
return downgradeIfErrorMatches('ECANCELED', event);
|
||||
}
|
||||
|
||||
_transform(event, enc, next) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue