All Downloads are FREE. Search and download functionalities are using the official Maven repository.

web-interface.assets.57e33c6c-21.11b9f72925818240e61d.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.1
Show newest version
{"version":3,"sources":["webpack:///./src/components/support/SmallSupportLink.tsx","webpack:///./src/logic/metrics/MetricsExtractor.ts","webpack:///./src/components/throughput/NodeThroughput.jsx","webpack:///./src/components/nodes/NodesActions.jsx","webpack:///./src/components/nodes/SystemOverviewSummary.jsx","webpack:///./src/components/nodes/JvmHeapUsage.jsx","webpack:///./src/components/nodes/JournalState.jsx","webpack:///./src/components/nodes/NodeListItem.jsx","webpack:///./src/components/nodes/NodesList.jsx","webpack:///./src/components/nodes/NodeMaintenanceDropdown.jsx","webpack:///./src/components/nodes/BufferUsage.tsx","webpack:///./src/components/nodes/SystemOverviewDetails.jsx","webpack:///./src/components/nodes/JournalDetails.jsx","webpack:///./src/components/nodes/SystemInformation.jsx","webpack:///./src/components/nodes/RestApiOverview.jsx","webpack:///./src/components/nodes/PluginsDataTable.jsx","webpack:///./src/components/nodes/InputTypesDataTable.jsx","webpack:///./src/components/nodes/NodeOverview.jsx"],"names":["Description","styled","div","IconStack","theme","css","colors","global","textAlt","textDefault","Content","p","SmallSupportLink","children","className","name","type","propTypes","PropTypes","node","isRequired","string","defaultProps","undefined","MetricsExtractor","getValuesForNode","nodeMetrics","metricNames","Object","keys","length","metrics","forEach","metricShortName","metricFullName","metricObject","metric","value","count","rate","total","MetricsStore","StoreProvider","getStore","MetricsActions","ActionsProvider","getActions","NodeThroughput","createReactClass","displayName","nodeId","longFormat","bool","mixins","Reflux","connect","getDefaultProps","UNSAFE_componentWillMount","this","totalIn","totalOut","add","props","componentWillUnmount","remove","_isLoading","state","_formatThroughput","numeral","format","render","text","SystemProcessingStore","SystemLoadBalancerStore","NodesActions","systemOverview","window","confirm","is_processing","pause","node_id","resume","status","override","apiBrowserURI","URI","transport_address","normalizePathname","toString","to","Routes","SYSTEM","NODES","SHOW","bsStyle","METRICS","href","title","id","pullRight","permissions","onSelect","_toggleMessageProcessing","left","_changeLBStatus","anyPermissions","divider","HideOnCloud","node_inputs","THREADDUMP","PROCESSBUFFERDUMP","React","Component","object","NodeState","dl","SystemOverviewSummary","information","lbStatus","lb_status","toUpperCase","StringUtils","capitalizeFirstLetter","lifecycle","NodeHeap","Blob","span","variant","primary","dark","warning","background","gray","StyledProgressBar","ProgressBar","Bar","JvmHeapUsage","usedMemory","committedMemory","maxMemory","_extractMetricValues","extractedMetric","usedPercentage","Math","ceil","committedPercentage","extractedMetrics","progressBarConfig","detail","NumberUtils","formatBytes","data-node-id","bars","JournalState","append","read","segments","entriesUncommitted","singular","plural","NodeListItem","key","description","nodeThroughput","journalState","actions","additionalContent","md","titleSuffix","contentRow","ClusterOverviewStore","NodesList","array","nodes","clusterOverview","_formatNodes","map","nodeID","nodesNo","bsNoItemsStyle","noItemsText","items","NodeMaintenanceDropdown","bsSize","LOGGING","target","NodeBufferUsage","spacings","sm","xs","_metricPrefix","bufferType","_metricFilter","BufferUsage","useEffect","prefix","metricName","useStore","usageMetric","usage","NaN","sizeMetric","size","usagePercentage","isNaN","percentLabel","formatPercentage","filtered_metrics","label","toLowerCase","SystemOverviewDetails","processingStatus","page","DocsHelper","PAGES","LOAD_BALANCERS","onClick","JournalStore","JournalUsageProgressBar","JournalDetails","getInitialState","journalInformation","componentDidMount","get","then","setState","_listenToMetrics","enabled","utilizationRatio","oldestSegment","overcommittedWarning","moment","OVERVIEW","journal_config","directory","dateTime","relative","max_size","duration","max_age","flush_interval","flush_age","_getInitialState","time","StyledDl","SystemInformation","interval","setInterval","clearTimeout","jvmInformationText","systemInformation","hostname","version","codename","timezone","jvmInformation","pid","info","DateTime","Formats","DATETIME_TZ","tz","RestApiOverview","last_seen","PluginsDataTable","header","plugin","author","style","width","url","marginLeft","plugins","rowClassName","headers","headerCellFormatter","_headerCellFormatter","sortByKey","rows","dataRowFormatter","_pluginInfoFormatter","filterLabel","filterKeys","InputTypesDataTable","inputType","link_to_docs","inputDescriptions","_inputTypeFormatter","NodeOverview","pluginCount","inputCount","inputStates","runningInputs","filter","inputState","marginBottom"],"mappings":"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","file":"57e33c6c-21.11b9f72925818240e61d.js","sourcesContent":["/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Icon } from 'components/common';\n\ntype Props = {\n  children: React.ReactNode,\n  className?: string,\n};\n\nconst Description = styled.div`\n  display: inline-flex;\n  justify-content: center;\n  align-items: center;\n`;\n\nconst IconStack = styled.div(({ theme }) => css`\n  position: relative;\n  min-width: 2.5em;\n  \n  .fa-stack-1x {\n    color: ${theme.colors.global.textAlt};\n  }\n  \n  .fa-stack-2x {\n    color: ${theme.colors.global.textDefault};\n  }\n`);\n\nconst Content = styled.p`\n  font-weight: bold;\n  margin: 0;\n`;\n\nconst SmallSupportLink = ({ children, className }: Props) => {\n  return (\n    \n      \n        \n        \n      \n\n      \n        {children}\n      \n    \n  );\n};\n\nSmallSupportLink.propTypes = {\n  children: PropTypes.node.isRequired,\n  className: PropTypes.string,\n};\n\nSmallSupportLink.defaultProps = {\n  className: undefined,\n};\n\nexport default SmallSupportLink;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport type { NodeMetric } from 'stores/metrics/MetricsStore';\n\nconst MetricsExtractor = {\n  /*\n   * Returns an object containing a short name and the metric value for it.\n   * Short names are the keys of the metricNames object, which should look like:\n   * { shortName: \"metricFullName\" }\n   */\n  getValuesForNode(nodeMetrics: NodeMetric, metricNames: { [key: string]: string }): { [key: string]: number | undefined | null } {\n    if (nodeMetrics === null || nodeMetrics === undefined || Object.keys(nodeMetrics).length === 0) {\n      return {};\n    }\n\n    const metrics = {};\n\n    Object.keys(metricNames).forEach((metricShortName) => {\n      const metricFullName = metricNames[metricShortName];\n      const metricObject = nodeMetrics[metricFullName];\n\n      if (metricObject) {\n        if (metricObject.type === 'gauge') {\n          metrics[metricShortName] = metricObject.metric.value;\n        } else if (metricObject.type === 'counter') {\n          metrics[metricShortName] = metricObject.metric.count;\n        } else if (metricObject.type === 'meter') {\n          metrics[metricShortName] = metricObject.metric.rate.total;\n        } else if (metricObject.type === 'timer') {\n          metrics[metricShortName] = metricObject.metric.rate.total;\n        } else {\n          metrics[metricShortName] = null;\n        }\n      }\n    });\n\n    return metrics;\n  },\n};\n\nexport default MetricsExtractor;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\nimport numeral from 'numeral';\n\nimport { Spinner } from 'components/common';\nimport MetricsExtractor from 'logic/metrics/MetricsExtractor';\nimport StoreProvider from 'injection/StoreProvider';\nimport ActionsProvider from 'injection/ActionsProvider';\n\nconst MetricsStore = StoreProvider.getStore('Metrics');\nconst MetricsActions = ActionsProvider.getActions('Metrics');\n\n// TODO this is a copy of GlobalTroughput, it just renders differently and only targets a single node.\nconst NodeThroughput = createReactClass({\n  displayName: 'NodeThroughput',\n\n  propTypes: {\n    nodeId: PropTypes.string.isRequired,\n    longFormat: PropTypes.bool,\n  },\n\n  mixins: [Reflux.connect(MetricsStore)],\n\n  getDefaultProps() {\n    return {\n      longFormat: false,\n    };\n  },\n\n  UNSAFE_componentWillMount() {\n    this.metricNames = {\n      totalIn: 'org.graylog2.throughput.input.1-sec-rate',\n      totalOut: 'org.graylog2.throughput.output.1-sec-rate',\n    };\n\n    Object.keys(this.metricNames).forEach((metricShortName) => MetricsActions.add(this.props.nodeId, this.metricNames[metricShortName]));\n  },\n\n  componentWillUnmount() {\n    Object.keys(this.metricNames).forEach((metricShortName) => MetricsActions.remove(this.props.nodeId, this.metricNames[metricShortName]));\n  },\n\n  _isLoading() {\n    return !this.state.metrics;\n  },\n\n  _formatThroughput(metrics) {\n    if (this.props.longFormat) {\n      return (\n        \n          Processing {numeral(metrics.totalIn).format('0,0')} incoming and \n            {numeral(metrics.totalOut).format('0,0')}\n                                                                                             outgoing msg/s.\n        \n      );\n    }\n\n    return (\n      \n        In {numeral(metrics.totalIn).format('0,0')} / Out {numeral(metrics.totalOut).format('0,0')} msg/s.\n      \n    );\n  },\n\n  render() {\n    if (this._isLoading()) {\n      return ;\n    }\n\n    const { nodeId } = this.props;\n    const nodeMetrics = this.state.metrics[nodeId];\n    const metrics = MetricsExtractor.getValuesForNode(nodeMetrics, this.metricNames);\n\n    if (Object.keys(metrics).length === 0) {\n      return (Unable to load throughput.);\n    }\n\n    return this._formatThroughput(metrics);\n  },\n});\n\nexport default NodeThroughput;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport URI from 'urijs';\n\nimport { LinkContainer } from 'components/graylog/router';\nimport { Button, DropdownButton, DropdownSubmenu, MenuItem } from 'components/graylog';\nimport { ExternalLinkButton, IfPermitted } from 'components/common';\nimport StoreProvider from 'injection/StoreProvider';\nimport Routes from 'routing/Routes';\nimport HideOnCloud from 'util/conditional/HideOnCloud';\n\nconst SystemProcessingStore = StoreProvider.getStore('SystemProcessing');\nconst SystemLoadBalancerStore = StoreProvider.getStore('SystemLoadBalancer');\n\nclass NodesActions extends React.Component {\n  static propTypes = {\n    node: PropTypes.object.isRequired,\n    systemOverview: PropTypes.object.isRequired,\n  };\n\n  _toggleMessageProcessing = () => {\n    const { systemOverview, node } = this.props;\n\n    // eslint-disable-next-line no-alert\n    if (window.confirm(`You are about to ${systemOverview.is_processing ? 'pause' : 'resume'} message processing in this node. Are you sure?`)) {\n      if (systemOverview.is_processing) {\n        SystemProcessingStore.pause(node.node_id);\n      } else {\n        SystemProcessingStore.resume(node.node_id);\n      }\n    }\n  };\n\n  _changeLBStatus = (status) => {\n    return () => {\n      // eslint-disable-next-line no-alert\n      if (window.confirm(`You are about to change the load balancer status for this node to ${status}. Are you sure?`)) {\n        const { node } = this.props;\n        SystemLoadBalancerStore.override(node.node_id, status);\n      }\n    };\n  };\n\n  render() {\n    const { systemOverview, node } = this.props;\n    const apiBrowserURI = new URI(`${node.transport_address}/api-browser`).normalizePathname().toString();\n\n    return (\n      
\n \n \n \n\n \n \n \n\n \n API browser\n \n\n \n \n \n {systemOverview.is_processing ? 'Pause' : 'Resume'} message processing\n \n \n\n \n \n ALIVE\n DEAD\n \n \n\n \n \n \n \n \n\n \n \n \n Local message inputs\n \n \n \n \n \n Get thread dump\n \n \n \n \n Get process-buffer dump\n \n \n \n
\n );\n }\n}\n\nexport default NodesActions;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport StringUtils from 'util/StringUtils';\n\nconst NodeState = styled.dl`\n margin-top: 0;\n margin-bottom: 0;\n\n dt {\n float: left;\n }\n\n dd {\n margin-left: 180px;\n }\n`;\n\nexport const SystemOverviewSummary = ({ information }) => {\n const lbStatus = information.lb_status.toUpperCase();\n\n return (\n \n
Current lifecycle state:
\n
{StringUtils.capitalizeFirstLetter(information.lifecycle)}
\n
Message processing:
\n
{information.is_processing ? 'Enabled' : 'Disabled'}
\n
Load balancer indication:
\n
{lbStatus}
\n
\n );\n};\n\nSystemOverviewSummary.propTypes = {\n information: PropTypes.object.isRequired,\n};\n\nexport default SystemOverviewSummary;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\nimport styled, { css } from 'styled-components';\n\nimport ProgressBar, { Bar } from 'components/graylog/ProgressBar';\nimport { Spinner } from 'components/common';\nimport NumberUtils from 'util/NumberUtils';\nimport MetricsExtractor from 'logic/metrics/MetricsExtractor';\nimport StoreProvider from 'injection/StoreProvider';\nimport ActionsProvider from 'injection/ActionsProvider';\n\nconst MetricsStore = StoreProvider.getStore('Metrics');\nconst MetricsActions = ActionsProvider.getActions('Metrics');\n\nconst NodeHeap = styled.div`\n margin-top: 10px;\n\n p {\n margin-bottom: 0;\n }\n`;\n\nconst Blob = styled.span(({ theme }) => css`\n display: inline-block;\n width: 9px;\n height: 9px;\n margin-left: 2px;\n border: 1px solid;\n\n &.used-memory {\n background-color: ${theme.colors.variant.primary};\n border-color: ${theme.colors.variant.dark.primary};\n }\n\n &.committed-memory {\n background-color: ${theme.colors.variant.warning};\n border-color: ${theme.colors.variant.dark.warning};\n }\n\n &.max-memory {\n background-color: ${theme.colors.global.background};\n border-color: ${theme.colors.gray[80]};\n }\n`);\n\nconst StyledProgressBar = styled(ProgressBar)`\n height: 25px;\n margin-bottom: 5px;\n\n ${Bar} {\n line-height: 25px;\n }\n`;\n\nconst JvmHeapUsage = createReactClass({\n displayName: 'JvmHeapUsage',\n\n propTypes: {\n nodeId: PropTypes.string.isRequired,\n },\n\n mixins: [Reflux.connect(MetricsStore)],\n\n UNSAFE_componentWillMount() {\n const { nodeId } = this.props;\n\n this.metricNames = {\n usedMemory: 'jvm.memory.heap.used',\n committedMemory: 'jvm.memory.heap.committed',\n maxMemory: 'jvm.memory.heap.max',\n };\n\n Object.keys(this.metricNames).forEach((metricShortName) => MetricsActions.add(nodeId, this.metricNames[metricShortName]));\n },\n\n componentWillUnmount() {\n const { nodeId } = this.props;\n\n Object.keys(this.metricNames).forEach((metricShortName) => MetricsActions.remove(nodeId, this.metricNames[metricShortName]));\n },\n\n _extractMetricValues() {\n const { nodeId } = this.props;\n const { metrics } = this.state;\n\n if (metrics && metrics[nodeId]) {\n const extractedMetric = MetricsExtractor.getValuesForNode(metrics[nodeId], this.metricNames);\n const { maxMemory, usedMemory, committedMemory } = extractedMetric;\n\n if (maxMemory) {\n extractedMetric.usedPercentage = maxMemory === 0 ? 0 : Math.ceil((usedMemory / maxMemory) * 100);\n extractedMetric.committedPercentage = maxMemory === 0 ? 0 : Math.ceil((committedMemory / maxMemory) * 100);\n\n return extractedMetric;\n }\n\n return {\n usedPercentage: 0,\n committedPercentage: 0,\n };\n }\n\n return {};\n },\n\n render() {\n const { nodeId } = this.props;\n const extractedMetrics = this._extractMetricValues();\n const { usedPercentage, committedPercentage, usedMemory, committedMemory, maxMemory } = extractedMetrics;\n let progressBarConfig = [{ value: 0 }];\n let detail =

;\n\n if (usedPercentage || committedPercentage) {\n if (Object.keys(extractedMetrics).length === 0) {\n detail =

Heap information unavailable.

;\n } else {\n progressBarConfig = [\n { value: usedPercentage, bsStyle: 'primary' },\n { value: committedPercentage - usedPercentage, bsStyle: 'warning' },\n ];\n\n detail = (\n

\n The JVM is using{' '}\n \n {NumberUtils.formatBytes(usedMemory)}\n {' '}of{' '}\n \n {NumberUtils.formatBytes(committedMemory)}\n {' '}heap space and will not attempt to use more than{' '}\n \n {NumberUtils.formatBytes(maxMemory)}\n

\n );\n }\n }\n\n return (\n \n \n\n {detail}\n \n );\n },\n});\n\nexport default JvmHeapUsage;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\nimport numeral from 'numeral';\n\nimport { Pluralize, Spinner } from 'components/common';\nimport MetricsExtractor from 'logic/metrics/MetricsExtractor';\nimport StoreProvider from 'injection/StoreProvider';\nimport ActionsProvider from 'injection/ActionsProvider';\n\nconst MetricsStore = StoreProvider.getStore('Metrics');\nconst MetricsActions = ActionsProvider.getActions('Metrics');\n\nconst JournalState = createReactClass({\n displayName: 'JournalState',\n\n propTypes: {\n nodeId: PropTypes.string.isRequired,\n },\n\n mixins: [Reflux.connect(MetricsStore)],\n\n UNSAFE_componentWillMount() {\n this.metricNames = {\n append: 'org.graylog2.journal.append.1-sec-rate',\n read: 'org.graylog2.journal.read.1-sec-rate',\n segments: 'org.graylog2.journal.segments',\n entriesUncommitted: 'org.graylog2.journal.entries-uncommitted',\n };\n\n Object.keys(this.metricNames).forEach((metricShortName) => MetricsActions.add(this.props.nodeId, this.metricNames[metricShortName]));\n },\n\n componentWillUnmount() {\n Object.keys(this.metricNames).forEach((metricShortName) => MetricsActions.remove(this.props.nodeId, this.metricNames[metricShortName]));\n },\n\n _isLoading() {\n return !this.state.metrics;\n },\n\n render() {\n if (this._isLoading()) {\n return ;\n }\n\n const { nodeId } = this.props;\n const nodeMetrics = this.state.metrics[nodeId];\n const metrics = MetricsExtractor.getValuesForNode(nodeMetrics, this.metricNames);\n\n if (Object.keys(metrics).length === 0) {\n return Journal metrics unavailable.;\n }\n\n return (\n \n The journal contains {numeral(metrics.entriesUncommitted).format('0,0')} unprocessed messages in {metrics.segments}\n {' '}.{' '}\n {numeral(metrics.append).format('0,0')} messages appended, \n {numeral(metrics.read).format('0,0')} messages\n read in the last second.\n \n );\n },\n});\n\nexport default JournalState;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Col } from 'components/graylog';\nimport { EntityListItem, LinkToNode } from 'components/common';\nimport NodeThroughput from 'components/throughput/NodeThroughput';\n\nimport NodesActions from './NodesActions';\nimport SystemOverviewSummary from './SystemOverviewSummary';\nimport JvmHeapUsage from './JvmHeapUsage';\nimport JournalState from './JournalState';\n\nclass NodeListItem extends React.Component {\n static propTypes = {\n node: PropTypes.object.isRequired,\n systemOverview: PropTypes.object,\n };\n\n render() {\n const { node } = this.props;\n const title = ;\n\n if (!this.props.systemOverview) {\n return (\n \n );\n }\n\n const nodeThroughput = ;\n const journalState = ;\n const actions = ;\n\n const additionalContent = (\n
\n \n \n \n \n \n \n
\n );\n\n return (\n \n );\n }\n}\n\nexport default NodeListItem;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\n\nimport { Row, Col } from 'components/graylog';\nimport { Spinner, EntityList, Pluralize } from 'components/common';\nimport StoreProvider from 'injection/StoreProvider';\n\nimport NodeListItem from './NodeListItem';\n\nconst ClusterOverviewStore = StoreProvider.getStore('ClusterOverview');\n\nconst NodesList = createReactClass({\n displayName: 'NodesList',\n\n propTypes: {\n permissions: PropTypes.array.isRequired,\n nodes: PropTypes.object,\n },\n\n mixins: [Reflux.connect(ClusterOverviewStore)],\n\n _isLoading() {\n const { nodes } = this.props;\n const { clusterOverview } = this.state;\n\n return !(nodes && clusterOverview);\n },\n\n _formatNodes(nodes, clusterOverview) {\n const nodeIDs = Object.keys(nodes);\n\n return nodeIDs.map((nodeID) => {\n return ;\n });\n },\n\n render() {\n if (this._isLoading()) {\n return ;\n }\n\n const nodesNo = Object.keys(this.props.nodes).length;\n\n return (\n \n \n

\n There {nodesNo} active \n

\n \n \n
\n );\n },\n});\n\nexport default NodesList;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport URI from 'urijs';\n\nimport { LinkContainer } from 'components/graylog/router';\nimport { ButtonGroup, DropdownButton, MenuItem } from 'components/graylog';\nimport { ExternalLink, IfPermitted } from 'components/common';\nimport Routes from 'routing/Routes';\nimport HideOnCloud from 'util/conditional/HideOnCloud';\n\nclass NodeMaintenanceDropdown extends React.Component {\n static propTypes = {\n node: PropTypes.object.isRequired,\n };\n\n render() {\n const apiBrowserURI = new URI(`${this.props.node.transport_address}/api-browser`).normalizePathname().toString();\n\n return (\n \n \n \n \n Get thread dump\n \n \n\n \n \n Get process-buffer dump\n \n \n\n \n Metrics\n \n\n \n \n \n Configure internal logging\n \n \n \n\n \n API Browser\n \n \n \n );\n }\n}\n\nexport default NodeMaintenanceDropdown;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { LinkContainer } from 'components/graylog/router';\nimport { Button, ProgressBar } from 'components/graylog';\nimport StoreProvider from 'injection/StoreProvider';\nimport ActionsProvider from 'injection/ActionsProvider';\nimport Routes from 'routing/Routes';\nimport NumberUtils from 'util/NumberUtils';\nimport { Spinner } from 'components/common';\nimport { useStore } from 'stores/connect';\n\nconst MetricsStore = StoreProvider.getStore('Metrics');\nconst MetricsActions = ActionsProvider.getActions('Metrics');\n\nconst NodeBufferUsage = styled.div(({ theme }) => css`\n margin-top: ${theme.spacings.sm};\n margin-bottom: ${theme.spacings.xs};\n`);\n\nconst StyledProgressBar = styled(ProgressBar)(({ theme }) => css`\n margin-bottom: ${theme.spacings.xs};\n`);\n\nconst _metricPrefix = (bufferType) => `org.graylog2.buffers.${bufferType}`;\n\nconst _metricFilter = (bufferType) => `org\\\\.graylog2\\\\.buffers\\\\.${bufferType}\\\\.|${bufferType}buffer`;\n\ntype Props = {\n nodeId: string,\n bufferType: string,\n title: string,\n};\n\nconst BufferUsage = ({ nodeId, bufferType, title }: Props) => {\n useEffect(() => {\n const prefix = _metricPrefix(bufferType);\n const metricNames = [\n `${prefix}.usage`,\n `${prefix}.size`,\n ];\n\n metricNames.forEach((metricName) => MetricsActions.add(nodeId, metricName));\n\n return () => metricNames.forEach((metricName) => MetricsActions.remove(nodeId, metricName));\n }, [nodeId, bufferType]);\n\n const { metrics } = useStore(MetricsStore);\n\n // metrics for this node could be undefined\n if (!metrics?.[nodeId]) {\n return ;\n }\n\n const prefix = _metricPrefix(bufferType);\n\n const usageMetric = metrics[nodeId][`${prefix}.usage`];\n const usage = usageMetric ? usageMetric.metric.value : NaN;\n const sizeMetric = metrics[nodeId][`${prefix}.size`];\n const size = sizeMetric ? sizeMetric.metric.value : NaN;\n // eslint-disable-next-line no-restricted-globals\n const usagePercentage = ((!isNaN(usage) && !isNaN(size)) ? usage / size : 0);\n const percentLabel = NumberUtils.formatPercentage(usagePercentage);\n\n return (\n
\n \n \n \n

{title}

\n \n \n \n {usage} messages in {title.toLowerCase()}, {percentLabel} utilized.\n
\n );\n};\n\nBufferUsage.propTypes = {\n bufferType: PropTypes.string.isRequired,\n nodeId: PropTypes.string.isRequired,\n title: PropTypes.node.isRequired,\n};\n\nexport default BufferUsage;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Row, Col, Alert, Button } from 'components/graylog';\nimport { IfPermitted, Icon } from 'components/common';\nimport { DocumentationLink } from 'components/support';\nimport NodeThroughput from 'components/throughput/NodeThroughput';\nimport DocsHelper from 'util/DocsHelper';\nimport StringUtils from 'util/StringUtils';\nimport StoreProvider from 'injection/StoreProvider';\n\nconst SystemProcessingStore = StoreProvider.getStore('SystemProcessing');\n\nclass SystemOverviewDetails extends React.Component {\n static propTypes = {\n node: PropTypes.object.isRequired,\n information: PropTypes.object.isRequired,\n };\n\n _toggleMessageProcessing = () => {\n if (confirm(`You are about to ${this.props.information.is_processing ? 'pause' : 'resume'} message processing in this node. Are you sure?`)) {\n if (this.props.information.is_processing) {\n SystemProcessingStore.pause(this.props.node.node_id);\n } else {\n SystemProcessingStore.resume(this.props.node.node_id);\n }\n }\n };\n\n render() {\n const { information } = this.props;\n const lbStatus = information.lb_status.toUpperCase();\n let processingStatus;\n\n if (information.is_processing) {\n processingStatus = (\n \n   \n \n );\n } else {\n processingStatus = (\n \n   Node is not processing messages\n \n );\n }\n\n return (\n \n \n \n \n  \n Lifecycle state: {StringUtils.capitalizeFirstLetter(this.props.information.lifecycle)}\n \n \n \n \n \n  \n Marked as {lbStatus} for load balancers\n \n \n \n \n \n \n \n \n \n {processingStatus}\n \n \n \n );\n }\n}\n\nexport default SystemOverviewDetails;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\n\nimport { Link } from 'components/graylog/router';\n\nimport numeral from 'numeral';\nimport moment from 'moment';\nimport {} from 'moment-duration-format';\nimport styled from 'styled-components';\n\nimport { Row, Col, Alert } from 'components/graylog';\nimport ProgressBar, { Bar } from 'components/graylog/ProgressBar';\nimport MetricsExtractor from 'logic/metrics/MetricsExtractor';\nimport ActionsProvider from 'injection/ActionsProvider';\nimport StoreProvider from 'injection/StoreProvider';\nimport { Spinner, Timestamp, Icon } from 'components/common';\nimport NumberUtils from 'util/NumberUtils';\nimport Routes from 'routing/Routes';\n\nconst MetricsActions = ActionsProvider.getActions('Metrics');\nconst MetricsStore = StoreProvider.getStore('Metrics');\nconst JournalStore = StoreProvider.getStore('Journal');\n\nconst JournalUsageProgressBar = styled(ProgressBar)`\n margin-bottom: 5px;\n margin-top: 10px;\n\n ${Bar} {\n min-width: 3em;\n }\n`;\n\nconst JournalDetails = createReactClass({\n displayName: 'JournalDetails',\n\n propTypes: {\n nodeId: PropTypes.string.isRequired,\n },\n\n mixins: [Reflux.connect(MetricsStore)],\n\n getInitialState() {\n return {\n journalInformation: undefined,\n };\n },\n\n componentDidMount() {\n const { nodeId } = this.props;\n\n JournalStore.get(nodeId).then((journalInformation) => {\n this.setState({ journalInformation: journalInformation }, this._listenToMetrics);\n });\n },\n\n componentWillUnmount() {\n const { nodeId } = this.props;\n\n if (this.metricNames) {\n Object.keys(this.metricNames).forEach((metricShortName) => MetricsActions.remove(nodeId, this.metricNames[metricShortName]));\n }\n },\n\n _listenToMetrics() {\n const { nodeId } = this.props;\n const { journalInformation } = this.state;\n\n // only listen for updates if the journal is actually turned on\n if (journalInformation.enabled) {\n this.metricNames = {\n append: 'org.graylog2.journal.append.1-sec-rate',\n read: 'org.graylog2.journal.read.1-sec-rate',\n segments: 'org.graylog2.journal.segments',\n entriesUncommitted: 'org.graylog2.journal.entries-uncommitted',\n utilizationRatio: 'org.graylog2.journal.utilization-ratio',\n oldestSegment: 'org.graylog2.journal.oldest-segment',\n };\n\n Object.keys(this.metricNames).forEach((metricShortName) => MetricsActions.add(nodeId, this.metricNames[metricShortName]));\n }\n },\n\n _isLoading() {\n const { journalInformation, metrics } = this.state;\n\n return !(metrics && journalInformation);\n },\n\n render() {\n if (this._isLoading()) {\n return ;\n }\n\n const { nodeId } = this.props;\n const { metrics: metricsState } = this.state;\n const nodeMetrics = metricsState[nodeId];\n const { journalInformation } = this.state;\n\n if (!journalInformation.enabled) {\n return (\n \n   The disk journal is disabled on this node.\n \n );\n }\n\n const metrics = this.metricNames ? MetricsExtractor.getValuesForNode(nodeMetrics, this.metricNames) : {};\n\n if (Object.keys(metrics).length === 0) {\n return (\n \n   Journal metrics unavailable.\n \n );\n }\n\n const oldestSegment = moment(metrics.oldestSegment);\n let overcommittedWarning;\n\n if (metrics.utilizationRatio >= 1) {\n overcommittedWarning = (\n \n Warning! The journal utilization is exceeding the maximum size defined.\n {' '}Click here for more information.
\n
\n );\n }\n\n return (\n \n \n

Configuration

\n
\n
Path:
\n
{journalInformation.journal_config.directory}
\n
Earliest entry:
\n
\n
Maximum size:
\n
{NumberUtils.formatBytes(journalInformation.journal_config.max_size)}
\n
Maximum age:
\n
{moment.duration(journalInformation.journal_config.max_age).format('d [days] h [hours] m [minutes]')}
\n
Flush policy:
\n
\n Every {numeral(journalInformation.journal_config.flush_interval).format('0,0')} messages\n {' '}or {moment.duration(journalInformation.journal_config.flush_age).format('h [hours] m [minutes] s [seconds]')}\n
\n
\n \n \n

Utilization

\n\n \n\n {overcommittedWarning}\n\n {numeral(metrics.entriesUncommitted).format('0,0')} unprocessed messages\n {' '}are currently in the journal, in {metrics.segments} segments.
\n {numeral(metrics.append).format('0,0')} messages\n {' '}have been appended in the last second,{' '}\n {numeral(metrics.read).format('0,0')} messages have been read in the last second.\n \n
\n );\n },\n});\n\nexport default JournalDetails;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport moment from 'moment';\nimport styled from 'styled-components';\n\nimport { Timestamp } from 'components/common';\nimport DateTime from 'logic/datetimes/DateTime';\n\nconst _getInitialState = () => {\n return { time: moment() };\n};\n\nconst StyledDl = styled.dl`\n margin-top: 5px;\n margin-bottom: 0;\n\n dt {\n float: left;\n }\n\n dd {\n margin-left: 95px;\n }\n`;\n\nclass SystemInformation extends React.Component {\n static propTypes = {\n node: PropTypes.object.isRequired,\n systemInformation: PropTypes.object.isRequired,\n jvmInformation: PropTypes.object,\n };\n\n static defaultProps = {\n jvmInformation: undefined,\n };\n\n constructor(props) {\n super(props);\n this.state = _getInitialState();\n }\n\n componentDidMount() {\n this.interval = setInterval(() => this.setState(_getInitialState()), 1000);\n }\n\n componentWillUnmount() {\n clearTimeout(this.interval);\n }\n\n render() {\n const { systemInformation: { hostname, version, codename, timezone }, jvmInformation, node } = this.props;\n const { time } = this.state;\n let jvmInformationText;\n\n if (jvmInformation) {\n jvmInformationText = PID {jvmInformation.pid}, {jvmInformation.info};\n } else {\n jvmInformationText = JMV information for this node is unavailable.;\n }\n\n return (\n \n
Hostname:
\n
{hostname}
\n
Node ID:
\n
{node.node_id}
\n
Version:
\n
{version}, codename {codename}
\n
JVM:
\n
{jvmInformationText}
\n
Time:
\n
\n
\n );\n }\n}\n\nexport default SystemInformation;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport { Timestamp } from 'components/common';\n\nconst StyledDl = styled.dl`\n margin-top: 5px;\n margin-bottom: 0;\n\n dt {\n float: left;\n }\n\n dd {\n margin-left: 150px;\n }\n`;\n\nconst RestApiOverview = ({ node }) => {\n const { transport_address, last_seen } = node;\n\n return (\n \n
Transport address:
\n
{transport_address}
\n
Last seen:
\n
\n
\n );\n};\n\nRestApiOverview.propTypes = {\n node: PropTypes.object.isRequired,\n};\n\nexport default RestApiOverview;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Alert } from 'components/graylog';\nimport { DataTable, ExternalLink, Spinner, Icon } from 'components/common';\n\nclass PluginsDataTable extends React.Component {\n static propTypes = {\n plugins: PropTypes.array,\n };\n\n _headerCellFormatter = (header) => {\n return {header};\n };\n\n _pluginInfoFormatter = (plugin) => {\n return (\n \n {plugin.name}\n {plugin.version}\n {plugin.author}\n \n {plugin.description}\n   \n Website\n \n \n );\n };\n\n render() {\n if (!this.props.plugins) {\n return ;\n }\n\n if (this.props.plugins.length === 0) {\n return   This node has not any installed plugins.;\n }\n\n const headers = ['Name', 'Version', 'Author', 'Description'];\n\n return (\n \n );\n }\n}\n\nexport default PluginsDataTable;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Alert } from 'components/graylog';\nimport { DataTable, ExternalLink, Spinner, Icon } from 'components/common';\n\nclass InputTypesDataTable extends React.Component {\n static propTypes = {\n inputDescriptions: PropTypes.object,\n };\n\n _headerCellFormatter = (header) => {\n return {header};\n };\n\n _inputTypeFormatter = (inputType) => {\n return (\n \n {inputType.name}\n {inputType.type}\n \n {inputType.link_to_docs\n && Documentation}\n \n \n );\n };\n\n render() {\n if (!this.props.inputDescriptions) {\n return ;\n }\n\n if (Object.keys(this.props.inputDescriptions).length === 0) {\n return (\n \n   Input types are unavailable.\n \n );\n }\n\n const headers = ['Name', 'Type', 'Documentation'];\n\n const rows = Object.keys(this.props.inputDescriptions).map((key) => this.props.inputDescriptions[key]);\n\n return (\n \n );\n }\n}\n\nexport default InputTypesDataTable;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { LinkContainer } from 'components/graylog/router';\nimport { Row, Col, Button } from 'components/graylog';\nimport Routes from 'routing/Routes';\nimport HideOnCloud from 'util/conditional/HideOnCloud';\n\nimport BufferUsage from './BufferUsage';\nimport SystemOverviewDetails from './SystemOverviewDetails';\nimport JvmHeapUsage from './JvmHeapUsage';\nimport JournalDetails from './JournalDetails';\nimport SystemInformation from './SystemInformation';\nimport RestApiOverview from './RestApiOverview';\nimport PluginsDataTable from './PluginsDataTable';\nimport InputTypesDataTable from './InputTypesDataTable';\n\nclass NodeOverview extends React.Component {\n static propTypes = {\n node: PropTypes.object.isRequired,\n systemOverview: PropTypes.object.isRequired,\n jvmInformation: PropTypes.object,\n plugins: PropTypes.array,\n inputDescriptions: PropTypes.object,\n inputStates: PropTypes.array,\n };\n\n render() {\n const { node } = this.props;\n const { systemOverview } = this.props;\n\n let pluginCount;\n\n if (this.props.plugins) {\n pluginCount = `${this.props.plugins.length} plugins installed`;\n }\n\n let inputCount;\n\n if (this.props.inputStates) {\n const runningInputs = this.props.inputStates.filter((inputState) => inputState.state.toUpperCase() === 'RUNNING');\n\n inputCount = `${runningInputs.length} inputs running on this node`;\n }\n\n return (\n
\n \n \n \n \n \n\n \n \n

Memory/Heap usage

\n \n \n
\n\n \n \n

Buffers

\n

\n Buffers are built to cache small amounts of messages for a very short time\n (usually milliseconds) on their way through the different processors.\n

\n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n \n \n

Disk Journal

\n

\n Incoming messages are written to the disk journal to ensure they are kept safe in case of a server\n failure. The journal also helps keeping Graylog working if any of the outputs is too slow to keep\n up with the message rate or whenever there is a peak in incoming messages. It makes sure that\n Graylog does not buffer all of those messages in main memory and avoids overly long garbage\n collection pauses that way.\n

\n \n \n
\n\n \n \n

System

\n \n \n \n

REST API

\n \n \n
\n\n \n \n

Installed plugins {pluginCount}

\n \n \n
\n\n \n \n \n \n \n \n \n \n \n

Available input types {inputCount}

\n \n \n
\n
\n );\n }\n}\n\nexport default NodeOverview;\n"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy