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

web-interface.assets.57e33c6c-49.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/components/indexers/IndexerSystemOverviewComponent.tsx","webpack:///./src/logic/notifications/NotificationsFactory.js","webpack:///./src/components/notifications/Notification.jsx","webpack:///./src/components/notifications/NotificationsList.jsx","webpack:///./src/components/systemjobs/SystemJob.jsx","webpack:///./src/components/systemjobs/SystemJobsComponent.jsx","webpack:///./src/components/systemjobs/SystemJobsList.jsx","webpack:///./src/components/systemmessages/SystemMessage.jsx","webpack:///./src/components/systemmessages/SystemMessagesComponent.jsx","webpack:///./src/components/systemmessages/SystemMessagesList.jsx","webpack:///./src/components/times/TimesList.jsx","webpack:///./src/pages/SystemOverviewPage.jsx","webpack:///./src/components/indexers/IndexerFailuresComponent.jsx","webpack:///./src/util/EventHandlersThrottler.js","webpack:///./src/components/cluster/TrafficGraph.tsx","webpack:///./src/components/cluster/GraylogClusterOverview.jsx","webpack:///./src/components/indexers/IndexerClusterHealth.jsx","webpack:///./src/components/indexers/IndexerClusterHealthSummary.jsx","webpack:///./src/components/indexers/IndexerFailure.jsx","webpack:///./src/components/indexers/IndexerFailuresList.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","EnterpriseActions","CombinedProvider","get","IndexerSystemOverviewComponent","useState","text","loadIndexerFailuresComponent","setLoadIndexerFailuresComponent","pluginSystemOverview","usePluginEntities","EnterpriseIndexerFailures","component","useEffect","getLicenseInfo","then","response","free_license_info","license_status","IndexerFailuresComponent","NotificationsFactory","notification","title","description","details","exception","DocumentationLink","page","DocsHelper","PAGES","ES_CLUSTER_STATUS_RED","max_file_descriptors","hostname","ES_OPEN_FILE_LIMITS","ES_CLUSTER_UNAVAILABLE","node_id","gc_duration_ms","gc_threshold_ms","index_sets","input_id","reason","HideOnCloud","to","Routes","SYSTEM","INPUTS","input_title","current_version","href","target","rel","outputId","streamTitle","streamId","faultPenaltySeconds","faultCount","faultCountThreshold","outputTitle","errorMessage","stream_title","stream_id","fault_count","STREAM_PROCESSING_RUNTIME_LIMITS","nodes","initialVersion","initial_version","currentVersion","ROLLING_ES_UPGRADE","authServiceId","auth_service_id","authServiceLink","AUTHENTICATION","BACKENDS","show","UPGRADE_GUIDE","NotificationsActions","ActionsProvider","getActions","StyledButton","Button","StyledAlert","Alert","gray","NotificationHead","h3","NotificationTimestamp","span","fonts","size","small","Notification","props","window","confirm","this","notificationView","getForNotification","bsStyle","onClick","_onClose","dateTime","timestamp","relative","React","Component","object","NotificationsStore","StoreProvider","getStore","NotificationsList","createReactClass","displayName","mixins","Reflux","connect","_formatNotificationCount","count","render","state","notifications","content","total","map","key","md","SystemJobsActions","StyledProgressBar","ProgressBar","JobWrap","SystemJob","job","e","preventDefault","info","cancelJob","id","progress","percent_complete","bars","value","animated","cancel","is_cancelable","bsSize","_onCancel","data-toggle","nodeId","started_at","shape","number","bool","SystemJobsStore","SystemJobsComponent","jobs","list","interval","setInterval","clearInterval","jobList","Object","keys","reduce","a","b","concat","objectOf","array","systemJobsStore","SystemJobWrap","SystemJobsList","formattedJobs","_formatSystemJob","length","arrayOf","SystemMessage","message","moment","format","SystemMessagesStore","SystemMessagesComponent","all","setState","selectedPage","currentPage","loadMessages","messages","numberPages","Math","ceil","PER_PAGE","style","textAlign","totalPages","onChange","_onSelected","SystemMessagesTable","Table","body","TimestampTH","th","SystemMessagesList","striped","hover","condensed","random","toString","substring","CurrentUserStore","SystemStore","TimesList","getInitialState","time","componentDidMount","componentWillUnmount","system","timeFormat","DateTime","Formats","DATETIME_TZ","currentUser","serverTimezone","timezone","username","tz","SystemOverviewPage","permissions","IndexerFailuresStore","_iconForFailureCount","_formatTextForFailureCount","INDICES","FAILURES","numeral","since","subtract","_formatFailuresSummary","INDEXER_FAILURES","EventHandlersThrottler","eventMutex","eventHandler","timeout","setTimeout","TrafficGraph","width","traffic","dailySums","crossfilter","_","ts","bytes","dimension","d","group","reduceSum","t","mapKeys","entry","utc","toISOString","unixTraffic","mapValues","val","chartData","x","y","values","height","GenericPlot","layout","showlegend","margin","l","xaxis","yaxis","rangemode","hoverformat","tickformat","ClusterTrafficStore","ClusterTrafficActions","NodesStore","GraylogClusterOverview","oneOf","getDefaultProps","graphWidth","addEventListener","_onResize","_resizeGraphs","removeEventListener","eventThrottler","throttle","domNode","ReactDOM","findDOMNode","_container","clientWidth","renderClusterInfo","marginBottom","clusterId","nodeCount","renderTrafficGraph","sumOutput","trafficGraph","bytesOut","output","result","NumberUtils","formatBytes","from","ref","container","renderHeader","renderDefaultLayout","renderCompactLayout","IndexerClusterStore","IndexerClusterHealth","update","health","CONFIGURING_ES","ESClusterStatus","IndexerClusterHealthSummary","status","toLowerCase","_formatHealthStatus","_alertClassForHealth","_iconNameForHealth","_formatTextForHealth","shards","active","initializing","relocating","unassigned","CLUSTER_STATUS_EXPLAINED","IndexerFailure","failure","index","letter_id","IndexerFailuresList","failures"],"mappings":"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","file":"57e33c6c-49.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 */\n\nimport React, { useEffect, useState } from 'react';\n\nimport { Spinner } from 'components/common';\nimport usePluginEntities from 'views/logic/usePluginEntities';\nimport CombinedProvider from 'injection/CombinedProvider';\n\nimport IndexerFailuresComponent from './IndexerFailuresComponent';\n\nconst { EnterpriseActions } = CombinedProvider.get('Enterprise');\n\nconst IndexerSystemOverviewComponent = () => {\n  const [loadIndexerFailuresComponent, setLoadIndexerFailuresComponent] = useState();\n\n  const pluginSystemOverview = usePluginEntities('systemOverview');\n  const EnterpriseIndexerFailures = pluginSystemOverview?.[0]?.component;\n\n  useEffect(() => {\n    if (EnterpriseIndexerFailures) {\n      EnterpriseActions.getLicenseInfo().then((response) => {\n        setLoadIndexerFailuresComponent(response.free_license_info.license_status === 'installed' ?  : );\n      });\n    } else {\n      setLoadIndexerFailuresComponent();\n    }\n  }, [EnterpriseIndexerFailures, setLoadIndexerFailuresComponent]);\n\n  return loadIndexerFailuresComponent;\n};\n\nexport default IndexerSystemOverviewComponent;\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 React from 'react';\n\nimport { Link } from 'components/graylog/router';\nimport Routes from 'routing/Routes';\nimport DocsHelper from 'util/DocsHelper';\nimport DocumentationLink from 'components/support/DocumentationLink';\nimport HideOnCloud from 'util/conditional/HideOnCloud';\n\nclass NotificationsFactory {\n  static getForNotification(notification) {\n    switch (notification.type) {\n      case 'check_server_clocks':\n        return {\n          title: 'Check the system clocks of your Graylog server nodes.',\n          description: (\n            \n              A Graylog server node detected a condition where it was deemed to be inactive immediately after being active.\n              This usually indicates either a significant jump in system time, e.g. via NTP, or that a second Graylog server node\n              is active on a system that has a different system time. Please make sure that the clocks of graylog2 systems are synchronized.\n            \n          ),\n        };\n      case 'deflector_exists_as_index':\n        return {\n          title: 'Deflector exists as an index and is not an alias.',\n          description: (\n            \n              The deflector is meant to be an alias but exists as an index. Multiple failures of infrastructure can lead\n              to this. Your messages are still indexed but searches and all maintenance tasks will fail or produce incorrect\n              results. It is strongly recommend that you act as soon as possible.\n            \n          ),\n        };\n      case 'email_transport_configuration_invalid':\n        return {\n          title: 'Email Transport Configuration is missing or invalid!',\n          description: (\n            \n              The configuration for the email transport subsystem has shown to be missing or invalid.\n              Please check the related section of your Graylog server configuration file.\n              This is the detailed error message: {notification.details.exception}\n            \n          ),\n        };\n      case 'email_transport_failed':\n        return {\n          title: 'An error occurred while trying to send an email!',\n          description: (\n            \n              The Graylog server encountered an error while trying to send an email.\n              This is the detailed error message: {notification.details.exception}\n            \n          ),\n        };\n      case 'es_cluster_red':\n        return {\n          title: 'Elasticsearch cluster unhealthy (RED)',\n          description: (\n            \n              The Elasticsearch cluster state is RED which means shards are unassigned.\n              This usually indicates a crashed and corrupt cluster and needs to be investigated. Graylog will write\n              into the local disk journal. Read how to fix this in {' '}\n              \n            \n          ),\n        };\n      case 'es_open_files':\n        return {\n          title: 'Elasticsearch nodes with too low open file limit',\n          description: (\n            \n              There are Elasticsearch nodes in the cluster that have a too low open file limit (current limit:{' '}\n              {notification.details.max_file_descriptors} on {notification.details.hostname};\n              should be at least 64000) This will be causing problems\n              that can be hard to diagnose. Read how to raise the maximum number of open files in {' '}\n              .\n            \n          ),\n        };\n      case 'es_unavailable':\n        return {\n          title: 'Elasticsearch cluster unavailable',\n          description: (\n            \n              Graylog could not successfully connect to the Elasticsearch cluster. If you're using multicast, check that\n              it is working in your network and that Elasticsearch is accessible. Also check that the cluster name setting\n              is correct. Read how to fix this in {' '}\n              \n            \n          ),\n        };\n      case 'gc_too_long':\n        return {\n          title: 'Nodes with too long GC pauses',\n          description: (\n            \n              There are Graylog nodes on which the garbage collector runs too long.\n              Garbage collection runs should be as short as possible. Please check whether those nodes are healthy.\n              (Node: {notification.node_id}, GC duration: {notification.details.gc_duration_ms} ms,\n              GC threshold: {notification.details.gc_threshold_ms} ms)\n            \n          ),\n        };\n      case 'generic':\n        return {\n          title: notification.details.title,\n          description: notification.details.description,\n        };\n      case 'index_ranges_recalculation':\n        return {\n          title: 'Index ranges recalculation required',\n          description: (\n            \n              The index ranges are out of sync. Please go to System/Indices and trigger a index range recalculation from\n              the Maintenance menu of {notification.details.index_sets ? (`the following index sets: ${notification.details.index_sets}`) : 'all index sets'}\n            \n          ),\n        };\n      case 'input_failed_to_start':\n        return {\n          title: 'An input has failed to start',\n          description: (\n            \n              Input {notification.details.input_id} has failed to start on node {notification.node_id} for this reason:\n              »{notification.details.reason}«. This means that you are unable to receive any messages from this input.\n              This is mostly an indication for a misconfiguration or an error.\n              \n                You can click here to solve this.\n              \n            \n          ),\n        };\n      case 'input_failure_shutdown':\n        return {\n          title: 'An input has shut down due to failures',\n          description: (\n            \n              Input {notification.details.input_title} has shut down on node {notification.node_id} for this reason:\n              »{notification.details.reason}«. This means that you are unable to receive any messages from this input.\n              This is often an indication of persistent network failures.\n              You can click {' '} here to see the input.\n            \n          ),\n        };\n      case 'journal_uncommitted_messages_deleted':\n        return {\n          title: 'Uncommited messages deleted from journal',\n          description: (\n            \n              Some messages were deleted from the Graylog journal before they could be written to Elasticsearch. Please\n              verify that your Elasticsearch cluster is healthy and fast enough. You may also want to review your Graylog\n              journal settings and set a higher limit. (Node: {notification.node_id})\n            \n          ),\n        };\n      case 'journal_utilization_too_high':\n        return {\n          title: 'Journal utilization is too high',\n          description: (\n            \n              Journal utilization is too high and may go over the limit soon. Please verify that your Elasticsearch cluster\n              is healthy and fast enough. You may also want to review your Graylog journal settings and set a higher limit.\n              (Node: {notification.node_id})\n            \n          ),\n        };\n      case 'multi_master':\n        return {\n          title: 'Multiple Graylog server masters in the cluster',\n          description: (\n            \n              There were multiple Graylog server instances configured as master in your Graylog cluster. The cluster handles\n              this automatically by launching new nodes as slaves if there already is a master but you should still fix this.\n              Check the graylog.conf of every node and make sure that only one instance has is_master set to true. Close this\n              notification if you think you resolved the problem. It will pop back up if you start a second master node again.\n            \n          ),\n        };\n      case 'no_input_running':\n        return {\n          title: 'There is a node without any running inputs.',\n          description: (\n            \n              There is a node without any running inputs. This means that you are not receiving any messages from this\n              node at this point in time. This is most probably an indication of an error or misconfiguration.\n              \n                You can click here to solve this.\n              \n            \n          ),\n        };\n      case 'no_master':\n        return {\n          title: 'There was no master Graylog server node detected in the cluster.',\n          description: (\n            \n              Certain operations of Graylog server require the presence of a master node, but no such master was started.\n              Please ensure that one of your Graylog server nodes contains the setting is_master = true in its\n              configuration and that it is running. Until this is resolved index cycling will not be able to run, which\n              means that the index retention mechanism is also not running, leading to increased index sizes. Certain\n              maintenance functions as well as a variety of web interface pages (e.g. Dashboards) are unavailable.\n            \n          ),\n        };\n      case 'outdated_version':\n        return {\n          title: 'You are running an outdated Graylog version.',\n          description: (\n            \n              The most recent stable Graylog version is {notification.details.current_version}.\n              Get it from https://www.graylog.org/.\n            \n          ),\n        };\n      case 'output_disabled':\n        return {\n          title: 'Output disabled',\n          description: (\n            \n              The output with the id {notification.details.outputId} in stream \"{notification.details.streamTitle}\"\n              (id: {notification.details.streamId}) has been disabled for {notification.details.faultPenaltySeconds}\n              seconds because there were {notification.details.faultCount} failures.\n              (Node: {notification.node_id}, Fault threshold: {notification.details.faultCountThreshold})\n            \n          ),\n        };\n      case 'output_failing':\n        return {\n          title: 'Output failing',\n          description: (\n            \n              The output \"{notification.details.outputTitle}\" (id: {notification.details.outputId})\n              in stream \"{notification.details.streamTitle}\" (id: {notification.details.streamId})\n              is unable to send messages to the configured destination.\n              
\n The error message from the output is: {notification.details.errorMessage}\n
\n ),\n };\n case 'stream_processing_disabled':\n return {\n title: 'Processing of a stream has been disabled due to excessive processing time.',\n description: (\n \n The processing of stream {notification.details.stream_title} ({notification.details.stream_id}) has taken too long for{' '}\n {notification.details.fault_count} times. To protect the stability of message processing,\n this stream has been disabled. Please correct the stream rules and reenable the stream.\n Check {' '}\n for more details.\n \n ),\n };\n case 'es_node_disk_watermark_low':\n return {\n title: 'Elasticsearch nodes disk usage above low watermark',\n description: (\n \n There are Elasticsearch nodes in the cluster running out of disk space, their disk usage is above the low watermark.{' '}\n For this reason Elasticsearch will not allocate new shards to the affected nodes.{' '}\n The affected nodes are: [{notification.details.nodes}]{' '}\n Check https://www.elastic.co/guide/en/elasticsearch/reference/master/disk-allocator.html{' '}\n for more details.\n \n ),\n };\n case 'es_node_disk_watermark_high':\n return {\n title: 'Elasticsearch nodes disk usage above high watermark',\n description: (\n \n There are Elasticsearch nodes in the cluster with almost no free disk, their disk usage is above the high watermark.{' '}\n For this reason Elasticsearch will attempt to relocate shards away from the affected nodes.{' '}\n The affected nodes are: [{notification.details.nodes}]{' '}\n Check https://www.elastic.co/guide/en/elasticsearch/reference/master/disk-allocator.html{' '}\n for more details.\n \n ),\n };\n case 'es_node_disk_watermark_flood_stage':\n return {\n title: 'Elasticsearch nodes disk usage above flood stage watermark',\n description: (\n \n There are Elasticsearch nodes in the cluster without free disk, their disk usage is above the flood stage watermark.{' '}\n For this reason Elasticsearch enforces a read-only index block on all indexes having any of their shards in any of the{' '}\n affected nodes. The affected nodes are: [{notification.details.nodes}]{' '}\n Check https://www.elastic.co/guide/en/elasticsearch/reference/master/disk-allocator.html{' '}\n for more details.\n \n ),\n };\n case 'es_version_mismatch':\n const { initial_version: initialVersion, current_version: currentVersion } = notification.details;\n\n return {\n title: 'Elasticsearch version is incompatible',\n description: (\n \n The Elasticsearch version which is currently running ({currentVersion}) has a different major version than\n the one the Graylog master node was started with ({initialVersion}).{' '}\n This will most probably result in errors during indexing or searching. Graylog requires a full restart after an\n Elasticsearch upgrade from one major version to another.\n
\n For details, please see our notes about{' '}\n \n\n
\n ),\n };\n case 'legacy_ldap_config_migration':\n const { auth_service_id: authServiceId } = notification.details;\n const authServiceLink = Authentication Service;\n\n return {\n title: 'Legacy LDAP/Active Directory configuration has been migrated to an Authentication Service',\n description: (\n \n The legacy LDAP/Active Directory configuration of this system has been upgraded to a new {authServiceLink}.\n Since the new {authServiceLink} requires some information that is not present in the legacy\n configuration, the {authServiceLink} requires a manual review!\n
\n
\n After reviewing the {authServiceLink} it must be enabled to allow LDAP or Active Directory users\n to log in again!\n \n
\n
\n Please check the \n for more details.\n
\n ),\n };\n default:\n return { title: `unknown (${notification.type})`, description: 'unknown' };\n }\n }\n}\n\nexport default NotificationsFactory;\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, { css } from 'styled-components';\n\nimport { Alert, Button } from 'components/graylog';\nimport { Timestamp, Icon } from 'components/common';\nimport NotificationsFactory from 'logic/notifications/NotificationsFactory';\nimport ActionsProvider from 'injection/ActionsProvider';\n\nconst NotificationsActions = ActionsProvider.getActions('Notifications');\n\nconst StyledButton = styled(Button)`\n float: right;\n`;\n\nconst StyledAlert = styled(Alert)(({ theme }) => css`\n margin-top: 10px;\n\n i {\n color: ${theme.colors.gray[10]};\n }\n\n form {\n margin-bottom: 0;\n }\n`);\n\nconst NotificationHead = styled.h3`\n margin-bottom: 5px;\n`;\n\nconst NotificationTimestamp = styled.span(({ theme }) => css`\n margin-left: 3px;\n font-size: ${theme.fonts.size.small};\n`);\n\nclass Notification extends React.Component {\n static propTypes = {\n notification: PropTypes.object.isRequired,\n };\n\n _onClose = () => {\n const { notification } = this.props;\n\n // eslint-disable-next-line no-alert\n if (window.confirm('Really delete this notification?')) {\n NotificationsActions.delete(notification.type);\n }\n };\n\n render() {\n const { notification } = this.props;\n const notificationView = NotificationsFactory.getForNotification(notification);\n\n return (\n \n \n \n \n\n \n {' '}\n {notificationView.title}{' '}\n\n \n (triggered )\n \n \n
\n {notificationView.description}\n
\n
\n );\n }\n}\n\nexport default Notification;\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 React from 'react';\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\n\nimport StoreProvider from 'injection/StoreProvider';\nimport { Alert, Row, Col } from 'components/graylog';\nimport { Icon, Spinner } from 'components/common';\nimport Notification from 'components/notifications/Notification';\n\nconst NotificationsStore = StoreProvider.getStore('Notifications');\n\nconst NotificationsList = createReactClass({\n displayName: 'NotificationsList',\n mixins: [Reflux.connect(NotificationsStore)],\n\n _formatNotificationCount(count) {\n if (count === 0) {\n return 'is no notification';\n }\n\n if (count === 1) {\n return 'is one notification';\n }\n\n return `are ${count} notifications`;\n },\n\n render() {\n if (!this.state.notifications) {\n return ;\n }\n\n const count = this.state.total;\n\n let title;\n let content;\n\n if (count === 0) {\n title = 'No notifications';\n\n content = (\n \n {' '}\n  No notifications\n \n );\n } else {\n title = `There ${this._formatNotificationCount(count)}`;\n\n content = this.state.notifications.map((notification) => {\n return ;\n });\n }\n\n return (\n \n \n

{title}

\n

\n Notifications are triggered by Graylog and indicate a situation you should act upon. Many notification\n types will also provide a link to the Graylog documentation if you need more information or assistance.\n

\n\n {content}\n \n
\n );\n },\n});\n\nexport default NotificationsList;\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 React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Button, ProgressBar } from 'components/graylog';\nimport { LinkToNode, Timestamp, Icon } from 'components/common';\nimport ActionsProvider from 'injection/ActionsProvider';\n\nconst SystemJobsActions = ActionsProvider.getActions('SystemJobs');\n\nconst StyledProgressBar = styled(ProgressBar)`\n margin-top: 2px;\n margin-bottom: 5px;\n`;\n\nconst JobWrap = styled.div`\n line-height: 1.5;\n margin-bottom: 5px;\n`;\n\nclass SystemJob extends React.Component {\n static propTypes = {\n job: PropTypes.shape({\n info: PropTypes.string,\n id: PropTypes.string,\n percent_complete: PropTypes.number,\n is_cancelable: PropTypes.bool,\n name: PropTypes.string,\n node_id: PropTypes.string,\n started_at: PropTypes.string,\n }).isRequired,\n }\n\n _onCancel = (job) => {\n return (e) => {\n e.preventDefault();\n\n // eslint-disable-next-line no-alert\n if (window.confirm(`Are you sure you want to cancel system job \"${job.info}\"?`)) {\n SystemJobsActions.cancelJob(job.id);\n }\n };\n };\n\n render() {\n const { job } = this.props;\n const progress = job.percent_complete < 100\n ? \n : Finished!;\n const cancel = job.is_cancelable\n ? () : null;\n\n return (\n
\n \n {' '}\n {job.info}{' '}\n - Started on {' '}\n {' '}\n {cancel}\n \n\n {progress}\n
\n );\n }\n}\n\nexport default SystemJob;\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 React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Col, Row } from 'components/graylog';\nimport connect from 'stores/connect';\nimport CombinedProvider from 'injection/CombinedProvider';\nimport { Spinner } from 'components/common';\nimport { SystemJobsList } from 'components/systemjobs';\n\nconst { SystemJobsStore, SystemJobsActions } = CombinedProvider.get('SystemJobs');\n\nconst SystemJobsComponent = ({ jobs }) => {\n useEffect(() => {\n SystemJobsActions.list();\n const interval = setInterval(SystemJobsActions.list, 2000);\n\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n if (!jobs) {\n return ;\n }\n\n const jobList = Object.keys(jobs)\n .map((nodeId) => (jobs[nodeId] ? jobs[nodeId].jobs : []))\n .reduce((a, b) => a.concat(b), []);\n\n return (\n \n \n

System jobs

\n

\n A system job is a long-running task a graylog-server node executes for maintenance reasons. Some jobs\n provide progress information or can be stopped.\n

\n\n \n \n
\n );\n};\n\nSystemJobsComponent.propTypes = {\n jobs: PropTypes.objectOf(\n PropTypes.shape({\n jobs: PropTypes.array,\n }),\n ),\n};\n\nSystemJobsComponent.defaultProps = {\n jobs: undefined,\n};\n\nexport default connect(SystemJobsComponent,\n { systemJobsStore: SystemJobsStore },\n ({ systemJobsStore }) => ({ jobs: systemJobsStore.jobs }));\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, { css } from 'styled-components';\n\nimport { Alert } from 'components/graylog';\nimport { Icon } from 'components/common';\nimport { SystemJob } from 'components/systemjobs';\n\nconst SystemJobWrap = styled.div(({ theme }) => css`\n margin-top: 10px;\n border-bottom: 1px solid ${theme.colors.gray[80]};\n\n .progress {\n margin-top: 2px;\n margin-bottom: 5px;\n }\n\n .finished {\n display: none;\n position: relative;\n top: -1px;\n left: 2px;\n font-family: \"Arial\", sans-serif;\n font-size: ${theme.fonts.size.small};\n }\n`);\n\nconst StyledAlert = styled(Alert)`\n margin-top: 10px;\n`;\n\nclass SystemJobsList extends React.Component {\n static propTypes = {\n jobs: PropTypes.arrayOf(PropTypes.object).isRequired,\n };\n\n _formatSystemJob = (job) => {\n return (\n \n \n \n );\n };\n\n render() {\n const { jobs } = this.props;\n const formattedJobs = jobs.map(this._formatSystemJob);\n\n if (formattedJobs.length === 0) {\n return (\n \n {' '}\n  No active system jobs.\n \n );\n }\n\n return (\n \n {formattedJobs}\n \n );\n }\n}\n\nexport default SystemJobsList;\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';\n\nimport { LinkToNode } from 'components/common';\n\nclass SystemMessage extends React.Component {\n static propTypes = {\n message: PropTypes.object.isRequired,\n };\n\n render() {\n const { message } = this.props;\n\n return (\n \n {moment(message.timestamp).format()}\n \n \n \n {message.content}\n \n );\n }\n}\n\nexport default SystemMessage;\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 React from 'react';\n\nimport { Col, Row } from 'components/graylog';\nimport StoreProvider from 'injection/StoreProvider';\nimport { Pagination, Spinner } from 'components/common';\nimport { SystemMessagesList } from 'components/systemmessages';\n\nconst SystemMessagesStore = StoreProvider.getStore('SystemMessages');\n\nclass SystemMessagesComponent extends React.Component {\n PER_PAGE = 30;\n\n constructor(props) {\n super(props);\n\n this.state = { currentPage: 1 };\n }\n\n componentDidMount() {\n const { currentPage } = this.state;\n\n this.loadMessages(currentPage);\n\n this.interval = setInterval(() => {\n const { currentPage: page } = this.state;\n this.loadMessages(page);\n }, 1000);\n }\n\n componentWillUnmount() {\n clearInterval(this.interval);\n }\n\n loadMessages = (page) => {\n SystemMessagesStore.all(page).then((response) => {\n this.setState(response);\n });\n };\n\n _onSelected = (selectedPage) => {\n this.setState({ currentPage: selectedPage });\n this.loadMessages(selectedPage);\n };\n\n render() {\n const { currentPage, messages, total } = this.state;\n let content;\n\n if (total && messages) {\n const numberPages = Math.ceil(total / this.PER_PAGE);\n\n content = (\n
\n \n\n \n
\n );\n } else {\n content = ;\n }\n\n return (\n \n \n

System messages

\n\n

\n System messages are generated by graylog-server nodes on certain events that may be interesting for\n the Graylog administrators. You don't need to actively act upon any message in here because notifications\n will be raised for any events that required action.\n

\n\n {content}\n \n
\n );\n }\n}\n\nexport default SystemMessagesComponent;\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, { css } from 'styled-components';\n\nimport { Table } from 'components/graylog';\nimport { SystemMessage } from 'components/systemmessages';\n\nconst SystemMessagesTable = styled(Table)(({ theme }) => css`\n font-size: ${theme.fonts.size.body};\n\n a {\n color: ${theme.colors.global.textDefault};\n }\n`);\n\nconst TimestampTH = styled.th`\n width: 200px;\n`;\n\nconst SystemMessagesList = ({ messages }) => {\n return (\n \n \n \n Timestamp\n Node\n Message\n \n \n\n \n {messages.map((message) => )}\n \n \n );\n};\n\nSystemMessagesList.propTypes = {\n messages: PropTypes.arrayOf(PropTypes.object).isRequired,\n};\n\nexport default SystemMessagesList;\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 React from 'react';\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\nimport moment from 'moment';\n\nimport { Col, Row } from 'components/graylog';\nimport DateTime from 'logic/datetimes/DateTime';\nimport StoreProvider from 'injection/StoreProvider';\nimport { Spinner, Timestamp } from 'components/common';\n\nconst CurrentUserStore = StoreProvider.getStore('CurrentUser');\nconst SystemStore = StoreProvider.getStore('System');\n\nconst TimesList = createReactClass({\n displayName: 'TimesList',\n mixins: [Reflux.connect(CurrentUserStore), Reflux.connect(SystemStore)],\n\n getInitialState() {\n return { time: moment() };\n },\n\n componentDidMount() {\n this.interval = setInterval(() => this.setState(this.getInitialState()), 1000);\n },\n\n componentWillUnmount() {\n clearInterval(this.interval);\n },\n\n render() {\n if (!this.state.system) {\n return ;\n }\n\n const { time } = this.state;\n const timeFormat = DateTime.Formats.DATETIME_TZ;\n const { currentUser } = this.state;\n const serverTimezone = this.state.system.timezone;\n\n return (\n \n \n

Time configuration

\n\n

\n Dealing with timezones can be confusing. Here you can see the timezone applied to different components of your system.\n You can check timezone settings of specific graylog-server nodes on their respective detail page.\n

\n\n
\n
User {currentUser.username}:
\n
\n
Your web browser:
\n
\n
Graylog server:
\n
\n
\n \n
\n );\n },\n});\n\nexport default TimesList;\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 * as React from 'react';\n\nimport { DocumentTitle, IfPermitted } from 'components/common';\nimport { IndexerClusterHealth } from 'components/indexers';\nimport IndexerSystemOverviewComponent from 'components/indexers/IndexerSystemOverviewComponent';\nimport { NotificationsList } from 'components/notifications';\nimport { SystemJobsComponent } from 'components/systemjobs';\nimport { SystemMessagesComponent } from 'components/systemmessages';\nimport { TimesList } from 'components/times';\nimport { GraylogClusterOverview } from 'components/cluster';\nimport HideOnCloud from 'util/conditional/HideOnCloud';\n\nconst SystemOverviewPage = () => {\n return (\n \n \n \n \n \n\n \n \n \n \n \n\n \n\n \n \n \n \n\n \n \n \n \n\n \n\n \n \n \n \n \n );\n};\n\nexport default SystemOverviewPage;\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 React from 'react';\nimport numeral from 'numeral';\nimport moment from 'moment';\n\nimport { LinkContainer } from 'components/graylog/router';\nimport { Alert, Col, Row, Button } from 'components/graylog';\nimport { Icon, Spinner } from 'components/common';\nimport StoreProvider from 'injection/StoreProvider';\nimport DocsHelper from 'util/DocsHelper';\nimport Routes from 'routing/Routes';\nimport { SmallSupportLink, DocumentationLink } from 'components/support';\n\nconst IndexerFailuresStore = StoreProvider.getStore('IndexerFailures');\n\nclass IndexerFailuresComponent extends React.Component {\n state = {};\n\n componentDidMount() {\n const since = moment().subtract(24, 'hours');\n\n IndexerFailuresStore.count(since).then((response) => {\n this.setState({ total: response.count });\n });\n }\n\n _formatFailuresSummary = () => {\n return (\n \n {this._formatTextForFailureCount(this.state.total)}\n\n \n \n \n \n );\n };\n\n _formatTextForFailureCount = (count) => {\n if (count === 0) {\n return 'No failed indexing attempts in the last 24 hours.';\n }\n\n return There were {numeral(count).format('0,0')} failed indexing attempts in the last 24 hours.;\n };\n\n _iconForFailureCount = (count) => {\n if (count === 0) {\n return 'check-circle';\n }\n\n return 'ambulance';\n };\n\n render() {\n let content;\n\n if (this.state.total === undefined) {\n content = ;\n } else {\n content = this._formatFailuresSummary();\n }\n\n return (\n \n \n

Indexer failures

\n\n \n Every message that was not successfully indexed will be logged as an indexer failure. You can learn more about this feature in the{' '}\n .\n \n\n {content}\n \n
\n );\n }\n}\n\nexport default IndexerFailuresComponent;\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 */\nconst DEFAULT_TIMEOUT = 1000 / 10; // 10 fps\n\n/**\n * Use when an event handler should be called after a timeout, instead of every time the event is triggered.\n * This is specially useful for handling window resize callbacks that may be expensive.\n */\nclass EventHandlersThrottler {\n constructor() {\n this.eventMutex = null;\n }\n\n /**\n * @param eventHandler Callback actually handling the event\n * @param timeout (optional) Time to wait before calling the callback\n */\n throttle(eventHandler, timeout) {\n if (this.eventMutex) {\n return;\n }\n\n this.eventMutex = setTimeout(() => {\n this.eventMutex = null;\n eventHandler();\n }, timeout || DEFAULT_TIMEOUT);\n }\n}\n\nexport default EventHandlersThrottler;\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 React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport crossfilter from 'crossfilter';\n\nimport { Spinner } from 'components/common';\nimport GenericPlot from 'views/components/visualizations/GenericPlot';\n\ntype Props = {\n traffic: { [key: string]: number },\n width: number,\n};\n\nconst TrafficGraph = ({ width, traffic }: Props) => {\n if (!traffic) {\n return ;\n }\n\n const ndx = crossfilter(_.map(traffic, (value, key) => ({ ts: key, bytes: value })));\n const dailyTraffic = ndx.dimension((d) => moment(d.ts).format('YYYY-MM-DD'));\n\n const dailySums = dailyTraffic.group().reduceSum((d) => d.bytes);\n const t = _.mapKeys(dailySums.all(), (entry) => moment.utc(entry.key, 'YYYY-MM-DD').toISOString());\n const unixTraffic = _.mapValues(t, (val) => val.value);\n const chartData = [{\n type: 'bar',\n x: Object.keys(unixTraffic),\n y: Object.values(unixTraffic),\n }];\n const layout = {\n showlegend: false,\n margin: {\n l: 60,\n },\n xaxis: {\n type: 'date',\n title: {\n text: 'Time',\n },\n },\n yaxis: {\n title: {\n text: 'Bytes',\n },\n rangemode: 'tozero',\n hoverformat: '.4s',\n tickformat: 's',\n },\n };\n\n return (\n
\n \n
\n );\n};\n\nTrafficGraph.propTypes = {\n traffic: PropTypes.object.isRequired, // traffic is: {\"2017-11-15T15:00:00.000Z\": 68287229, ...}\n width: PropTypes.number.isRequired,\n};\n\nexport default TrafficGraph;\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 */\n/* eslint-disable react/no-find-dom-node */\n/* global window */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport createReactClass from 'create-react-class';\nimport ReactDOM from 'react-dom';\nimport Reflux from 'reflux';\nimport _ from 'lodash';\n\nimport { Col, Row } from 'components/graylog';\nimport { Spinner } from 'components/common';\nimport StoreProvider from 'injection/StoreProvider';\nimport ActionsProvider from 'injection/ActionsProvider';\nimport NumberUtils from 'util/NumberUtils';\nimport EventHandlersThrottler from 'util/EventHandlersThrottler';\n\nimport TrafficGraph from './TrafficGraph';\n\nconst ClusterTrafficStore = StoreProvider.getStore('ClusterTraffic');\nconst ClusterTrafficActions = ActionsProvider.getActions('ClusterTraffic');\nconst NodesStore = StoreProvider.getStore('Nodes');\n\nconst GraylogClusterOverview = createReactClass({\n displayName: 'GraylogClusterOverview',\n\n propTypes: {\n layout: PropTypes.oneOf(['default', 'compact']),\n children: PropTypes.node,\n },\n\n mixins: [Reflux.connect(NodesStore, 'nodes'), Reflux.connect(ClusterTrafficStore, 'traffic')],\n\n getDefaultProps() {\n return {\n layout: 'default',\n children: null,\n };\n },\n\n getInitialState() {\n return {\n graphWidth: 600,\n };\n },\n\n componentDidMount() {\n ClusterTrafficActions.traffic();\n window.addEventListener('resize', this._onResize);\n this._resizeGraphs();\n },\n\n componentWillUnmount() {\n window.removeEventListener('resize', this._onResize);\n },\n\n eventThrottler: new EventHandlersThrottler(),\n\n _onResize() {\n this.eventThrottler.throttle(() => this._resizeGraphs());\n },\n\n _resizeGraphs() {\n const domNode = ReactDOM.findDOMNode(this._container);\n\n this.setState({ graphWidth: domNode.clientWidth });\n },\n\n renderClusterInfo() {\n const { nodes } = this.state;\n\n let content = ;\n\n if (nodes) {\n content = (\n
\n
Cluster ID:
\n
{nodes.clusterId || 'Not available'}
\n
Number of nodes:
\n
{nodes.nodeCount}
\n
\n );\n }\n\n return content;\n },\n\n renderTrafficGraph() {\n const { traffic, graphWidth } = this.state;\n\n let sumOutput = null;\n let trafficGraph = ;\n\n if (traffic) {\n const bytesOut = _.reduce(traffic.output, (result, value) => result + value);\n\n sumOutput = Last 30 days: {NumberUtils.formatBytes(bytesOut)};\n\n trafficGraph = (\n \n );\n }\n\n return (\n <>\n

{ this._container = container; }} style={{ marginBottom: 10 }}>Outgoing traffic {sumOutput}

\n {trafficGraph}\n \n );\n },\n\n renderHeader() {\n return

Graylog cluster

;\n },\n\n renderDefaultLayout() {\n const { children } = this.props;\n\n return (\n \n \n {this.renderHeader()}\n {this.renderClusterInfo()}\n
\n {children}\n \n \n {this.renderTrafficGraph()}\n \n \n \n
\n );\n },\n\n renderCompactLayout() {\n const { children } = this.props;\n\n return (\n \n \n {this.renderHeader()}\n \n \n {this.renderClusterInfo()}\n
\n {children}\n \n \n {this.renderTrafficGraph()}\n \n
\n \n
\n );\n },\n\n render() {\n const { layout } = this.props;\n\n switch (layout) {\n case 'compact':\n return this.renderCompactLayout();\n default:\n return this.renderDefaultLayout();\n }\n },\n});\n\nexport default GraylogClusterOverview;\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 React from 'react';\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\n\nimport { Row, Col } from 'components/graylog';\nimport StoreProvider from 'injection/StoreProvider';\nimport { Spinner } from 'components/common';\nimport { DocumentationLink, SmallSupportLink } from 'components/support';\nimport DocsHelper from 'util/DocsHelper';\nimport { IndexerClusterHealthSummary } from 'components/indexers';\n\nconst IndexerClusterStore = StoreProvider.getStore('IndexerCluster');\n\nconst IndexerClusterHealth = createReactClass({\n displayName: 'IndexerClusterHealth',\n mixins: [Reflux.connect(IndexerClusterStore)],\n\n componentDidMount() {\n IndexerClusterStore.update();\n },\n\n render() {\n const { health } = this.state;\n\n let content;\n\n if (health) {\n content = ;\n } else {\n content = ;\n }\n\n return (\n \n \n

Elasticsearch cluster

\n\n \n The possible Elasticsearch cluster states and more related information is available in the{' '}\n .\n \n\n {content}\n \n
\n );\n },\n});\n\nexport default IndexerClusterHealth;\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 { Alert } from 'components/graylog';\nimport { Icon } from 'components/common';\nimport { DocumentationLink } from 'components/support';\nimport DocsHelper from 'util/DocsHelper';\n\nconst ESClusterStatus = styled(Alert)`\n margin-top: 10px;\n margin-bottom: 5px;\n`;\n\nclass IndexerClusterHealthSummary extends React.Component {\n static propTypes = {\n health: PropTypes.object.isRequired,\n };\n\n _formatHealthStatus = ({ status }) => {\n return status.toLowerCase();\n };\n\n _alertClassForHealth = (health) => {\n switch (this._formatHealthStatus(health)) {\n case 'green': return 'success';\n case 'yellow': return 'warning';\n case 'red': return 'danger';\n default: return 'success';\n }\n };\n\n _formatTextForHealth = (health) => {\n const text = `Elasticsearch cluster is ${this._formatHealthStatus(health)}.`;\n\n switch (this._formatHealthStatus(health)) {\n case 'green': return text;\n case 'yellow':\n case 'red': return {text};\n default: return text;\n }\n };\n\n _iconNameForHealth = (health) => {\n switch (this._formatHealthStatus(health)) {\n case 'green': return 'check-circle';\n case 'yellow': return 'exclamation-triangle';\n case 'red': return 'ambulance';\n default: return 'check-circle';\n }\n };\n\n render() {\n const { health } = this.props;\n\n return (\n \n  {this._formatTextForHealth(health)}{' '}\n Shards:{' '}\n {health.shards.active} active,{' '}\n {health.shards.initializing} initializing,{' '}\n {health.shards.relocating} relocating,{' '}\n {health.shards.unassigned} unassigned,{' '}\n \n \n );\n }\n}\n\nexport default IndexerClusterHealthSummary;\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 { Timestamp } from 'components/common';\n\nclass IndexerFailure extends React.Component {\n static propTypes = {\n failure: PropTypes.object.isRequired,\n };\n\n render() {\n const { failure } = this.props;\n\n return (\n \n \n {failure.index}\n {failure.letter_id}\n {failure.message}\n \n );\n }\n}\n\nexport default IndexerFailure;\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, Table } from 'components/graylog';\nimport { Icon } from 'components/common';\nimport { IndexerFailure } from 'components/indexers';\n\nclass IndexerFailuresList extends React.Component {\n static propTypes = {\n failures: PropTypes.arrayOf(PropTypes.object).isRequired,\n };\n\n render() {\n if (this.props.failures.length === 0) {\n return (\n Hurray! There are not any indexer failures.\n );\n }\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n {this.props.failures.map((failure) => )}\n \n
TimestampIndexLetter IDError message
\n
\n );\n }\n}\n\nexport default IndexerFailuresList;\n"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy