@kineticdata/react
Version:
A React library for the Kinetic Platform
273 lines (272 loc) • 6.87 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.generateLogQuery = exports.LogTable = void 0;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
var _Table = require("../../table/Table");
var _apis = require("../../../apis");
var _moment = _interopRequireDefault(require("moment"));
var EXCLUDED_FILTERS = ['startTime', 'endTime', 'timestampPreset'];
var generateLogQuery = exports.generateLogQuery = function generateLogQuery(appliedFilters) {
var filters = JSON.stringify(appliedFilters.filter(function (_v, k) {
return !EXCLUDED_FILTERS.includes(k);
}).filter(function (filter) {
return filter !== '';
}).toJSON());
var q = filters === '{}' ? undefined : filters;
var preset = appliedFilters.get('timestampPreset');
var startDate, endDate;
if (preset && preset !== 'custom') {
var minutes = Number.parseInt(preset, 10);
startDate = (0, _moment["default"])().subtract(minutes, 'minutes').format();
endDate = '';
} else {
startDate = appliedFilters.get('startTime', '');
endDate = appliedFilters.get('endTime', '');
}
var start = startDate === '' && endDate === '' ? (0, _moment["default"])().subtract(60, 'minutes').toISOString() : startDate === '' && endDate !== '' ? (0, _moment["default"])(endDate).subtract(60, 'minutes').toISOString() : (0, _moment["default"])(startDate).toISOString();
var end = endDate === '' ? (0, _moment["default"])().toISOString() : (0, _moment["default"])(endDate).toISOString();
return {
q: q,
start: start,
end: end
};
};
var dataSource = function dataSource() {
return {
fn: _apis.fetchLogs,
params: function params(paramData) {
var _generateLogQuery = generateLogQuery(paramData.filters),
q = _generateLogQuery.q,
start = _generateLogQuery.start,
end = _generateLogQuery.end;
var fetchParams = [{
q: q,
limit: paramData.pageSize,
nextPageToken: paramData.nextPageToken,
start: start,
end: end,
tail: true
}];
return fetchParams;
},
transform: function transform(result) {
return {
data: result.logs.filter(function (entry) {
return entry.hasOwnProperty('app.component');
}),
nextPageToken: result.nextPageToken
};
}
};
};
var APP_COMPONENT_OPTIONS = ['agent', 'core', 'integrator', 'loghub', 'task'].map(function (component) {
return {
label: component,
value: component
};
});
var LEVEL_OPTIONS = ['TRACE', 'DEBUG', 'INFO', 'WARN', 'ERROR'].map(function (level) {
return {
label: level,
value: level
};
});
var TIMESTAMP_PRESET_OPTIONS = [{
label: 'Last 10 Minutes',
value: '10'
}, {
label: 'Last 20 Minutes',
value: '20'
}, {
label: 'Last 1 Hour',
value: '60'
}, {
label: 'Last 4 Hours',
value: '240'
}, {
label: 'Custom',
value: 'custom'
}];
var filters = function filters() {
return function () {
return [{
name: 'app.component',
label: 'Component',
type: 'select',
options: APP_COMPONENT_OPTIONS
}, {
name: 'app.correlationId',
label: 'Correlation ID',
type: 'text'
}, {
name: 'app.user',
label: 'User',
type: 'text'
}, {
name: 'app.responseStatus',
label: 'Response Status',
type: 'text'
}, {
name: 'level',
label: 'Level',
type: 'select',
options: LEVEL_OPTIONS
}, {
name: 'message',
label: 'Message',
type: 'text'
}, {
name: 'startTime',
label: 'Start Date',
type: 'datetime',
visible: function visible(_ref) {
var values = _ref.values;
return values.get('timestampPreset') === 'custom';
}
}, {
name: 'endTime',
label: 'End Date',
type: 'datetime',
visible: function visible(_ref2) {
var values = _ref2.values;
return values.get('timestampPreset') === 'custom';
}
}, {
name: 'timestampPreset',
label: 'Timestamp',
type: 'radio',
initialValue: '60',
options: TIMESTAMP_PRESET_OPTIONS,
onChange: function onChange(_ref3, _ref4) {
var values = _ref3.values;
var setValue = _ref4.setValue;
if (values.get('timestampPreset') !== 'custom') {
setValue('startTime', '');
setValue('endTime', '');
}
}
}];
};
};
var columns = [{
value: 'timestamp',
title: 'Timestamp',
sortable: false,
toggleable: false
}, {
value: 'message',
title: 'Message',
sortable: false
}, {
value: 'level',
title: 'Level',
sortable: false
}, {
value: 'app.component',
title: 'Component',
sortable: false
}, {
value: 'app.correlationId',
title: 'Correlation ID',
sortable: false
}, {
value: 'app.instanceId',
title: 'Instance ID',
sortable: false
}, {
value: 'app.requestId',
title: 'Request ID',
sortable: false
}, {
value: 'app.sessionId',
title: 'Session ID',
sortable: false
}, {
value: 'app.user',
title: 'User',
sortable: false
}, {
value: 'app.requestAddressChain',
title: 'Request Address Chain',
sortable: false
}, {
value: 'app.requestMethod',
title: 'Request Method',
sortable: false
}, {
value: 'app.requestOriginAddress',
title: 'Request Origin Address',
sortable: false
}, {
value: 'app.requestPath',
title: 'Request Path',
sortable: false
}, {
value: 'app.requestProtocol',
title: 'Request Protocol',
sortable: false
}, {
value: 'app.requestQuery',
title: 'Request Query',
sortable: false
}, {
value: 'app.responseStatus',
title: 'Response Status',
sortable: false
}, {
value: 'app.responseTime',
title: 'Response Time',
sortable: false
}, {
value: 'app.authEvent',
title: 'Auth Event',
sortable: false
}, {
value: 'app.authMessage',
title: 'Auth Message',
sortable: false
}, {
value: 'app.authPrincipal',
title: 'Auth Principal',
sortable: false
}, {
value: 'app.authStrategy',
title: 'Auth Strategy',
sortable: false
}, {
value: 'k8s.container',
title: 'Container',
sortable: false
}, {
value: 'k8s.namespace',
title: 'Namespace',
sortable: false
}, {
value: 'k8s.nodeAddress',
title: 'Node Address',
sortable: false
}, {
value: 'k8s.nodeName',
title: 'Node Name',
sortable: false
}, {
value: 'k8s.pod',
title: 'Pod',
sortable: false
}].map(function (column) {
return (0, _objectSpread2["default"])({
toggleable: true
}, column);
});
var LogTable = exports.LogTable = (0, _Table.generateTable)({
columns: columns,
dataSource: dataSource,
filters: filters
});
LogTable.displayName = 'LogTable';
LogTable.columns = columns.map(function (c) {
return c.value;
});