web-interface.assets.07ba022f-4594.541e74a1ace3136128e4.js.map Maven / Gradle / Ivy
{"version":3,"file":"07ba022f-4594.541e74a1ace3136128e4.js","mappings":"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","sources":["webpack://graylog-web-interface/./src/components/sidecars/common/SidecarSearchForm.css","webpack://graylog-web-interface/./src/components/sidecars/common/StatusIndicator.css","webpack://graylog-web-interface/./src/components/common/PageNavigation.tsx","webpack://graylog-web-interface/./src/components/sidecars/common/SidecarSearchForm.css?304c","webpack://graylog-web-interface/./src/components/sidecars/common/SidecarSearchForm.jsx","webpack://graylog-web-interface/./src/components/sidecars/common/SidecarsPageNavigation.tsx","webpack://graylog-web-interface/./src/components/sidecars/common/StatusIndicator.css?492e","webpack://graylog-web-interface/./src/components/sidecars/common/StatusIndicator.tsx","webpack://graylog-web-interface/./src/components/sidecars/sidecars/VerboseMessageModal.jsx","webpack://graylog-web-interface/./src/logic/sidecar/SidecarStatusEnum.js","webpack://graylog-web-interface/./src/components/sidecars/failure-tracking/SidecarFailureTrackingRows.tsx","webpack://graylog-web-interface/./src/components/sidecars/failure-tracking/SidecarFailureTrackingList.tsx","webpack://graylog-web-interface/./src/components/sidecars/failure-tracking/SidecarFailureTrackingListContainer.tsx","webpack://graylog-web-interface/./src/pages/SidecarFailureTrackingPage.tsx","webpack://graylog-web-interface/./src/stores/sidecars/CollectorsStore.js","webpack://graylog-web-interface/./src/stores/sidecars/SidecarsStore.js","webpack://graylog-web-interface/./node_modules/lodash/lowerCase.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.popover.i3CKk4UXmnkyBYYZ5r2x {\n max-width: 500px;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/sidecars/common/SidecarSearchForm.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,gBAAgB;AACpB\",\"sourcesContent\":[\".popover:local(.popoverWide) {\\n max-width: 500px;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"popoverWide\": `i3CKk4UXmnkyBYYZ5r2x`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.xUMQPeRwYREG_QMMJHzD {\n white-space: nowrap;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/sidecars/common/StatusIndicator.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,mBAAmB;AACvB\",\"sourcesContent\":[\":local(.indicator) {\\n white-space: nowrap;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"indicator\": `xUMQPeRwYREG_QMMJHzD`\n};\nexport default ___CSS_LOADER_EXPORT___;\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';\nimport styled, { css } from 'styled-components';\n\nimport { Button, ButtonToolbar } from 'components/bootstrap';\nimport { LinkContainer } from 'components/common/router';\nimport { IfPermitted } from 'components/common';\nimport NavItemStateIndicator, {\n hoverIndicatorStyles,\n activeIndicatorStyles,\n} from 'components/common/NavItemStateIndicator';\n\nconst Container = styled(ButtonToolbar)`\n margin-bottom: 10px;\n`;\n\nconst StyledButton = styled(Button)(({ theme }) => css`\n font-family: ${theme.fonts.family.navigation};\n font-size: ${theme.fonts.size.navigation};\n\n &&&& {\n color: ${theme.colors.variant.darker.default};\n \n &:hover,\n &:focus {\n text-decoration: none;\n }\n\n > div {\n &:hover,\n &:focus {\n color: ${theme.colors.variant.darker.default};\n }\n }\n\n &:hover {\n ${hoverIndicatorStyles(theme)}\n }\n\n &.active {\n color: ${theme.colors.global.textDefault};\n\n ${activeIndicatorStyles(theme)}\n\n &:hover,\n &:focus {\n ${activeIndicatorStyles(theme)}\n }\n }\n }\n`);\n\nStyledButton.displayName = 'Button';\n\ntype Props = {\n /**\n * List of nav items. Define permissions, if the item should only be displayed for users with specific permissions.\n * By default, an item is active if the current URL starts with the item URL.\n * If you only want to display an item as active only when its path matches exactly, set `exactPathMatch` to true.\n */\n items: Array<{\n title: string,\n path: string,\n permissions?: string | Array\n exactPathMatch?: boolean,\n }>\n}\n\n/**\n * Simple tab navigation to allow navigating to subareas of a page.\n */\nconst PageNavigation = ({ items }: Props) => (\n \n {items.map(({ path, title, permissions, exactPathMatch }) => {\n if (!path) {\n return null;\n }\n\n return (\n \n \n \n \n {title}\n \n \n \n \n );\n })}\n \n);\n\nexport default PageNavigation;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./SidecarSearchForm.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./SidecarSearchForm.css\";\n export default content && content.locals ? content.locals : undefined;\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';\n\nimport { OverlayTrigger, SearchForm, Icon } from 'components/common';\nimport { Popover, Table, Button } from 'components/bootstrap';\n\nimport style from './SidecarSearchForm.css';\n\nconst queryHelpPopover = (\n \n Available search fields
\n \n \n \n Field \n Description \n \n \n \n \n name \n Sidecar name \n \n \n status \n Status of the sidecar as it appears in the list, i.e. running, failing, or unknown \n \n \n operating_system \n Operating system the sidecar is running on \n \n \n last_seen \n Date and time when the sidecar last communicated with Graylog \n \n \n node_id \n Identifier of the sidecar \n \n \n sidecar_version \n Sidecar version \n \n \n
\n Examples
\n \n Find sidecars that did not communicate with Graylog since a date:
\n {'last_seen:<=2018-04-10'}
\n
\n \n Find sidecars with failing
or unknown
status:
\n status:failing status:unknown
\n
\n \n);\n\nconst queryHelp = (\n \n \n \n);\n\nconst SidecarSearchForm = ({ query, onSearch, onReset, children }) => (\n \n {children}\n \n);\n\nSidecarSearchForm.propTypes = {\n query: PropTypes.string.isRequired,\n onSearch: PropTypes.func.isRequired,\n onReset: PropTypes.func.isRequired,\n children: PropTypes.element,\n};\n\nSidecarSearchForm.defaultProps = {\n children: undefined,\n};\n\nexport default SidecarSearchForm;\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 PageNavigation from 'components/common/PageNavigation';\nimport Routes from 'routing/Routes';\nimport { Row } from 'components/bootstrap';\n\nconst NAV_ITEMS = [\n { title: 'Overview', path: Routes.SYSTEM.SIDECARS.OVERVIEW, exactPathMatch: true },\n { title: 'Administration', path: Routes.SYSTEM.SIDECARS.ADMINISTRATION },\n { title: 'Configuration', path: Routes.SYSTEM.SIDECARS.CONFIGURATION },\n { title: 'Failure Tracking', path: Routes.SYSTEM.SIDECARS.FAILURE_TRACKING },\n];\n\nconst SidecarsPageNavigation = () => (\n \n \n
\n);\n\nexport default SidecarsPageNavigation;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./StatusIndicator.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./StatusIndicator.css\";\n export default content && content.locals ? content.locals : undefined;\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 upperFirst from 'lodash/upperFirst';\n\nimport { Popover } from 'components/bootstrap';\nimport { OverlayTrigger, Icon } from 'components/common';\nimport SidecarStatusEnum from 'logic/sidecar/SidecarStatusEnum';\nimport { relativeDifference } from 'util/DateTime';\nimport useUserDateTime from 'hooks/useUserDateTime';\n\nimport style from './StatusIndicator.css';\n\ntype Props = {\n message: string,\n status: number,\n lastSeen: string,\n id: string,\n}\n\nconst StatusIndicator = ({ message: messageProp, status, lastSeen, id }: Props) => {\n const { toUserTimezone } = useUserDateTime();\n let message = messageProp;\n const text = upperFirst(SidecarStatusEnum.toString(status));\n const lastSeenDateTime = toUserTimezone(lastSeen);\n\n let icon;\n let className;\n\n switch (status) {\n case SidecarStatusEnum.RUNNING:\n className = 'text-success';\n icon = 'play';\n break;\n case SidecarStatusEnum.FAILING:\n className = 'text-danger';\n icon = 'exclamation-triangle';\n break;\n case SidecarStatusEnum.STOPPED:\n className = 'text-danger';\n icon = 'stop';\n break;\n default:\n className = 'text-info';\n icon = 'question-circle';\n message += ` (${relativeDifference(lastSeenDateTime)})`;\n }\n\n if (message && id) {\n const popover = (\n \n {message}\n \n );\n\n return (\n \n \n {text}\n \n \n );\n }\n\n return (\n \n {text}\n \n );\n};\n\nStatusIndicator.propTypes = {\n id: PropTypes.string,\n lastSeen: PropTypes.string,\n message: PropTypes.string,\n status: PropTypes.number,\n};\n\nStatusIndicator.defaultProps = {\n id: '',\n lastSeen: undefined,\n message: '',\n status: -1,\n};\n\nexport default StatusIndicator;\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 { Modal, Button } from 'components/bootstrap';\nimport BootstrapModalWrapper from 'components/bootstrap/BootstrapModalWrapper';\n\nconst VerboseMessage = styled.div`\n word-break: break-all;\n overflow-wrap: break-word;\n white-space: pre-wrap;\n max-height: 500px;\n`;\n\nconst VerboseMessageModal = ({ showModal, onHide, collectorName, collectorVerbose }) => (\n \n \n Error Details for {collectorName} \n \n \n \n \n {collectorVerbose || ''}\n \n
\n \n \n \n \n \n);\n\nVerboseMessageModal.propTypes = {\n showModal: PropTypes.bool.isRequired,\n onHide: PropTypes.func.isRequired,\n collectorName: PropTypes.string.isRequired,\n collectorVerbose: PropTypes.string.isRequired,\n};\n\nexport default VerboseMessageModal;\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 lowerCase from 'lodash/lowerCase';\nimport toNumber from 'lodash/toNumber';\n\nconst SidecarStatusEnum = {\n RUNNING: 0,\n UNKNOWN: 1,\n FAILING: 2,\n STOPPED: 3,\n properties: {\n 0: { name: 'running' },\n 1: { name: 'unknown' },\n 2: { name: 'failing' },\n 3: { name: 'stopped' },\n },\n\n isValidStatusCode(statusCode) {\n return Object.keys(this.properties).includes(String(statusCode));\n },\n\n toStatusCode(stringStatus) {\n const status = lowerCase(stringStatus);\n\n if (status === this.properties[this.RUNNING].name) {\n return this.RUNNING;\n }\n\n if (status === this.properties[this.FAILING].name) {\n return this.FAILING;\n }\n\n if (status === this.properties[this.STOPPED].name) {\n return this.STOPPED;\n }\n\n return this.UNKNOWN;\n },\n\n toString(statusCode) {\n switch (toNumber(statusCode)) {\n case this.RUNNING:\n return 'running';\n case this.FAILING:\n return 'failing';\n case this.STOPPED:\n return 'stopped';\n default:\n return 'unknown';\n }\n },\n};\n\nexport default SidecarStatusEnum;\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';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Link } from 'components/common/router';\nimport RelativeTime from 'components/common/RelativeTime';\nimport Routes from 'routing/Routes';\nimport StatusIndicator from 'components/sidecars/common/StatusIndicator';\nimport { Button } from 'components/bootstrap';\n\nimport type { Collector, SidecarSummary } from '../types';\n\nconst VerboseMessageContainer = styled.div`\n height: 80px;\n overflow: hidden scroll;\n white-space: pre-wrap;\n margin-bottom: 6px;\n`;\n\nconst SecondaryText = styled.div`\n color: #94979c;\n font-style: italic;\n font-size: 66%;\n`;\n\nconst ShowDetailsLink = styled(Button)`\n padding-left: 0;\n`;\n\ntype Props = {\n sidecar: SidecarSummary,\n collectors: Collector[],\n onShowDetails: (obj: { name: string, verbose_message: string }) => void,\n}\n\nconst SidecarFailureTrackingRows = ({ sidecar, collectors, onShowDetails }: Props) => {\n const annotation = sidecar.active ? '' : ' (inactive)';\n const {\n node_id = null,\n node_name,\n last_seen,\n node_details: {\n status: {\n message = null,\n status = undefined,\n collectors: collectorStatusList,\n } = {},\n } = {},\n } = sidecar;\n\n const getCollectorInformation = (collectorId: string) => collectors.find((collector) => collector.id === collectorId);\n\n return (\n\n (\n <>\n {collectorStatusList?.filter((collector) => collector.status === 2).map((collector) => {\n const collectorData = getCollectorInformation(collector.collector_id);\n\n return (\n \n \n \n {node_name}\n \n {annotation} \n {collectorData?.node_operating_system} \n v{sidecar.sidecar_version} \n {sidecar.node_id} \n \n \n {collectorData?.name}\n \n \n \n \n \n \n \n \n {collector.message}\n \n \n \n {collector.verbose_message}\n \n onShowDetails({ name: collectorData?.name, verbose_message: collector.verbose_message })}>\n Show more\n \n \n \n );\n })}\n >\n )\n );\n};\n\nSidecarFailureTrackingRows.propTypes = {\n sidecar: PropTypes.object.isRequired,\n};\n\nexport default SidecarFailureTrackingRows;\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';\nimport { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Button, Col, Row, Table } from 'components/bootstrap';\nimport { PaginatedList, NoSearchResult, NoEntitiesExist, SortIcon } from 'components/common';\nimport SidecarSearchForm from 'components/sidecars/common/SidecarSearchForm';\n\nimport SidecarFailureTrackingRows from './SidecarFailureTrackingRows';\n\nimport VerboseMessageModal from '../sidecars/VerboseMessageModal';\nimport type { Collector, PaginationInfo, SidecarSummary } from '../types';\n\nconst StyledSortIcon = styled(SortIcon)`\n && {\n width: 12px;\n margin-left: 5px;\n line-height: 1;\n }\n`;\n\nconst StandardWidthCol = styled.col`\n width: 9%;\n`;\n\nconst ErrorMessageCol = styled.col`\n width: 14%;\n`;\n\nconst VerboseMessageCol = styled.col`\n width: 50%;\n`;\ntype SortType = { field: string, order: string };\ntype Props = {\n sidecars: Array,\n collectors: Array,\n pagination: PaginationInfo,\n query: string,\n sort: SortType,\n onlyActive: boolean,\n onPageChange: (page: number, pageSize: number) => void,\n onQueryChange: (query: string) => void,\n onSortChange: (sortField: string) => void,\n toggleShowInactive: () => void,\n};\n\nconst NoMatchingListAlert = ({ onlyActive, query }: {onlyActive: boolean, query: string}) => {\n const showInactiveHint = onlyActive && ' and/or click on \"Include inactive sidecars\"';\n\n return (\n \n {`There are no sidecars with failures matching the search criteria. Try adjusting your search filter: ${query} ${showInactiveHint}`}\n \n );\n};\n\nconst SidecarTable = ({\n rows,\n sort,\n onSortChange,\n} : {\n rows: React.ReactNode[],\n sort: SortType,\n onSortChange:(sortField: string) => void,\n}) => {\n const columns = {\n node_name: 'Sidecar',\n collector: 'Collector',\n last_seen: 'Last Seen',\n 'node_details.status.status': 'Status',\n message: 'Error Message',\n verbose_message: 'Verbose Message',\n };\n const sortableColumns = ['node_name', 'last_seen'];\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n {Object.keys(columns).map((columnKey) => (\n \n {columns[columnKey]}\n {sortableColumns.includes(columnKey) && (\n onSortChange(columnKey)}\n title={columnKey}\n ascId=\"asc\"\n descId=\"desc\" />\n )}\n \n ))}\n \n \n \n {rows}\n \n
\n );\n};\n\nconst EmptyList = ({ query, onlyActive }: {query: string, onlyActive: boolean}) => {\n if (query) {\n return ;\n }\n\n return (\n \n There are no sidecars with failures.\n \n );\n};\n\nconst SidecarFailureTrackingList = ({\n sidecars,\n collectors,\n pagination,\n query,\n sort,\n onlyActive,\n onPageChange,\n onQueryChange,\n onSortChange,\n toggleShowInactive,\n}: Props) => {\n const [collectorDetailsToShow, setCollectorDetailsToShow] = useState<{ name: string, verbose_message: string }|null>(null);\n const sidecarRows = sidecars.map((sidecar) => );\n const showOrHideInactive = onlyActive ? 'Include' : 'Hide';\n\n return (\n \n \n \n \n \n \n\n \n \n \n {sidecarRows.length > 0\n ? \n : }\n \n
\n \n\n {collectorDetailsToShow && (\n setCollectorDetailsToShow(null)}\n collectorName={collectorDetailsToShow.name}\n collectorVerbose={collectorDetailsToShow.verbose_message} />\n )}\n \n );\n};\n\nSidecarFailureTrackingList.propTypes = {\n sidecars: PropTypes.array.isRequired,\n collectors: PropTypes.array.isRequired,\n pagination: PropTypes.object.isRequired,\n query: PropTypes.string.isRequired,\n sort: PropTypes.object.isRequired,\n onlyActive: PropTypes.bool.isRequired,\n onPageChange: PropTypes.func.isRequired,\n onQueryChange: PropTypes.func.isRequired,\n onSortChange: PropTypes.func.isRequired,\n toggleShowInactive: PropTypes.func.isRequired,\n};\n\nexport default SidecarFailureTrackingList;\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';\nimport { useState, useEffect } from 'react';\n\nimport { Spinner } from 'components/common';\nimport { SidecarsActions } from 'stores/sidecars/SidecarsStore';\nimport usePaginationQueryParameter from 'hooks/usePaginationQueryParameter';\nimport { CollectorsActions } from 'stores/sidecars/CollectorsStore';\n\nimport SidecarFailureTrackingList from './SidecarFailureTrackingList';\n\nimport type { Collector, SidecarListResponse } from '../types';\n\ntype SidecarsArgs = {\n page?: number,\n pageSize?: number,\n query?: string,\n sortField?: string,\n order?: string,\n onlyActive?: boolean,\n}\n\nconst PAGE_SIZES = [25];\n\nconst SIDECARS_DEFAULT_ARGS: SidecarsArgs = {\n page: 1,\n pageSize: PAGE_SIZES[0],\n query: '',\n sortField: 'last_seen',\n order: 'desc',\n onlyActive: false,\n};\n\nconst fetchSidecars = (options: SidecarsArgs, callback: (data: SidecarListResponse) => void) => {\n const {\n page = SIDECARS_DEFAULT_ARGS.page,\n pageSize = SIDECARS_DEFAULT_ARGS.pageSize,\n query = SIDECARS_DEFAULT_ARGS.query,\n sortField = SIDECARS_DEFAULT_ARGS.sortField,\n order = SIDECARS_DEFAULT_ARGS.order,\n onlyActive = SIDECARS_DEFAULT_ARGS.onlyActive,\n } = options;\n\n return SidecarsActions.listPaginated({\n page,\n pageSize,\n query,\n sortField,\n order,\n onlyActive,\n }).then(callback);\n};\n\nconst SidecarFailureTrackingListContainer = () => {\n const { page, pageSize, resetPage } = usePaginationQueryParameter(PAGE_SIZES);\n const [sidecarData, setSidecarData] = useState(null);\n const [collectors, setCollectors] = useState([]);\n\n useEffect(() => {\n if (sidecarData?.pagination.page !== page || sidecarData?.pagination.per_page !== pageSize) {\n const { query, sort, order, only_active } = sidecarData || {};\n fetchSidecars({ query, page, pageSize, order, sortField: sort, onlyActive: only_active }, setSidecarData);\n }\n }, [page, pageSize, sidecarData]);\n\n useEffect(() => {\n CollectorsActions.all().then((response) => setCollectors(response.collectors));\n }, []);\n\n const previousSidecarArgs: SidecarsArgs = {\n page: 1,\n pageSize,\n query: sidecarData?.query,\n sortField: sidecarData?.sort,\n order: sidecarData?.order,\n onlyActive: sidecarData?.only_active,\n };\n\n const handlePageChange = (_page: number, _pageSize: number) => {\n fetchSidecars({ ...previousSidecarArgs, page: _page, pageSize: _pageSize }, setSidecarData);\n };\n\n const handleQueryChange = (_query: string = '', callback = () => {}) => {\n fetchSidecars({ ...previousSidecarArgs, query: _query }, setSidecarData).then(resetPage).finally(callback);\n };\n\n const handleSortChange = (sortField: string) => {\n fetchSidecars({ ...previousSidecarArgs, sortField, order: sidecarData.order === 'asc' ? 'desc' : 'asc' }, setSidecarData).then(resetPage);\n };\n\n const toggleShowInactive = () => {\n fetchSidecars({ ...previousSidecarArgs, onlyActive: !sidecarData.only_active }, setSidecarData).then(resetPage);\n };\n\n const isLoading = !sidecarData;\n\n if (isLoading) {\n return ;\n }\n\n return (\n \n );\n};\n\nexport default SidecarFailureTrackingListContainer;\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 { Col, Row } from 'components/bootstrap';\nimport { DocumentTitle, PageHeader } from 'components/common';\nimport DocsHelper from 'util/DocsHelper';\nimport SidecarsPageNavigation from 'components/sidecars/common/SidecarsPageNavigation';\nimport SidecarFailureTrackingListContainer from 'components/sidecars/failure-tracking/SidecarFailureTrackingListContainer';\n\nconst SidecarFailureTrackingPage = () => (\n \n \n \n \n The Graylog Sidecar Failure Tracking provides additional useful information about failure reasons, that can help you decrease troubleshooting time and get your collectors back online faster.\n \n \n\n \n \n \n \n
\n \n);\n\nexport default SidecarFailureTrackingPage;\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 Reflux from 'reflux';\nimport URI from 'urijs';\nimport merge from 'lodash/merge';\n\nimport * as URLUtils from 'util/URLUtils';\nimport fetch from 'logic/rest/FetchProvider';\nimport UserNotification from 'util/UserNotification';\nimport { singletonStore, singletonActions } from 'logic/singleton';\n\nexport const CollectorsActions = singletonActions(\n 'core.Collectors',\n () => Reflux.createActions({\n getCollector: { asyncResult: true },\n all: { asyncResult: true },\n list: { asyncResult: true },\n create: { asyncResult: true },\n update: { asyncResult: true },\n delete: { asyncResult: true },\n copy: { asyncResult: true },\n validate: { asyncResult: true },\n }),\n);\n\nexport const CollectorsStore = singletonStore(\n 'core.Collectors',\n () => Reflux.createStore({\n listenables: [CollectorsActions],\n sourceUrl: '/sidecar',\n collectors: undefined,\n query: undefined,\n pagination: {\n page: undefined,\n pageSize: undefined,\n total: undefined,\n },\n total: undefined,\n paginatedCollectors: undefined,\n\n getInitialState() {\n return {\n collectors: this.collectors,\n };\n },\n\n propagateChanges() {\n this.trigger({\n collectors: this.collectors,\n paginatedCollectors: this.paginatedCollectors,\n query: this.query,\n total: this.total,\n pagination: this.pagination,\n });\n },\n\n getCollector(collectorId) {\n const promise = fetch('GET', URLUtils.qualifyUrl(`${this.sourceUrl}/collectors/${collectorId}`));\n\n promise.catch((error) => {\n let errorMessage = `Fetching Collector failed with status: ${error}`;\n\n if (error.status === 404) {\n errorMessage = `Unable to find a collector with ID <${collectorId}>, please ensure it was not deleted.`;\n }\n\n UserNotification.error(errorMessage, 'Could not retrieve Collector');\n });\n\n CollectorsActions.getCollector.promise(promise);\n },\n\n _fetchCollectors({ query, page, pageSize }) {\n const search = {\n query: query,\n page: page,\n per_page: pageSize,\n };\n\n const uri = URI(`${this.sourceUrl}/collectors/summary`).search(search).toString();\n\n return fetch('GET', URLUtils.qualifyUrl(uri));\n },\n\n all() {\n const promise = this._fetchCollectors({ pageSize: 0 });\n\n promise\n .then(\n (response) => {\n this.collectors = response.collectors;\n this.propagateChanges();\n\n return response.collectors;\n },\n (error) => {\n UserNotification.error(`Fetching collectors failed with status: ${error}`,\n 'Could not retrieve collectors');\n },\n );\n\n CollectorsActions.all.promise(promise);\n },\n\n list({ query = '', page = 1, pageSize = 10 }) {\n const promise = this._fetchCollectors({ query: query, page: page, pageSize: pageSize });\n\n promise\n .then(\n (response) => {\n this.query = response.query;\n\n this.pagination = {\n page: response.pagination.page,\n pageSize: response.pagination.per_page,\n total: response.pagination.total,\n };\n\n this.total = response.total;\n this.paginatedCollectors = response.collectors;\n\n this.propagateChanges();\n\n return response.collectors;\n },\n (error) => {\n UserNotification.error(`Fetching collectors failed with status: ${error}`,\n 'Could not retrieve collectors');\n },\n );\n\n CollectorsActions.list.promise(promise);\n },\n\n refreshList() {\n this.list({ query: this.query, page: this.pagination.page, pageSize: this.pagination.pageSize });\n },\n\n create(collector) {\n const promise = fetch('POST', URLUtils.qualifyUrl(`${this.sourceUrl}/collectors`), collector);\n\n promise\n .then(\n (response) => {\n UserNotification.success('', 'Collector successfully created');\n this.collectors = response.collectors;\n this.propagateChanges();\n\n return this.collectors;\n },\n (error) => {\n UserNotification.error(`Fetching collectors failed with status: ${error}`,\n 'Could not retrieve collectors');\n },\n );\n\n CollectorsActions.create.promise(promise);\n },\n\n update(collector) {\n const promise = fetch('PUT', URLUtils.qualifyUrl(`${this.sourceUrl}/collectors/${collector.id}`), collector);\n\n promise\n .then(\n (response) => {\n UserNotification.success('', 'Collector successfully updated');\n this.collectors = response.collectors;\n this.propagateChanges();\n\n return this.collectors;\n },\n (error) => {\n UserNotification.error(`Fetching collectors failed with status: ${error}`,\n 'Could not retrieve collectors');\n },\n );\n\n CollectorsActions.update.promise(promise);\n },\n\n delete(collector) {\n const url = URLUtils.qualifyUrl(`${this.sourceUrl}/collectors/${collector.id}`);\n const promise = fetch('DELETE', url);\n\n promise\n .then((response) => {\n UserNotification.success('', `Collector \"${collector.name}\" successfully deleted`);\n this.refreshList();\n\n return response;\n }, (error) => {\n UserNotification.error(`Deleting Collector failed: ${error.status === 400 ? error.responseMessage : error.message}`,\n `Could not delete Collector \"${collector.name}\"`);\n });\n\n CollectorsActions.delete.promise(promise);\n },\n\n copy(collectorId, name) {\n const url = URLUtils.qualifyUrl(`${this.sourceUrl}/collectors/${collectorId}/${name}`);\n const method = 'POST';\n\n const promise = fetch(method, url);\n\n promise\n .then((response) => {\n UserNotification.success('', `Collector \"${name}\" successfully copied`);\n this.refreshList();\n\n return response;\n }, (error) => {\n UserNotification.error(`Saving collector \"${name}\" failed with status: ${error.message}`,\n 'Could not save Collector');\n });\n\n CollectorsActions.copy.promise(promise);\n },\n\n validate(collector) {\n // set minimum api defaults for faster validation feedback\n const payload = {\n id: ' ',\n service_type: 'exec',\n executable_path: ' ',\n default_template: ' ',\n };\n\n merge(payload, collector);\n\n const promise = fetch('POST', URLUtils.qualifyUrl(`${this.sourceUrl}/collectors/validate`), payload);\n\n promise\n .then(\n (response) => response,\n (error) => (\n UserNotification.error(`Validating collector \"${payload.name}\" failed with status: ${error.message}`,\n 'Could not validate collector')\n ),\n );\n\n CollectorsActions.validate.promise(promise);\n },\n }),\n);\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 Reflux from 'reflux';\nimport URI from 'urijs';\n\nimport * as URLUtils from 'util/URLUtils';\nimport UserNotification from 'util/UserNotification';\nimport fetch, { fetchPeriodically } from 'logic/rest/FetchProvider';\nimport { singletonStore, singletonActions } from 'logic/singleton';\n\nexport const SidecarsActions = singletonActions(\n 'core.Sidecars',\n () => Reflux.createActions({\n listPaginated: { asyncResult: true },\n getSidecar: { asyncResult: true },\n getSidecarActions: { asyncResult: true },\n restartCollector: { asyncResult: true },\n assignConfigurations: { asyncResult: true },\n }),\n);\n\nexport const SidecarsStore = singletonStore(\n 'core.Sidecars',\n () => Reflux.createStore({\n listenables: [SidecarsActions],\n sourceUrl: '/sidecars',\n sidecars: undefined,\n onlyActive: undefined,\n pagination: {\n count: undefined,\n page: undefined,\n pageSize: undefined,\n total: undefined,\n },\n query: undefined,\n sort: {\n field: undefined,\n order: undefined,\n },\n\n init() {\n this.propagateChanges();\n },\n\n propagateChanges() {\n this.trigger({\n sidecars: this.sidecars,\n query: this.query,\n onlyActive: this.onlyActive,\n pagination: this.pagination,\n sort: this.sort,\n });\n },\n\n listPaginated({ query = '', page = 1, pageSize = 50, onlyActive = false, sortField = 'node_name', order = 'asc' }) {\n const search = {\n query: query,\n page: page,\n per_page: pageSize,\n only_active: onlyActive,\n sort: sortField,\n order: order,\n };\n\n const uri = URI(this.sourceUrl).search(search).toString();\n const promise = fetchPeriodically('GET', URLUtils.qualifyUrl(uri));\n\n promise.then(\n (response) => {\n this.sidecars = response.sidecars;\n this.query = response.query;\n this.onlyActive = response.only_active;\n\n this.pagination = {\n total: response.pagination.total,\n count: response.pagination.count,\n page: response.pagination.page,\n pageSize: response.pagination.per_page,\n };\n\n this.sort = {\n field: response.sort,\n order: response.order,\n };\n\n this.propagateChanges();\n\n return response;\n },\n (error) => {\n UserNotification.error(error.status === 400 ? error.responseMessage : `Fetching Sidecars failed with status: ${error.message}`,\n 'Could not retrieve Sidecars');\n },\n );\n\n SidecarsActions.listPaginated.promise(promise);\n },\n\n getSidecar(sidecarId) {\n const promise = fetchPeriodically('GET', URLUtils.qualifyUrl(`${this.sourceUrl}/${sidecarId}`));\n\n promise.catch((error) => {\n let errorMessage = `Fetching Sidecar failed with status: ${error}`;\n\n if (error.status === 404) {\n errorMessage = `Unable to find a sidecar with ID <${sidecarId}>, maybe it was inactive for too long.`;\n }\n\n UserNotification.error(errorMessage, 'Could not retrieve Sidecar');\n });\n\n SidecarsActions.getSidecar.promise(promise);\n },\n\n restartCollector(sidecarId, collector) {\n const action = {};\n\n action.collector = collector;\n action.properties = {};\n action.properties.restart = true;\n const promise = fetch('PUT', URLUtils.qualifyUrl(`${this.sourceUrl}/${sidecarId}/action`), [action]);\n\n promise\n .catch(\n (error) => {\n UserNotification.error(`Restarting Sidecar failed with status: ${error}`,\n 'Could not restart Sidecar');\n },\n );\n\n SidecarsActions.restartCollector.promise(promise);\n },\n\n getSidecarActions(sidecarId) {\n const promise = fetchPeriodically('GET', URLUtils.qualifyUrl(`${this.sourceUrl}/${sidecarId}/action`));\n\n promise\n .catch(\n (error) => {\n UserNotification.error(`Fetching Sidecar actions failed with status: ${error}`,\n 'Could not retrieve Sidecar actions');\n },\n );\n\n SidecarsActions.getSidecarActions.promise(promise);\n },\n\n toConfigurationAssignmentDto(nodeId, collectorId, configurationId) {\n return {\n node_id: nodeId,\n collector_id: collectorId,\n configuration_id: configurationId,\n };\n },\n\n assignConfigurations(sidecars, configurations) {\n const nodes = sidecars.map(({ sidecar, collector }) => {\n // Add all previous assignments, but the one that was changed\n const assignments = sidecar.assignments.filter((assignment) => assignment.collector_id !== collector.id);\n\n // Add new assignments\n configurations.forEach((configuration) => {\n assignments.push({ collector_id: collector.id, configuration_id: configuration.id });\n });\n\n return { node_id: sidecar.node_id, assignments: assignments };\n });\n\n const promise = fetch('PUT', URLUtils.qualifyUrl(`${this.sourceUrl}/configurations`), { nodes: nodes });\n\n promise\n .then(\n (response) => {\n UserNotification.success('', `Configuration change for ${sidecars.length} collectors requested`);\n\n return response;\n },\n (error) => {\n UserNotification.error(`Fetching Sidecar actions failed with status: ${error}`,\n 'Could not retrieve Sidecar actions');\n },\n );\n\n SidecarsActions.assignConfigurations.promise(promise);\n },\n }),\n);\n","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\nvar lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n});\n\nmodule.exports = lowerCase;\n"],"names":["___CSS_LOADER_EXPORT___","module","Container","StyledButton","theme","items","path","title","permissions","exactPathMatch","options","update","queryHelpPopover","queryHelp","query","onSearch","onReset","children","NAV_ITEMS","messageProp","status","lastSeen","id","toUserTimezone","useUserDateTime","message","text","SidecarStatusEnum","lastSeenDateTime","icon","className","popover","VerboseMessage","VerboseMessageModal","showModal","onHide","collectorName","collectorVerbose","statusCode","stringStatus","VerboseMessageContainer","SecondaryText","ShowDetailsLink","SidecarFailureTrackingRows","sidecar","collectors","onShowDetails","annotation","node_id","node_name","last_seen","collectorStatusList","getCollectorInformation","collectorId","collector","collectorData","Routes","RelativeTime","StatusIndicator","StyledSortIcon","StandardWidthCol","ErrorMessageCol","VerboseMessageCol","NoMatchingListAlert","onlyActive","showInactiveHint","SidecarTable","rows","sort","onSortChange","columns","sortableColumns","columnKey","EmptyList","SidecarFailureTrackingList","sidecars","pagination","onPageChange","onQueryChange","toggleShowInactive","collectorDetailsToShow","setCollectorDetailsToShow","sidecarRows","showOrHideInactive","SidecarSearchForm","PAGE_SIZES","SIDECARS_DEFAULT_ARGS","fetchSidecars","callback","page","pageSize","sortField","order","resetPage","usePaginationQueryParameter","sidecarData","setSidecarData","setCollectors","only_active","response","previousSidecarArgs","handlePageChange","_page","_pageSize","handleQueryChange","_query","handleSortChange","SidecarsPageNavigation","DocsHelper","CollectorsActions","CollectorsStore","promise","error","errorMessage","search","uri","url","name","method","payload","SidecarsActions","SidecarsStore","sidecarId","action","nodeId","configurationId","configurations","nodes","assignments","assignment","configuration","createCompounder","lowerCase","result","word","index"],"sourceRoot":""}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy