UNPKG

@kineticdata/react

Version:
273 lines (272 loc) 6.87 kB
"use strict"; 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; });