From 8471c829de9b3f10d8bb8b8fe4bacef084418816 Mon Sep 17 00:00:00 2001 From: Hunter Trujillo Date: Tue, 28 Nov 2017 10:47:14 -0700 Subject: [PATCH] Resolve some PR issues. Improve Logging UX. Switch back to version detection due to poor UX (lag) of feature detection. Split out LogsTableRow to SFC. LogsTable also becomes an SFC. --- ui/src/kapacitor/apis/index.js | 14 +++ ui/src/kapacitor/components/LogsTable.js | 98 ++++--------------- ui/src/kapacitor/components/LogsTableRow.js | 68 +++++++++++++ ui/src/kapacitor/components/LogsToggle.js | 16 ++- .../kapacitor/components/TickscriptHeader.js | 11 ++- ui/src/kapacitor/constants/index.js | 2 - ui/src/kapacitor/containers/TickscriptPage.js | 34 ++++--- 7 files changed, 136 insertions(+), 107 deletions(-) create mode 100644 ui/src/kapacitor/components/LogsTableRow.js diff --git a/ui/src/kapacitor/apis/index.js b/ui/src/kapacitor/apis/index.js index 41220be6f..4465f8aca 100644 --- a/ui/src/kapacitor/apis/index.js +++ b/ui/src/kapacitor/apis/index.js @@ -115,3 +115,17 @@ export const getLogStreamByRuleID = (kapacitor, ruleID) => headers: {'Content-Type': 'application/json'}, } ) + +export const pingKapacitorVersion = async kapacitor => { + try { + const result = await AJAX({ + method: 'GET', + url: `${kapacitor.links.proxy}?path=/kapacitor/v1preview/ping`, + }) + const kapVersion = result.headers['x-kapacitor-version'] + return kapVersion === '' ? null : kapVersion + } catch (error) { + console.error(error) + throw error + } +} diff --git a/ui/src/kapacitor/components/LogsTable.js b/ui/src/kapacitor/components/LogsTable.js index ae1379c9f..0e49badd3 100644 --- a/ui/src/kapacitor/components/LogsTable.js +++ b/ui/src/kapacitor/components/LogsTable.js @@ -1,86 +1,26 @@ -import React, {Component, PropTypes} from 'react' +import React, {PropTypes} from 'react' import FancyScrollbar from 'shared/components/FancyScrollbar' -import LogItemSession from 'src/kapacitor/components/LogItemSession' -import LogItemHTTP from 'src/kapacitor/components/LogItemHTTP' -import LogItemHTTPError from 'src/kapacitor/components/LogItemHTTPError' -import LogItemKapacitorPoint from 'src/kapacitor/components/LogItemKapacitorPoint' -import LogItemKapacitorError from 'src/kapacitor/components/LogItemKapacitorError' -import LogItemKapacitorDebug from 'src/kapacitor/components/LogItemKapacitorDebug' -import LogItemInfluxDBDebug from 'src/kapacitor/components/LogItemInfluxDBDebug' +import LogsTableRow from 'src/kapacitor/components/LogsTableRow' -class LogsTable extends Component { - constructor(props) { - super(props) - } - - renderTableRow = (logItem, index) => { - if (logItem.service === 'sessions') { - return - } - if (logItem.service === 'http' && logItem.msg === 'http request') { - return - } - if (logItem.service === 'kapacitor' && logItem.msg === 'point') { - return - } - if (logItem.service === 'httpd_server_errors' && logItem.lvl === 'error') { - return - } - if (logItem.service === 'kapacitor' && logItem.lvl === 'error') { - return - } - if (logItem.service === 'kapacitor' && logItem.lvl === 'debug') { - return - } - if (logItem.service === 'influxdb' && logItem.lvl === 'debug') { - return - } - - return ( -
-
-
-
- {logItem.ts} -
-
-
-
- {logItem.service || '--'} -
-
-
- {logItem.msg || '--'} -
-
-
+const LogsTable = ({logs}) => +
+
+

Logs

+
+ +
+ {logs.length + ? logs.map((log, i) => + + ) + :
}
- ) - } - - render() { - const {logs} = this.props - - return ( -
-
-

Logs

-
- -
- {logs.length - ? logs.map((log, i) => this.renderTableRow(log, i)) - :
} -
- -
- ) - } -} +
+
const {arrayOf, shape, string} = PropTypes diff --git a/ui/src/kapacitor/components/LogsTableRow.js b/ui/src/kapacitor/components/LogsTableRow.js new file mode 100644 index 000000000..32b658c67 --- /dev/null +++ b/ui/src/kapacitor/components/LogsTableRow.js @@ -0,0 +1,68 @@ +import React, {PropTypes} from 'react' + +import LogItemSession from 'src/kapacitor/components/LogItemSession' +import LogItemHTTP from 'src/kapacitor/components/LogItemHTTP' +import LogItemHTTPError from 'src/kapacitor/components/LogItemHTTPError' +import LogItemKapacitorPoint from 'src/kapacitor/components/LogItemKapacitorPoint' +import LogItemKapacitorError from 'src/kapacitor/components/LogItemKapacitorError' +import LogItemKapacitorDebug from 'src/kapacitor/components/LogItemKapacitorDebug' +import LogItemInfluxDBDebug from 'src/kapacitor/components/LogItemInfluxDBDebug' + +const LogsTableRow = ({logItem, index}) => { + if (logItem.service === 'sessions') { + return + } + if (logItem.service === 'http' && logItem.msg === 'http request') { + return + } + if (logItem.service === 'kapacitor' && logItem.msg === 'point') { + return + } + if (logItem.service === 'httpd_server_errors' && logItem.lvl === 'error') { + return + } + if (logItem.service === 'kapacitor' && logItem.lvl === 'error') { + return + } + if (logItem.service === 'kapacitor' && logItem.lvl === 'debug') { + return + } + if (logItem.service === 'influxdb' && logItem.lvl === 'debug') { + return + } + + return ( +
+
+
+
+ {logItem.ts} +
+
+
+
+ {logItem.service || '--'} +
+
+
+ {logItem.msg || '--'} +
+
+
+
+ ) +} + +const {number, shape, string} = PropTypes + +LogsTableRow.propTypes = { + logItem: shape({ + key: string.isRequired, + ts: string.isRequired, + lvl: string.isRequired, + msg: string.isRequired, + }).isRequired, + index: number, +} + +export default LogsTableRow diff --git a/ui/src/kapacitor/components/LogsToggle.js b/ui/src/kapacitor/components/LogsToggle.js index 92bc5f5f1..eedddafbf 100644 --- a/ui/src/kapacitor/components/LogsToggle.js +++ b/ui/src/kapacitor/components/LogsToggle.js @@ -1,6 +1,6 @@ import React, {PropTypes} from 'react' -const LogsToggle = ({areLogsVisible, areLogsEnabled, onToggleLogsVisbility}) => +const LogsToggle = ({areLogsVisible, onToggleLogsVisbility}) =>
  • > Editor
  • - {areLogsEnabled && -
  • - Editor + Logs -
  • } +
  • + Editor + Logs +
const {bool, func} = PropTypes LogsToggle.propTypes = { areLogsVisible: bool, - areLogsEnabled: bool, onToggleLogsVisbility: func.isRequired, } diff --git a/ui/src/kapacitor/components/TickscriptHeader.js b/ui/src/kapacitor/components/TickscriptHeader.js index 1d13b5003..c830887ae 100644 --- a/ui/src/kapacitor/components/TickscriptHeader.js +++ b/ui/src/kapacitor/components/TickscriptHeader.js @@ -16,11 +16,12 @@ const TickscriptHeader = ({

TICKscript Editor

- + {areLogsEnabled && + }