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

web-interface.assets.0c1a66a2-19.1ec71fc30880f2142b45.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.5
Show newest version
{"version":3,"sources":["webpack:///./src/components/support/SmallSupportLink.jsx","webpack:///./src/components/support/index.jsx","webpack:///./src/logic/metrics/MetricsExtractor.js","webpack:///./src/components/throughput/NodeThroughput.jsx","webpack:///./src/components/nodes/NodesActions.jsx","webpack:///./src/components/nodes/SystemOverviewSummary.jsx","webpack:///./src/components/nodes/JvmHeapUsage.jsx","webpack:///./src/components/nodes/JournalState.jsx","webpack:///./src/components/nodes/NodeListItem.jsx","webpack:///./src/components/nodes/NodesList.jsx","webpack:///./src/components/nodes/NodeMaintenanceDropdown.jsx","webpack:///./src/components/nodes/BufferUsage.jsx","webpack:///./src/components/nodes/SystemOverviewDetails.jsx","webpack:///./src/components/nodes/JournalDetails.jsx","webpack:///./src/components/nodes/SystemInformation.jsx","webpack:///./src/components/nodes/RestApiOverview.jsx","webpack:///./src/components/nodes/PluginsDataTable.jsx","webpack:///./src/components/nodes/InputTypesDataTable.jsx","webpack:///./src/components/nodes/NodeOverview.jsx","webpack:///./src/components/nodes/index.js"],"names":["IconStack","styled","span","SmallSupportLink","className","name","inverse","this","props","children","React","Component","PropTypes","node","isRequired","MetricsExtractor","getValuesForNode","nodeMetrics","metricNames","Object","keys","length","metrics","forEach","metricShortName","metricFullName","metricObject","type","metric","value","count","rate","total","MetricsStore","StoreProvider","getStore","MetricsActions","ActionsProvider","getActions","NodeThroughput","createReactClass","displayName","propTypes","nodeId","string","longFormat","bool","mixins","Reflux","connect","getDefaultProps","componentWillMount","totalIn","totalOut","add","componentWillUnmount","remove","_isLoading","state","_formatThroughput","numeral","format","render","text","SystemProcessingStore","SystemLoadBalancerStore","SystemShutdownStore","NodesActions","confirm","systemOverview","is_processing","pause","node_id","resume","status","override","prompt","shutdown","apiBrowserURI","URI","transport_address","normalizePathname","toString","to","Routes","SYSTEM","NODES","SHOW","bsStyle","METRICS","href","title","id","pullRight","permissions","onSelect","_toggleMessageProcessing","left","_changeLBStatus","_shutdown","anyPermissions","divider","node_inputs","THREADDUMP","PROCESSBUFFERDUMP","object","NodeState","dl","SystemOverviewSummary","information","lbStatus","lb_status","toUpperCase","StringUtils","capitalizeFirstLetter","lifecycle","NodeHeap","div","Blob","theme","css","color","variant","primary","dark","warning","global","background","gray","StyledProgressBar","ProgressBar","Bar","JvmHeapUsage","usedMemory","committedMemory","maxMemory","_extractMetricValues","extractedMetric","usedPercentage","Math","ceil","committedPercentage","extractedMetrics","progressBarConfig","detail","NumberUtils","formatBytes","data-node-id","bars","JournalState","append","read","segments","entriesUncommitted","singular","plural","NodeListItem","key","description","nodeThroughput","journalState","actions","additionalContent","md","titleSuffix","contentRow","ClusterOverviewStore","NodesList","array","nodes","clusterOverview","_formatNodes","map","nodeID","nodesNo","bsNoItemsStyle","noItemsText","items","NodeMaintenanceDropdown","bsSize","LOGGING","target","NodeBufferUsage","BufferUsage","bufferType","prefix","_metricPrefix","metricName","_metricFilter","usageMetric","usage","NaN","sizeMetric","size","usagePercentage","isNaN","percentLabel","formatPercentage","filtered_metrics","label","toLowerCase","SystemOverviewDetails","processingStatus","page","DocsHelper","PAGES","LOAD_BALANCERS","onClick","JournalStore","JournalUsageProgressBar","JournalDetails","getInitialState","journalInformation","undefined","componentDidMount","get","then","setState","_listenToMetrics","enabled","utilizationRatio","oldestSegment","overcommittedWarning","moment","OVERVIEW","journal_config","directory","dateTime","relative","max_size","duration","max_age","flush_interval","flush_age","SystemInformation","systemInformation","jvmInformation","time","interval","setInterval","clearTimeout","pid","info","hostname","version","codename","DateTime","Formats","DATETIME_TZ","tz","timezone","RestApiOverview","last_seen","PluginsDataTable","header","plugin","author","style","width","url","marginLeft","plugins","rowClassName","headers","headerCellFormatter","_headerCellFormatter","sortByKey","rows","dataRowFormatter","_pluginInfoFormatter","filterLabel","filterKeys","InputTypesDataTable","inputType","link_to_docs","inputDescriptions","_inputTypeFormatter","NodeOverview","pluginCount","inputCount","inputStates","runningInputs","filter","inputState","marginBottom"],"mappings":"snCAMA,I,MAAMA,EAAYC,UAAOC,KAAV,iFAAGD,CAAH,kDAMTE,E,owBAMF,OACE,uBAAGC,UAAU,wBACX,kBAACJ,EAAD,CAAWI,UAAU,YACnB,kBAAC,IAAD,CAAMC,KAAK,SAASD,UAAU,gBAC9B,kBAAC,IAAD,CAAMC,KAAK,cAAcD,UAAU,cAAcE,SAAO,KAE1D,gCACGC,KAAKC,MAAMC,gB,8BAbSC,IAAMC,W,EAA/BR,E,gBACe,CACjBM,SAAUG,IAAUC,KAAKC,Y,6FAkBdX,Q,cChCf,uE,sCCGA,IAAMY,EAAmB,CAMvBC,iBANuB,SAMNC,EAAyBC,GACxC,GAAID,SAAyF,IAApCE,OAAOC,KAAKH,GAAaI,OAChF,MAAO,GAGT,IAAMC,EAAU,GAmBhB,OAlBAH,OAAOC,KAAKF,GAAaK,SAAQ,SAACC,GAChC,IAAMC,EAAiBP,EAAYM,GAC7BE,EAAeT,EAAYQ,GAC7BC,IACwB,UAAtBA,EAAaC,KACfL,EAAQE,GAAmBE,EAAaE,OAAOC,MAChB,YAAtBH,EAAaC,KACtBL,EAAQE,GAAmBE,EAAaE,OAAOE,MAChB,UAAtBJ,EAAaC,MAES,UAAtBD,EAAaC,KADtBL,EAAQE,GAAmBE,EAAaE,OAAOG,KAAKC,MAIpDV,EAAQE,GAAmB,SAK1BF,IAIIP,O,uPCvBTkB,EAAeC,IAAcC,SAAS,WACtCC,EAAiBC,IAAgBC,WAAW,WAsEnCC,EAnEQC,IAAiB,CACtCC,YAAa,iBAEbC,UAAW,CACTC,OAAQ/B,IAAUgC,OAAO9B,WACzB+B,WAAYjC,IAAUkC,MAGxBC,OAAQ,CAACC,IAAOC,QAAQhB,IAExBiB,gBAVsC,WAWpC,MAAO,CACLL,YAAY,IAIhBM,mBAhBsC,WAgBjB,WACnB5C,KAAKW,YAAc,CACjBkC,QAAS,2CACTC,SAAU,6CAGZlC,OAAOC,KAAKb,KAAKW,aAAaK,SAAQ,SAACC,GAAD,OAAqBY,EAAekB,IAAI,EAAK9C,MAAMmC,OAAQ,EAAKzB,YAAYM,QAGpH+B,qBAzBsC,WAyBf,WACrBpC,OAAOC,KAAKb,KAAKW,aAAaK,SAAQ,SAACC,GAAD,OAAqBY,EAAeoB,OAAO,EAAKhD,MAAMmC,OAAQ,EAAKzB,YAAYM,QAGvHiC,WA7BsC,WA8BpC,OAAQlD,KAAKmD,MAAMpC,SAGrBqC,kBAjCsC,SAiCpBrC,GAChB,OAAIf,KAAKC,MAAMqC,WAEX,4CACa,gCAASe,IAAQtC,EAAQ8B,SAASS,OAAO,QADtD,iBACoF,gCAC/ED,IAAQtC,EAAQ+B,UAAUQ,OAAO,QAFtC,oBAQF,oCACMD,IAAQtC,EAAQ8B,SAASS,OAAO,OADtC,UACqDD,IAAQtC,EAAQ+B,UAAUQ,OAAO,OADtF,YAMJC,OAlDsC,WAmDpC,GAAIvD,KAAKkD,aACP,OAAO,kBAAC,IAAD,CAASM,KAAK,0BAFhB,IAKCpB,EAAWpC,KAAKC,MAAhBmC,OACF1B,EAAcV,KAAKmD,MAAMpC,QAAQqB,GACjCrB,EAAUP,IAAiBC,iBAAiBC,EAAaV,KAAKW,aAEpE,OAAoC,IAAhCC,OAAOC,KAAKE,GAASD,OACf,4DAGHd,KAAKoD,kBAAkBrC,M,yjCCvElC,IAAM0C,EAAwB9B,IAAcC,SAAS,oBAC/C8B,EAA0B/B,IAAcC,SAAS,sBACjD+B,EAAsBhC,IAAcC,SAAS,kBAE7CgC,E,g1BAMuB,WACrBC,QAAQ,oBAAD,OAAqB,EAAK5D,MAAM6D,eAAeC,cAAgB,QAAU,SAAzE,sDACL,EAAK9D,MAAM6D,eAAeC,cAC5BN,EAAsBO,MAAM,EAAK/D,MAAMK,KAAK2D,SAE5CR,EAAsBS,OAAO,EAAKjE,MAAMK,KAAK2D,a,0BAKjC,SAACE,GACjB,OAAO,WACDN,QAAQ,qEAAD,OAAsEM,EAAtE,qBACTT,EAAwBU,SAAS,EAAKnE,MAAMK,KAAK2D,QAASE,O,oBAKpD,WACgF,aAAtFE,OAAO,4EACTV,EAAoBW,SAAS,EAAKrE,MAAMK,KAAK2D,Y,gDAK/C,IAAMM,EAAgB,IAAIC,IAAJ,UAAWxE,KAAKC,MAAMK,KAAKmE,kBAA3B,iBAA4DC,oBAAoBC,WACtG,OACE,yBAAK9E,UAAU,gBACb,kBAAC,gBAAD,CAAe+E,GAAIC,IAAOC,OAAOC,MAAMC,KAAKhF,KAAKC,MAAMK,KAAK2D,UAC1D,kBAAC,IAAD,CAAQgB,QAAQ,QAAhB,YAGF,kBAAC,gBAAD,CAAeL,GAAIC,IAAOC,OAAOI,QAAQlF,KAAKC,MAAMK,KAAK2D,UACvD,kBAAC,IAAD,CAAQgB,QAAQ,QAAhB,YAGF,kBAAC,IAAD,CAAoBA,QAAQ,OAAOE,KAAMZ,GAAzC,eAIA,kBAAC,IAAD,CAAgBa,MAAM,eAAeC,GAAE,gCAA2BrF,KAAKC,MAAMK,KAAK2D,SAAWqB,WAAS,GACpG,kBAAC,IAAD,CAAaC,YAAY,0BACvB,kBAAC,IAAD,CAAUC,SAAUxF,KAAKyF,0BACtBzF,KAAKC,MAAM6D,eAAeC,cAAgB,QAAU,SADvD,wBAKF,kBAAC,IAAD,CAAawB,YAAY,mBACvB,kBAAC,IAAD,CAAiBH,MAAM,qBAAqBM,MAAI,GAC9C,kBAAC,IAAD,CAAUF,SAAUxF,KAAK2F,gBAAgB,UAAzC,SACA,kBAAC,IAAD,CAAUH,SAAUxF,KAAK2F,gBAAgB,SAAzC,UAIJ,kBAAC,IAAD,CAAaJ,YAAY,iBACvB,kBAAC,IAAD,CAAUC,SAAUxF,KAAK4F,WAAzB,sBAGF,kBAAC,IAAD,CAAaL,YAAa,CAAC,yBAA0B,kBAAmB,iBAAkBM,gBAAc,GACtG,kBAAC,IAAD,CAAaN,YAAa,CAAC,cAAe,gBAAiBM,gBAAc,GACvE,kBAAC,IAAD,CAAUC,SAAO,MAIrB,kBAAC,IAAD,CAAaP,YAAY,eACvB,kBAAC,gBAAD,CAAeX,GAAIC,IAAOkB,YAAY/F,KAAKC,MAAMK,KAAK2D,UACpD,kBAAC,IAAD,+BAGJ,kBAAC,IAAD,CAAasB,YAAY,gBACvB,kBAAC,gBAAD,CAAeX,GAAIC,IAAOC,OAAOkB,WAAWhG,KAAKC,MAAMK,KAAK2D,UAC1D,kBAAC,IAAD,0BAGJ,kBAAC,IAAD,CAAasB,YAAY,sBACvB,kBAAC,gBAAD,CAAeX,GAAIC,IAAOC,OAAOmB,kBAAkBjG,KAAKC,MAAMK,KAAK2D,UACjE,kBAAC,IAAD,yC,8BAlFa9D,IAAMC,W,EAA3BwD,E,YACe,CACjBtD,KAAMD,IAAU6F,OAAO3F,WACvBuD,eAAgBzD,IAAU6F,OAAO3F,aAwFtBqD,Q,gCCnGTuC,EAAYzG,UAAO0G,GAAV,mFAAG1G,CAAH,wEAaF2G,EAAwB,SAAC,GAAoB,IAAlBC,EAAkB,EAAlBA,YAChCC,EAAWD,EAAYE,UAAUC,cAEvC,OACE,kBAACN,EAAD,KACE,wDACA,4BAAKO,IAAYC,sBAAsBL,EAAYM,YACnD,mDACA,4BAAKN,EAAYvC,cAAgB,UAAY,YAC7C,yDACA,wBAAIlE,UAAwB,SAAb0G,EAAsB,cAAgB,IAAKA,KAKhEF,EAAsBlE,UAAY,CAChCmE,YAAajG,IAAU6F,OAAO3F,YAGjB8F,Q,gCCtBT3E,EAAeC,IAAcC,SAAS,WACtCC,EAAiBC,IAAgBC,WAAW,WAE5C8E,EAAWnH,UAAOoH,IAAV,4EAAGpH,CAAH,yCAQRqH,EAAOrH,UAAOC,KAAV,wEAAGD,EAAY,gBAAGsH,EAAH,EAAGA,MAAH,OAAeC,cAAd,CAAD,kPAQDD,EAAME,MAAMC,QAAQC,QACxBJ,EAAME,MAAMC,QAAQE,KAAKD,QAIrBJ,EAAME,MAAMC,QAAQG,QACxBN,EAAME,MAAMC,QAAQE,KAAKC,QAIrBN,EAAME,MAAMK,OAAOC,WACvBR,EAAME,MAAMO,KAAK,QAI/BC,EAAoBhI,kBAAOiI,KAAV,qFAAGjI,CAAH,yDAInBkI,KAkGWC,EA7FM5F,IAAiB,CACpCC,YAAa,eAEbC,UAAW,CACTC,OAAQ/B,IAAUgC,OAAO9B,YAG3BiC,OAAQ,CAACC,IAAOC,QAAQhB,IAExBkB,mBAToC,WASf,WACXR,EAAWpC,KAAKC,MAAhBmC,OAERpC,KAAKW,YAAc,CACjBmH,WAAY,uBACZC,gBAAiB,4BACjBC,UAAW,uBAGbpH,OAAOC,KAAKb,KAAKW,aAAaK,SAAQ,SAACC,GAAD,OAAqBY,EAAekB,IAAIX,EAAQ,EAAKzB,YAAYM,QAGzG+B,qBArBoC,WAqBb,WACbZ,EAAWpC,KAAKC,MAAhBmC,OAERxB,OAAOC,KAAKb,KAAKW,aAAaK,SAAQ,SAACC,GAAD,OAAqBY,EAAeoB,OAAOb,EAAQ,EAAKzB,YAAYM,QAG5GgH,qBA3BoC,WA2Bb,IACb7F,EAAWpC,KAAKC,MAAhBmC,OACArB,EAAYf,KAAKmD,MAAjBpC,QAER,GAAIA,GAAWA,EAAQqB,GAAS,CAC9B,IAAM8F,EAAkB1H,IAAiBC,iBAAiBM,EAAQqB,GAASpC,KAAKW,aACxEqH,EAA2CE,EAA3CF,UAAWF,EAAgCI,EAAhCJ,WAAYC,EAAoBG,EAApBH,gBAE/B,OAAIC,GACFE,EAAgBC,eAA+B,IAAdH,EAAkB,EAAII,KAAKC,KAAMP,EAAaE,EAAa,KAC5FE,EAAgBI,oBAAoC,IAAdN,EAAkB,EAAII,KAAKC,KAAMN,EAAkBC,EAAa,KAE/FE,GAGF,CACLC,eAAgB,EAChBG,oBAAqB,GAIzB,MAAO,IAGT/E,OAnDoC,WAmD3B,IACCnB,EAAWpC,KAAKC,MAAhBmC,OACFmG,EAAmBvI,KAAKiI,uBACtBE,EAAgFI,EAAhFJ,eAAgBG,EAAgEC,EAAhED,oBAAqBR,EAA2CS,EAA3CT,WAAYC,EAA+BQ,EAA/BR,gBAAiBC,EAAcO,EAAdP,UACtEQ,EAAoB,CAAC,CAAElH,MAAO,IAC9BmH,EAAS,2BAAG,kBAAC,IAAD,CAASjF,KAAK,uCA2B9B,OAzBI2E,GAAkBG,KACyB,IAAzC1H,OAAOC,KAAK0H,GAAkBzH,OAChC2H,EAAS,6DAETD,EAAoB,CAClB,CAAElH,MAAO6G,EAAgBlD,QAAS,WAClC,CAAE3D,MAAOgH,EAAsBH,EAAgBlD,QAAS,YAG1DwD,EACE,8CACmB,IACjB,kBAAC1B,EAAD,CAAMlH,UAAU,gBAChB,oCAAU6I,IAAYC,YAAYb,IACjC,IAJH,KAIU,IACR,kBAACf,EAAD,CAAMlH,UAAU,qBAChB,oCAAU6I,IAAYC,YAAYZ,IACjC,IAPH,mDAOwD,IACtD,kBAAChB,EAAD,CAAMlH,UAAU,eAChB,oCAAU6I,IAAYC,YAAYX,OAOxC,kBAACnB,EAAD,CAAU+B,eAAcxG,GACtB,kBAACsF,EAAD,CAAmBmB,KAAML,IAExBC,MCpIH/G,EAAeC,IAAcC,SAAS,WACtCC,EAAiBC,IAAgBC,WAAW,WAsDnC+G,GApDM7G,IAAiB,CACpCC,YAAa,eAEbC,UAAW,CACTC,OAAQ/B,IAAUgC,OAAO9B,YAG3BiC,OAAQ,CAACC,IAAOC,QAAQhB,IAExBkB,mBAToC,WASf,WACnB5C,KAAKW,YAAc,CACjBoI,OAAQ,yCACRC,KAAM,uCACNC,SAAU,gCACVC,mBAAoB,4CAEtBtI,OAAOC,KAAKb,KAAKW,aAAaK,SAAQ,SAACC,GAAD,OAAqBY,EAAekB,IAAI,EAAK9C,MAAMmC,OAAQ,EAAKzB,YAAYM,QAGpH+B,qBAnBoC,WAmBb,WACrBpC,OAAOC,KAAKb,KAAKW,aAAaK,SAAQ,SAACC,GAAD,OAAqBY,EAAeoB,OAAO,EAAKhD,MAAMmC,OAAQ,EAAKzB,YAAYM,QAGvHiC,WAvBoC,WAwBlC,OAAQlD,KAAKmD,MAAMpC,SAGrBwC,OA3BoC,WA4BlC,GAAIvD,KAAKkD,aACP,OAAO,kBAAC,IAAD,CAASM,KAAK,+BAFhB,IAKCpB,EAAWpC,KAAKC,MAAhBmC,OACF1B,EAAcV,KAAKmD,MAAMpC,QAAQqB,GACjCrB,EAAUP,IAAiBC,iBAAiBC,EAAaV,KAAKW,aAEpE,OAAoC,IAAhCC,OAAOC,KAAKE,GAASD,OAChB,8DAIP,sDACuB,gCAASuC,IAAQtC,EAAQmI,oBAAoB5F,OAAO,OAApD,yBADvB,OACqHvC,EAAQkI,SAC1H,IAAI,kBAAC,IAAD,CAAW3H,MAAOP,EAAQkI,SAAUE,SAAS,UAAUC,OAAO,aAFrE,IAEoF,IAClF,gCAAS/F,IAAQtC,EAAQgI,QAAQzF,OAAO,OAAxC,aAHF,cAG8E,gCACzED,IAAQtC,EAAQiI,MAAM1F,OAAO,OAD4C,aAH9E,gC,45BC/CA+F,G,ywBAMK,IACC/I,EAASN,KAAKC,MAAdK,KACF8E,EAAQ,kBAAC,IAAD,CAAYhD,OAAQ9B,EAAK2D,UAEvC,IAAKjE,KAAKC,MAAM6D,eACd,OACE,kBAAC,IAAD,CAAgBwF,IAAG,qBAAgBhJ,EAAK2D,SACxBmB,MAAOA,EACPmE,YAAY,iDAIhC,IAAMC,EAAiB,kBAAC,EAAD,CAAgBpH,OAAQ9B,EAAK2D,UAC9CwF,EAAe,kBAAC,GAAD,CAAcrH,OAAQ9B,EAAK2D,UAC1CyF,EAAU,kBAAC,EAAD,CAAcpJ,KAAMA,EAAMwD,eAAgB9D,KAAKC,MAAM6D,iBAE/D6F,EACJ,6BACE,kBAAC,IAAD,CAAKC,GAAI,GACP,kBAAC,EAAD,CAAuBtD,YAAatG,KAAKC,MAAM6D,kBAEjD,kBAAC,IAAD,CAAK8F,GAAI,GACP,kBAAC,EAAD,CAAcxH,OAAQpC,KAAKC,MAAMK,KAAK2D,YAK5C,OACE,kBAAC,IAAD,CAAgBqF,IAAG,qBAAgBhJ,EAAK2D,SACxBmB,MAAOA,EACPyE,YAAaL,EACbD,YAAaE,EACbC,QAASA,EACTI,WAAYH,S,gCAvCPxJ,IAAMC,W,GAA3BiJ,G,kBACe,CACjB/I,KAAMD,IAAU6F,OAAO3F,WACvBuD,eAAgBzD,IAAU6F,Q,qGAyCfmD,UC5CTU,GAAuBpI,IAAcC,SAAS,mBAgDrCoI,GA9CG/H,IAAiB,CACjCC,YAAa,YAEbC,UAAW,CACToD,YAAalF,IAAU4J,MAAM1J,WAC7B2J,MAAO7J,IAAU6F,QAGnB1D,OAAQ,CAACC,IAAOC,QAAQqH,KAExB7G,WAViC,WAUpB,IACHgH,EAAUlK,KAAKC,MAAfiK,MACAC,EAAoBnK,KAAKmD,MAAzBgH,gBACR,QAASD,GAASC,IAGpBC,aAhBiC,SAgBpBF,EAAOC,GAGlB,OAFgBvJ,OAAOC,KAAKqJ,GAEbG,KAAI,SAACC,GAClB,OAAO,kBAAC,GAAD,CAAchB,IAAKgB,EAAQhK,KAAM4J,EAAMI,GAASxG,eAAgBqG,EAAgBG,SAI3F/G,OAxBiC,WAyB/B,GAAIvD,KAAKkD,aACP,OAAO,kBAAC,IAAD,MAGT,IAAMqH,EAAU3J,OAAOC,KAAKb,KAAKC,MAAMiK,OAAOpJ,OAE9C,OACE,kBAAC,IAAD,CAAKjB,UAAU,WACb,kBAAC,IAAD,CAAK+J,GAAI,IACP,qCACQ,kBAAC,IAAD,CAAWtI,MAAOiJ,EAASpB,SAAS,KAAKC,OAAO,QADxD,IACkEmB,EADlE,WACkF,kBAAC,IAAD,CAAWjJ,MAAOiJ,EAASpB,SAAS,OAAOC,OAAO,WAEpI,kBAAC,IAAD,CAAYoB,eAAe,OACfC,YAAY,6BACZC,MAAO1K,KAAKoK,aAAapK,KAAKC,MAAMiK,MAAOlK,KAAKmD,MAAMgH,wB,m5BC1CtEQ,G,ywBAMF,IAAMpG,EAAgB,IAAIC,IAAJ,UAAWxE,KAAKC,MAAMK,KAAKmE,kBAA3B,iBAA4DC,oBAAoBC,WACtG,OACE,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAgBM,QAAQ,OAAO2F,OAAO,KAAKxF,MAAM,UAAUC,GAAG,2BAA2BC,WAAS,GAChG,kBAAC,IAAD,CAAaC,YAAY,gBACvB,kBAAC,gBAAD,CAAeX,GAAIC,IAAOC,OAAOkB,WAAWhG,KAAKC,MAAMK,KAAK2D,UAC1D,kBAAC,IAAD,0BAIJ,kBAAC,IAAD,CAAasB,YAAY,sBACvB,kBAAC,gBAAD,CAAeX,GAAIC,IAAOC,OAAOmB,kBAAkBjG,KAAKC,MAAMK,KAAK2D,UACjE,kBAAC,IAAD,kCAIJ,kBAAC,gBAAD,CAAeW,GAAIC,IAAOC,OAAOI,QAAQlF,KAAKC,MAAMK,KAAK2D,UACvD,kBAAC,IAAD,iBAGF,kBAAC,IAAD,CAAasB,YAAY,gBACvB,kBAAC,gBAAD,CAAeX,GAAIC,IAAOC,OAAO+F,SAC/B,kBAAC,IAAD,qCAIJ,kBAAC,IAAD,CAAU1F,KAAMZ,EAAeuG,OAAO,UACpC,kBAAC,IAAD,4B,gCAjC0B3K,IAAMC,Y,8GAAtCuK,G,YACe,CACjBrK,KAAMD,IAAU6F,OAAO3F,aAuCZoK,UCpCTjJ,GAAeC,IAAcC,SAAS,WACtCC,GAAiBC,IAAgBC,WAAW,WAE5CgJ,GAAkBrL,UAAOoH,IAAV,+EAAGpH,CAAH,wCAKfgI,GAAoBhI,kBAAOiI,KAAV,iFAAGjI,CAAH,wBAyERsL,GArEK/I,IAAiB,CACnCC,YAAa,cAEbC,UAAW,CACT8I,WAAY5K,IAAUgC,OAAO9B,WAC7B6B,OAAQ/B,IAAUgC,OAAO9B,WACzB6E,MAAO/E,IAAUC,KAAKC,YAGxBiC,OAAQ,CAACC,IAAOC,QAAQhB,KAExBkB,mBAXmC,WAWd,IACXR,EAAWpC,KAAKC,MAAhBmC,OACF8I,EAASlL,KAAKmL,gBACA,CAAC,GAAD,OACfD,EADe,oBAEfA,EAFe,UAIRlK,SAAQ,SAACoK,GAAD,OAAgBvJ,GAAekB,IAAIX,EAAQgJ,OAGjED,cArBmC,WAqBnB,IACNF,EAAejL,KAAKC,MAApBgL,WAER,qCAA+BA,IAGjCI,cA3BmC,WA2BnB,IACNJ,EAAejL,KAAKC,MAApBgL,WAER,2CAAqCA,EAArC,eAAsDA,EAAtD,WAGF1H,OAjCmC,WAiC1B,IACCxC,EAAYf,KAAKmD,MAAjBpC,QAER,IAAKA,EACH,OAAO,kBAAC,IAAD,MAJF,MAOmBf,KAAKC,MAAvBmC,EAPD,EAOCA,OAAQgD,EAPT,EAOSA,MACV8F,EAASlL,KAAKmL,gBACdG,EAAcvK,EAAQqB,GAAR,UAAmB8I,EAAnB,WACdK,EAAQD,EAAcA,EAAYjK,OAAOC,MAAQkK,IACjDC,EAAa1K,EAAQqB,GAAR,UAAmB8I,EAAnB,UACbQ,EAAOD,EAAaA,EAAWpK,OAAOC,MAAQkK,IAE9CG,EAAqBC,MAAML,IAAWK,MAAMF,GAAwB,EAAfH,EAAQG,EAC7DG,EAAenD,IAAYoD,iBAAiBH,GAElD,OACE,6BACE,kBAAC,gBAAD,CAAe/G,GAAIC,IAAOkH,iBAAiB3J,EAAQpC,KAAKqL,kBACtD,kBAAC,IAAD,CAAQT,OAAO,SAAS/K,UAAU,cAAlC,YAEF,4BAAKuF,GACL,kBAAC2F,GAAD,KACE,kBAAC,GAAD,CAAmBlC,KAAM,CAAC,CACxBvH,MAAyB,IAAlBqK,EACP1G,QAAS,UACT+G,MAAOH,OAGX,8BAAM,gCAASN,EAAT,aAAN,OAA4CnG,EAAM6G,cAAlD,KAAmEJ,EAAnE,kB,+iCC7ER,IAAMpI,GAAwB9B,IAAcC,SAAS,oBAE/CsK,G,u1BAMuB,WACrBrI,QAAQ,oBAAD,OAAqB,EAAK5D,MAAMqG,YAAYvC,cAAgB,QAAU,SAAtE,sDACL,EAAK9D,MAAMqG,YAAYvC,cACzBN,GAAsBO,MAAM,EAAK/D,MAAMK,KAAK2D,SAE5CR,GAAsBS,OAAO,EAAKjE,MAAMK,KAAK2D,a,gDAK1C,IAGHkI,EAFI7F,EAAgBtG,KAAKC,MAArBqG,YACFC,EAAWD,EAAYE,UAAUC,cAiBvC,OAbE0F,EADE7F,EAAYvC,cAEZ,8BACE,kBAAC,IAAD,CAAMjE,KAAK,gBADb,KACoC,kBAAC,EAAD,CAAgBsC,OAAQpC,KAAKC,MAAMK,KAAK2D,QAAS3B,YAAU,KAK/F,8BACE,kBAAC,IAAD,CAAMxC,KAAK,yBADb,aACqD,uCADrD,wBAOF,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAK8J,GAAI,GACP,kBAAC,IAAD,CAAO3E,QAAQ,QACb,0BAAMpF,UAAU,cAAhB,IAA8B,kBAAC,KAAD,CAAmBuM,KAAMC,KAAWC,MAAMC,eAAgB/I,KAAK,0BAC7F,kBAAC,IAAD,CAAM1D,KAAK,aAFb,sBAGmB,gCAAS4G,IAAYC,sBAAsB3G,KAAKC,MAAMqG,YAAYM,cAGvF,kBAAC,IAAD,CAAKgD,GAAI,GACP,kBAAC,IAAD,CAAO3E,QAAsB,UAAbsB,EAAuB,UAAY,UACjD,0BAAM1G,UAAU,cAAhB,IAA8B,kBAAC,KAAD,CAAmBuM,KAAMC,KAAWC,MAAMC,eAAgB/I,KAAK,0BAC7F,kBAAC,IAAD,CAAM1D,KAAK,UAFb,eAGY,gCAASyG,GAHrB,wBAMF,kBAAC,IAAD,CAAKqD,GAAI,GACP,kBAAC,IAAD,CAAO3E,QAASqB,EAAYvC,cAAgB,UAAY,UACtD,kBAAC,IAAD,CAAawB,YAAY,0BACvB,0BAAM1F,UAAU,cACd,kBAAC,IAAD,CAAQ2M,QAASxM,KAAKyF,yBAA0BmF,OAAO,SAAS3F,QAASqB,EAAYvC,cAAgB,SAAW,WAC7GuC,EAAYvC,cAAgB,QAAU,SADzC,iBAKHoI,U,gCA5DuBhM,IAAMC,W,GAApC8L,G,YACe,CACjB5L,KAAMD,IAAU6F,OAAO3F,WACvB+F,YAAajG,IAAU6F,OAAO3F,aAiEnB2L,U,6CC3DTrK,I,cAAiBC,IAAgBC,WAAW,YAC5CL,GAAeC,IAAcC,SAAS,WACtC6K,GAAe9K,IAAcC,SAAS,WAEtC8K,GAA0BhN,kBAAOiI,KAAV,8FAAGjI,CAAH,0DAIzBkI,KA4IW+E,GAvIQ1K,IAAiB,CACtCC,YAAa,iBAEbC,UAAW,CACTC,OAAQ/B,IAAUgC,OAAO9B,YAG3BiC,OAAQ,CAACC,IAAOC,QAAQhB,KAExBkL,gBATsC,WAUpC,MAAO,CACLC,wBAAoBC,IAIxBC,kBAfsC,WAelB,WACV3K,EAAWpC,KAAKC,MAAhBmC,OAERqK,GAAaO,IAAI5K,GAAQ6K,MAAK,SAACJ,GAC7B,EAAKK,SAAS,CAAEL,mBAAoBA,GAAsB,EAAKM,sBAInEnK,qBAvBsC,WAuBf,WACbZ,EAAWpC,KAAKC,MAAhBmC,OAEJpC,KAAKW,aACPC,OAAOC,KAAKb,KAAKW,aAAaK,SAAQ,SAACC,GAAD,OAAqBY,GAAeoB,OAAOb,EAAQ,EAAKzB,YAAYM,QAI9GkM,iBA/BsC,WA+BnB,WACT/K,EAAWpC,KAAKC,MAAhBmC,OACuBpC,KAAKmD,MAA5B0J,mBAGeO,UACrBpN,KAAKW,YAAc,CACjBoI,OAAQ,yCACRC,KAAM,uCACNC,SAAU,gCACVC,mBAAoB,2CACpBmE,iBAAkB,yCAClBC,cAAe,uCAEjB1M,OAAOC,KAAKb,KAAKW,aAAaK,SAAQ,SAACC,GAAD,OAAqBY,GAAekB,IAAIX,EAAQ,EAAKzB,YAAYM,SAI3GiC,WAjDsC,WAiDzB,MAC6BlD,KAAKmD,MAArC0J,EADG,EACHA,mBAER,QAHW,EACiB9L,SAER8L,IAGtBtJ,OAvDsC,WAwDpC,GAAIvD,KAAKkD,aACP,OAAO,kBAAC,IAAD,CAASM,KAAK,+BAFhB,IAKCpB,EAAWpC,KAAKC,MAAhBmC,OAEF1B,EAD4BV,KAAKmD,MAA/BpC,QACyBqB,GACzByK,EAAuB7M,KAAKmD,MAA5B0J,mBAER,IAAKA,EAAmBO,QACtB,OACE,kBAAC,IAAD,CAAOnI,QAAQ,WACb,kBAAC,IAAD,CAAMnF,KAAK,yBADb,gDAMJ,IAAMiB,EAAUf,KAAKW,YAAcH,IAAiBC,iBAAiBC,EAAaV,KAAKW,aAAe,GAEtG,GAAoC,IAAhCC,OAAOC,KAAKE,GAASD,OACvB,OACE,kBAAC,IAAD,CAAOmE,QAAQ,WACb,kBAAC,IAAD,CAAMnF,KAAK,yBADb,kCAMJ,IACIyN,EADED,EAAgBE,KAAOzM,EAAQuM,eAWrC,OATIvM,EAAQsM,kBAAoB,IAC9BE,EACE,8BACE,4CADF,kEAEG,IAAI,kBAAC,QAAD,CAAM3I,GAAIC,IAAOC,OAAO2I,UAAxB,cAFP,yBAEgF,+BAMlF,kBAAC,IAAD,CAAK5N,UAAU,UACb,kBAAC,IAAD,CAAK+J,GAAI,GACP,6CACA,wBAAI/J,UAAU,kBACZ,qCACA,4BAAKgN,EAAmBa,eAAeC,WACvC,+CACA,4BAAI,kBAAC,IAAD,CAAWC,SAAUN,EAAeO,UAAQ,KAChD,6CACA,4BAAKnF,IAAYC,YAAYkE,EAAmBa,eAAeI,WAC/D,4CACA,4BAAKN,KAAOO,SAASlB,EAAmBa,eAAeM,SAAS1K,OAAO,mCACvE,6CACA,qCACSD,IAAQwJ,EAAmBa,eAAeO,gBAAgB3K,OAAO,OAD1E,YAEG,IAFH,MAEWkK,KAAOO,SAASlB,EAAmBa,eAAeQ,WAAW5K,OAAO,wCAInF,kBAAC,IAAD,CAAKsG,GAAI,GACP,2CAEA,kBAAC8C,GAAD,CAAyB7D,KAAM,CAAC,CAC9BvH,MAAkC,IAA3BP,EAAQsM,iBACfrB,MAAOtD,IAAYoD,iBAAiB/K,EAAQsM,sBAG7CE,EAED,gCAASlK,IAAQtC,EAAQmI,oBAAoB5F,OAAO,OAApD,yBACC,IAXH,oCAWyCvC,EAAQkI,SAXjD,aAWoE,6BAClE,gCAAS5F,IAAQtC,EAAQgI,QAAQzF,OAAO,OAAxC,aACC,IAbH,yCAa8C,IAC5C,gCAASD,IAAQtC,EAAQiI,MAAM1F,OAAO,OAAtC,aAdF,2C,iBC/FO6K,GA/CWlM,IAAiB,CACzCC,YAAa,oBAEbC,UAAW,CACT7B,KAAMD,IAAU6F,OAAO3F,WACvB6N,kBAAmB/N,IAAU6F,OAAO3F,WACpC8N,eAAgBhO,IAAU6F,QAG5B0G,gBATyC,WAUvC,MAAO,CAAE0B,KAAMd,SAGjBT,kBAbyC,WAarB,WAClB/M,KAAKuO,SAAWC,aAAY,kBAAM,EAAKtB,SAAS,EAAKN,qBAAoB,MAG3E5J,qBAjByC,WAkBvCyL,aAAazO,KAAKuO,WAGpBhL,OArByC,WAqBhC,IAEH8K,EADID,EAAsBpO,KAAKC,MAA3BmO,kBAQR,OALEC,EADErO,KAAKC,MAAMoO,eACI,qCAAWrO,KAAKC,MAAMoO,eAAeK,IAArC,KAA4C1O,KAAKC,MAAMoO,eAAeM,MAEtE,+EAIjB,wBAAI9O,UAAU,iBACZ,yCACA,4BAAKuO,EAAkBQ,UACvB,wCACA,4BAAK5O,KAAKC,MAAMK,KAAK2D,SACrB,wCACA,4BAAKmK,EAAkBS,QAAvB,cAA0C,4BAAKT,EAAkBU,WACjE,oCACA,4BAAKT,GACL,qCACA,4BAAI,kBAAC,IAAD,CAAWT,SAAU5N,KAAKmD,MAAMmL,KAAMhL,OAAQyL,KAASC,QAAQC,YAAaC,GAAId,EAAkBe,gB,m5BC9CxGC,G,ywBAMF,OACE,wBAAIvP,UAAU,eACZ,kDACA,4BAAKG,KAAKC,MAAMK,KAAKmE,mBACrB,0CACA,4BAAI,kBAAC,IAAD,CAAWmJ,SAAU5N,KAAKC,MAAMK,KAAK+O,UAAWxB,UAAQ,W,gCAXtC1N,IAAMC,Y,8GAA9BgP,G,YACe,CACjB9O,KAAMD,IAAU6F,OAAO3F,aAeZ6O,U,ihCCfTE,G,m1BAKmB,SAACC,GACtB,OAAO,4BAAKA,M,iCAGS,SAACC,GACtB,OACE,wBAAIlG,IAAKkG,EAAO1P,MACd,wBAAID,UAAU,WAAW2P,EAAO1P,MAChC,wBAAID,UAAU,WAAW2P,EAAOX,SAChC,wBAAIhP,UAAU,WAAW2P,EAAOC,QAChC,wBAAI5P,UAAU,UAAU6P,MAAO,CAAEC,MAAO,QACrCH,EAAOjG,YADV,KAGE,kBAAC,IAAD,CAAcpE,KAAMqK,EAAOI,IAAKF,MAAO,CAAEG,WAAY,KAArD,gB,gDAON,OAAK7P,KAAKC,MAAM6P,QAIkB,IAA9B9P,KAAKC,MAAM6P,QAAQhP,OACd,kBAAC,IAAD,CAAOmE,QAAQ,QAAO,kBAAC,IAAD,CAAMnF,KAAK,gBAAjC,8CAMP,kBAAC,IAAD,CAAWuF,GAAG,cACH0K,aAAa,SACblQ,UAAU,4CACVmQ,QANG,CAAC,OAAQ,UAAW,SAAU,eAOjCC,oBAAqBjQ,KAAKkQ,qBAC1BC,UAAU,OACVC,KAAMpQ,KAAKC,MAAM6P,QACjBO,iBAAkBrQ,KAAKsQ,qBACvBC,YAAY,SACZC,WAAY,KAnBhB,kBAAC,IAAD,CAAShN,KAAK,yC,gCA1BIrD,IAAMC,W,GAA/BkP,G,YACe,CACjBQ,QAASzP,IAAU4J,QAgDRqF,U,ihCClDTmB,G,m1BAKmB,SAAClB,GACtB,OAAO,4BAAKA,M,gCAGQ,SAACmB,GACrB,OACE,wBAAIpH,IAAKoH,EAAUtP,MACjB,wBAAIvB,UAAU,WAAW6Q,EAAU5Q,MACnC,wBAAID,UAAU,WAAW6Q,EAAUtP,MACnC,wBAAIvB,UAAU,UAAU6P,MAAO,CAAEC,MAAO,MACrCe,EAAUC,cACR,kBAAC,IAAD,CAAcxL,KAAMuL,EAAUC,cAA9B,sB,gDAMF,WACP,IAAK3Q,KAAKC,MAAM2Q,kBACd,OAAO,kBAAC,IAAD,CAASpN,KAAK,2BAGvB,GAAyD,IAArD5C,OAAOC,KAAKb,KAAKC,MAAM2Q,mBAAmB9P,OAC5C,OACE,kBAAC,IAAD,CAAOmE,QAAQ,WACb,kBAAC,IAAD,CAAMnF,KAAK,yBADb,kCAMJ,IAEMsQ,EAAOxP,OAAOC,KAAKb,KAAKC,MAAM2Q,mBAAmBvG,KAAI,SAACf,GAAD,OAAS,EAAKrJ,MAAM2Q,kBAAkBtH,MAEjG,OACE,kBAAC,IAAD,CAAWjE,GAAG,mBACH0K,aAAa,SACblQ,UAAU,4CACVmQ,QARG,CAAC,OAAQ,OAAQ,iBASpBC,oBAAqBjQ,KAAKkQ,qBAC1BC,UAAU,OACVC,KAAMA,EACNC,iBAAkBrQ,KAAK6Q,oBACvBN,YAAY,SACZC,WAAY,U,gCAjDKrQ,IAAMC,W,GAAlCqQ,G,YACe,CACjBG,kBAAmBvQ,IAAU6F,SAoDlBuK,U,m5BC5CTK,G,ywBAUK,IAIHC,EAKAC,EARI1Q,EAASN,KAAKC,MAAdK,KACAwD,EAAmB9D,KAAKC,MAAxB6D,eAQR,GALI9D,KAAKC,MAAM6P,UACbiB,EAAc,GAAH,OAAM/Q,KAAKC,MAAM6P,QAAQhP,OAAzB,uBAITd,KAAKC,MAAMgR,YAAa,CAC1B,IAAMC,EAAgBlR,KAAKC,MAAMgR,YAAYE,QAAO,SAACC,GAAD,MAAmD,YAAnCA,EAAWjO,MAAMsD,iBACrFuK,EAAa,GAAH,OAAME,EAAcpQ,OAApB,gCAGZ,OACE,6BACE,kBAAC,IAAD,CAAKjB,UAAU,WACb,kBAAC,IAAD,CAAK+J,GAAI,IACP,kBAAC,GAAD,CAAuBtJ,KAAMA,EAAMgG,YAAaxC,MAIpD,kBAAC,IAAD,CAAKjE,UAAU,WACb,kBAAC,IAAD,CAAK+J,GAAI,IACP,wBAAI8F,MAAO,CAAE2B,aAAc,IAA3B,qBACA,kBAAC,EAAD,CAAcjP,OAAQ9B,EAAK2D,YAI/B,kBAAC,IAAD,CAAKpE,UAAU,WACb,kBAAC,IAAD,CAAK+J,GAAI,IACP,uCACA,uBAAG/J,UAAU,eAAb,oJAIA,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAK+J,GAAI,GACP,kBAAC,GAAD,CAAaxH,OAAQ9B,EAAK2D,QAASmB,MAAM,eAAe6F,WAAW,WAErE,kBAAC,IAAD,CAAKrB,GAAI,GACP,kBAAC,GAAD,CAAaxH,OAAQ9B,EAAK2D,QAASmB,MAAM,iBAAiB6F,WAAW,aAEvE,kBAAC,IAAD,CAAKrB,GAAI,GACP,kBAAC,GAAD,CAAaxH,OAAQ9B,EAAK2D,QAASmB,MAAM,gBAAgB6F,WAAW,eAM5E,kBAAC,IAAD,CAAKpL,UAAU,WACb,kBAAC,IAAD,CAAK+J,GAAI,IACP,4CACA,uBAAG/J,UAAU,eAAb,8ZAOA,kBAAC,GAAD,CAAgBuC,OAAQ9B,EAAK2D,YAIjC,kBAAC,IAAD,CAAKpE,UAAU,WACb,kBAAC,IAAD,CAAK+J,GAAI,GACP,sCACA,kBAAC,GAAD,CAAmBtJ,KAAMA,EAAM8N,kBAAmBtK,EAAgBuK,eAAgBrO,KAAKC,MAAMoO,kBAE/F,kBAAC,IAAD,CAAKzE,GAAI,GACP,wCACA,kBAAC,GAAD,CAAiBtJ,KAAMA,MAI3B,kBAAC,IAAD,CAAKT,UAAU,WACb,kBAAC,IAAD,CAAK+J,GAAI,IACP,iDAAsB,+BAAQmH,IAC9B,kBAAC,GAAD,CAAkBjB,QAAS9P,KAAKC,MAAM6P,YAI1C,kBAAC,IAAD,CAAKjQ,UAAU,WACb,kBAAC,IAAD,CAAK+J,GAAI,IACP,0BAAM/J,UAAU,cACd,kBAAC,gBAAD,CAAe+E,GAAIC,IAAOkB,YAAYzF,EAAK2D,UACzC,kBAAC,IAAD,CAAQgB,QAAQ,UAAU2F,OAAO,SAAjC,mBAGJ,wBAAI8E,MAAO,CAAE2B,aAAc,KAA3B,yBAAuD,+BAAQL,IAC/D,kBAAC,GAAD,CAAqBJ,kBAAmB5Q,KAAKC,MAAM2Q,4B,gCArGpCzQ,IAAMC,Y,8GAA3B0Q,G,YACe,CACjBxQ,KAAMD,IAAU6F,OAAO3F,WACvBuD,eAAgBzD,IAAU6F,OAAO3F,WACjC8N,eAAgBhO,IAAU6F,OAC1B4J,QAASzP,IAAU4J,MACnB2G,kBAAmBvQ,IAAU6F,OAC7B+K,YAAa5Q,IAAU4J,QAsGZ6G,UC7Hf","file":"0c1a66a2-19.1ec71fc30880f2142b45.js","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport { Icon } from 'components/common';\n\nconst IconStack = styled.span`\n  margin-right: 1px;\n  position: relative;\n  top: -1px;\n`;\n\nclass SmallSupportLink extends React.Component {\n  static propTypes = {\n    children: PropTypes.node.isRequired,\n  };\n\n  render() {\n    return (\n      

\n \n \n \n \n \n {this.props.children}\n \n

\n );\n }\n}\n\nexport default SmallSupportLink;\n","export { default as ContactUs } from './ContactUs';\nexport { default as DocumentationLink } from './DocumentationLink';\nexport { default as SmallSupportLink } from './SmallSupportLink';\nexport { default as SupportLink } from './SupportLink';\n","// @flow strict\nimport type { NodeMetric } from 'stores/metrics/MetricsStore';\n\nconst MetricsExtractor = {\n /*\n * Returns an object containing a short name and the metric value for it.\n * Short names are the keys of the metricNames object, which should look like:\n * { shortName: \"metricFullName\" }\n */\n getValuesForNode(nodeMetrics: NodeMetric, metricNames: { [string]: string }): { [string]: ?number } {\n if (nodeMetrics === null || nodeMetrics === undefined || Object.keys(nodeMetrics).length === 0) {\n return {};\n }\n\n const metrics = {};\n Object.keys(metricNames).forEach((metricShortName) => {\n const metricFullName = metricNames[metricShortName];\n const metricObject = nodeMetrics[metricFullName];\n if (metricObject) {\n if (metricObject.type === 'gauge') {\n metrics[metricShortName] = metricObject.metric.value;\n } else if (metricObject.type === 'counter') {\n metrics[metricShortName] = metricObject.metric.count;\n } else if (metricObject.type === 'meter') {\n metrics[metricShortName] = metricObject.metric.rate.total;\n } else if (metricObject.type === 'timer') {\n metrics[metricShortName] = metricObject.metric.rate.total;\n } else {\n metrics[metricShortName] = null;\n }\n }\n });\n\n return metrics;\n },\n};\n\nexport default MetricsExtractor;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\nimport numeral from 'numeral';\n\nimport { Spinner } from 'components/common';\n\nimport MetricsExtractor from 'logic/metrics/MetricsExtractor';\n\nimport StoreProvider from 'injection/StoreProvider';\n\nimport ActionsProvider from 'injection/ActionsProvider';\n\nconst MetricsStore = StoreProvider.getStore('Metrics');\nconst MetricsActions = ActionsProvider.getActions('Metrics');\n\n// TODO this is a copy of GlobalTroughput, it just renders differently and only targets a single node.\nconst NodeThroughput = createReactClass({\n displayName: 'NodeThroughput',\n\n propTypes: {\n nodeId: PropTypes.string.isRequired,\n longFormat: PropTypes.bool,\n },\n\n mixins: [Reflux.connect(MetricsStore)],\n\n getDefaultProps() {\n return {\n longFormat: false,\n };\n },\n\n componentWillMount() {\n this.metricNames = {\n totalIn: 'org.graylog2.throughput.input.1-sec-rate',\n totalOut: 'org.graylog2.throughput.output.1-sec-rate',\n };\n\n Object.keys(this.metricNames).forEach((metricShortName) => MetricsActions.add(this.props.nodeId, this.metricNames[metricShortName]));\n },\n\n componentWillUnmount() {\n Object.keys(this.metricNames).forEach((metricShortName) => MetricsActions.remove(this.props.nodeId, this.metricNames[metricShortName]));\n },\n\n _isLoading() {\n return !this.state.metrics;\n },\n\n _formatThroughput(metrics) {\n if (this.props.longFormat) {\n return (\n \n Processing {numeral(metrics.totalIn).format('0,0')} incoming and \n {numeral(metrics.totalOut).format('0,0')}\n outgoing msg/s.\n \n );\n }\n return (\n \n In {numeral(metrics.totalIn).format('0,0')} / Out {numeral(metrics.totalOut).format('0,0')} msg/s.\n \n );\n },\n\n render() {\n if (this._isLoading()) {\n return ;\n }\n\n const { nodeId } = this.props;\n const nodeMetrics = this.state.metrics[nodeId];\n const metrics = MetricsExtractor.getValuesForNode(nodeMetrics, this.metricNames);\n\n if (Object.keys(metrics).length === 0) {\n return (Unable to load throughput.);\n }\n\n return this._formatThroughput(metrics);\n },\n});\n\nexport default NodeThroughput;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { LinkContainer } from 'react-router-bootstrap';\nimport URI from 'urijs';\n\nimport { DropdownButton, DropdownSubmenu, MenuItem, Button } from 'components/graylog';\nimport { ExternalLinkButton, IfPermitted } from 'components/common';\nimport StoreProvider from 'injection/StoreProvider';\nimport Routes from 'routing/Routes';\n\nconst SystemProcessingStore = StoreProvider.getStore('SystemProcessing');\nconst SystemLoadBalancerStore = StoreProvider.getStore('SystemLoadBalancer');\nconst SystemShutdownStore = StoreProvider.getStore('SystemShutdown');\n\nclass NodesActions extends React.Component {\n static propTypes = {\n node: PropTypes.object.isRequired,\n systemOverview: PropTypes.object.isRequired,\n };\n\n _toggleMessageProcessing = () => {\n if (confirm(`You are about to ${this.props.systemOverview.is_processing ? 'pause' : 'resume'} message processing in this node. Are you sure?`)) {\n if (this.props.systemOverview.is_processing) {\n SystemProcessingStore.pause(this.props.node.node_id);\n } else {\n SystemProcessingStore.resume(this.props.node.node_id);\n }\n }\n };\n\n _changeLBStatus = (status) => {\n return () => {\n if (confirm(`You are about to change the load balancer status for this node to ${status}. Are you sure?`)) {\n SystemLoadBalancerStore.override(this.props.node.node_id, status);\n }\n };\n };\n\n _shutdown = () => {\n if (prompt('Do you really want to shutdown this node? Confirm by typing \"SHUTDOWN\".') === 'SHUTDOWN') {\n SystemShutdownStore.shutdown(this.props.node.node_id);\n }\n };\n\n render() {\n const apiBrowserURI = new URI(`${this.props.node.transport_address}/api-browser`).normalizePathname().toString();\n return (\n
\n \n \n \n\n \n \n \n\n \n API browser\n \n\n \n \n \n {this.props.systemOverview.is_processing ? 'Pause' : 'Resume'} message processing\n \n \n\n \n \n ALIVE\n DEAD\n \n \n\n \n Graceful shutdown\n \n\n \n \n \n \n \n\n \n \n Local message inputs\n \n \n \n \n Get thread dump\n \n \n \n \n Get process-buffer dump\n \n \n \n
\n );\n }\n}\n\nexport default NodesActions;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport StringUtils from 'util/StringUtils';\n\nconst NodeState = styled.dl`\n margin-top: 0;\n margin-bottom: 0;\n\n dt {\n float: left;\n }\n\n dd {\n margin-left: 180px;\n }\n`;\n\nexport const SystemOverviewSummary = ({ information }) => {\n const lbStatus = information.lb_status.toUpperCase();\n\n return (\n \n
Current lifecycle state:
\n
{StringUtils.capitalizeFirstLetter(information.lifecycle)}
\n
Message processing:
\n
{information.is_processing ? 'Enabled' : 'Disabled'}
\n
Load balancer indication:
\n
{lbStatus}
\n
\n );\n};\n\nSystemOverviewSummary.propTypes = {\n information: PropTypes.object.isRequired,\n};\n\nexport default SystemOverviewSummary;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\nimport styled, { css } from 'styled-components';\n\nimport ProgressBar, { Bar } from 'components/graylog/ProgressBar';\nimport { Spinner } from 'components/common';\n\nimport NumberUtils from 'util/NumberUtils';\nimport MetricsExtractor from 'logic/metrics/MetricsExtractor';\n\nimport StoreProvider from 'injection/StoreProvider';\nimport ActionsProvider from 'injection/ActionsProvider';\n\nconst MetricsStore = StoreProvider.getStore('Metrics');\nconst MetricsActions = ActionsProvider.getActions('Metrics');\n\nconst NodeHeap = styled.div`\n margin-top: 10px;\n\n p {\n margin-bottom: 0;\n }\n`;\n\nconst Blob = styled.span(({ theme }) => css`\n display: inline-block;\n width: 9px;\n height: 9px;\n margin-left: 2px;\n border: 1px solid;\n\n &.used-memory {\n background-color: ${theme.color.variant.primary};\n border-color: ${theme.color.variant.dark.primary};\n }\n\n &.committed-memory {\n background-color: ${theme.color.variant.warning};\n border-color: ${theme.color.variant.dark.warning};\n }\n\n &.max-memory {\n background-color: ${theme.color.global.background};\n border-color: ${theme.color.gray[80]};\n }\n`);\n\nconst StyledProgressBar = styled(ProgressBar)`\n height: 25px;\n margin-bottom: 5px;\n\n ${Bar} {\n line-height: 25px;\n }\n`;\n\nconst JvmHeapUsage = createReactClass({\n displayName: 'JvmHeapUsage',\n\n propTypes: {\n nodeId: PropTypes.string.isRequired,\n },\n\n mixins: [Reflux.connect(MetricsStore)],\n\n componentWillMount() {\n const { nodeId } = this.props;\n\n this.metricNames = {\n usedMemory: 'jvm.memory.heap.used',\n committedMemory: 'jvm.memory.heap.committed',\n maxMemory: 'jvm.memory.heap.max',\n };\n\n Object.keys(this.metricNames).forEach((metricShortName) => MetricsActions.add(nodeId, this.metricNames[metricShortName]));\n },\n\n componentWillUnmount() {\n const { nodeId } = this.props;\n\n Object.keys(this.metricNames).forEach((metricShortName) => MetricsActions.remove(nodeId, this.metricNames[metricShortName]));\n },\n\n _extractMetricValues() {\n const { nodeId } = this.props;\n const { metrics } = this.state;\n\n if (metrics && metrics[nodeId]) {\n const extractedMetric = MetricsExtractor.getValuesForNode(metrics[nodeId], this.metricNames);\n const { maxMemory, usedMemory, committedMemory } = extractedMetric;\n\n if (maxMemory) {\n extractedMetric.usedPercentage = maxMemory === 0 ? 0 : Math.ceil((usedMemory / maxMemory) * 100);\n extractedMetric.committedPercentage = maxMemory === 0 ? 0 : Math.ceil((committedMemory / maxMemory) * 100);\n\n return extractedMetric;\n }\n\n return {\n usedPercentage: 0,\n committedPercentage: 0,\n };\n }\n\n return {};\n },\n\n render() {\n const { nodeId } = this.props;\n const extractedMetrics = this._extractMetricValues();\n const { usedPercentage, committedPercentage, usedMemory, committedMemory, maxMemory } = extractedMetrics;\n let progressBarConfig = [{ value: 0 }];\n let detail =

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

Heap information unavailable.

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

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

\n );\n }\n }\n\n return (\n \n \n\n {detail}\n \n );\n },\n});\n\nexport default JvmHeapUsage;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\nimport numeral from 'numeral';\n\nimport { Pluralize, Spinner } from 'components/common';\n\nimport MetricsExtractor from 'logic/metrics/MetricsExtractor';\n\nimport StoreProvider from 'injection/StoreProvider';\n\nimport ActionsProvider from 'injection/ActionsProvider';\n\nconst MetricsStore = StoreProvider.getStore('Metrics');\nconst MetricsActions = ActionsProvider.getActions('Metrics');\n\nconst JournalState = createReactClass({\n displayName: 'JournalState',\n\n propTypes: {\n nodeId: PropTypes.string.isRequired,\n },\n\n mixins: [Reflux.connect(MetricsStore)],\n\n componentWillMount() {\n this.metricNames = {\n append: 'org.graylog2.journal.append.1-sec-rate',\n read: 'org.graylog2.journal.read.1-sec-rate',\n segments: 'org.graylog2.journal.segments',\n entriesUncommitted: 'org.graylog2.journal.entries-uncommitted',\n };\n Object.keys(this.metricNames).forEach((metricShortName) => MetricsActions.add(this.props.nodeId, this.metricNames[metricShortName]));\n },\n\n componentWillUnmount() {\n Object.keys(this.metricNames).forEach((metricShortName) => MetricsActions.remove(this.props.nodeId, this.metricNames[metricShortName]));\n },\n\n _isLoading() {\n return !this.state.metrics;\n },\n\n render() {\n if (this._isLoading()) {\n return ;\n }\n\n const { nodeId } = this.props;\n const nodeMetrics = this.state.metrics[nodeId];\n const metrics = MetricsExtractor.getValuesForNode(nodeMetrics, this.metricNames);\n\n if (Object.keys(metrics).length === 0) {\n return Journal metrics unavailable.;\n }\n\n return (\n \n The journal contains {numeral(metrics.entriesUncommitted).format('0,0')} unprocessed messages in {metrics.segments}\n {' '}.{' '}\n {numeral(metrics.append).format('0,0')} messages appended, \n {numeral(metrics.read).format('0,0')} messages\n read in the last second.\n \n );\n },\n});\n\nexport default JournalState;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Col } from 'components/graylog';\n\nimport { EntityListItem, LinkToNode } from 'components/common';\nimport NodeThroughput from 'components/throughput/NodeThroughput';\nimport NodesActions from './NodesActions';\nimport SystemOverviewSummary from './SystemOverviewSummary';\nimport JvmHeapUsage from './JvmHeapUsage';\nimport JournalState from './JournalState';\n\nclass NodeListItem extends React.Component {\n static propTypes = {\n node: PropTypes.object.isRequired,\n systemOverview: PropTypes.object,\n };\n\n render() {\n const { node } = this.props;\n const title = ;\n\n if (!this.props.systemOverview) {\n return (\n \n );\n }\n\n const nodeThroughput = ;\n const journalState = ;\n const actions = ;\n\n const additionalContent = (\n
\n \n \n \n \n \n \n
\n );\n\n return (\n \n );\n }\n}\n\nexport default NodeListItem;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\nimport { Row, Col } from 'components/graylog';\n\nimport { Spinner, EntityList, Pluralize } from 'components/common';\n\nimport StoreProvider from 'injection/StoreProvider';\nimport NodeListItem from './NodeListItem';\n\nconst ClusterOverviewStore = StoreProvider.getStore('ClusterOverview');\n\nconst NodesList = createReactClass({\n displayName: 'NodesList',\n\n propTypes: {\n permissions: PropTypes.array.isRequired,\n nodes: PropTypes.object,\n },\n\n mixins: [Reflux.connect(ClusterOverviewStore)],\n\n _isLoading() {\n const { nodes } = this.props;\n const { clusterOverview } = this.state;\n return !(nodes && clusterOverview);\n },\n\n _formatNodes(nodes, clusterOverview) {\n const nodeIDs = Object.keys(nodes);\n\n return nodeIDs.map((nodeID) => {\n return ;\n });\n },\n\n render() {\n if (this._isLoading()) {\n return ;\n }\n\n const nodesNo = Object.keys(this.props.nodes).length;\n\n return (\n \n \n

\n There {nodesNo} active \n

\n \n \n
\n );\n },\n});\n\nexport default NodesList;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { LinkContainer } from 'react-router-bootstrap';\nimport { ButtonGroup, DropdownButton, MenuItem } from 'components/graylog';\nimport URI from 'urijs';\n\nimport { ExternalLink, IfPermitted } from 'components/common';\n\nimport Routes from 'routing/Routes';\n\nclass NodeMaintenanceDropdown extends React.Component {\n static propTypes = {\n node: PropTypes.object.isRequired,\n };\n\n render() {\n const apiBrowserURI = new URI(`${this.props.node.transport_address}/api-browser`).normalizePathname().toString();\n return (\n \n \n \n \n Get thread dump\n \n \n\n \n \n Get process-buffer dump\n \n \n\n \n Metrics\n \n\n \n \n Configure internal logging\n \n \n\n \n API Browser\n \n \n \n );\n }\n}\n\nexport default NodeMaintenanceDropdown;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\nimport { LinkContainer } from 'react-router-bootstrap';\nimport styled from 'styled-components';\n\nimport { Button, ProgressBar } from 'components/graylog';\nimport StoreProvider from 'injection/StoreProvider';\nimport ActionsProvider from 'injection/ActionsProvider';\nimport Routes from 'routing/Routes';\nimport NumberUtils from 'util/NumberUtils';\nimport { Spinner } from 'components/common';\n\nconst MetricsStore = StoreProvider.getStore('Metrics');\nconst MetricsActions = ActionsProvider.getActions('Metrics');\n\nconst NodeBufferUsage = styled.div`\n margin-top: 10px;\n margin-bottom: 7px;\n`;\n\nconst StyledProgressBar = styled(ProgressBar)`\n margin-bottom: 5px;\n`;\n\nconst BufferUsage = createReactClass({\n displayName: 'BufferUsage',\n\n propTypes: {\n bufferType: PropTypes.string.isRequired,\n nodeId: PropTypes.string.isRequired,\n title: PropTypes.node.isRequired,\n },\n\n mixins: [Reflux.connect(MetricsStore)],\n\n componentWillMount() {\n const { nodeId } = this.props;\n const prefix = this._metricPrefix();\n const metricNames = [\n `${prefix}.usage`,\n `${prefix}.size`,\n ];\n metricNames.forEach((metricName) => MetricsActions.add(nodeId, metricName));\n },\n\n _metricPrefix() {\n const { bufferType } = this.props;\n\n return `org.graylog2.buffers.${bufferType}`;\n },\n\n _metricFilter() {\n const { bufferType } = this.props;\n\n return `org\\\\.graylog2\\\\.buffers\\\\.${bufferType}\\\\.|${bufferType}buffer`;\n },\n\n render() {\n const { metrics } = this.state;\n\n if (!metrics) {\n return ;\n }\n\n const { nodeId, title } = this.props;\n const prefix = this._metricPrefix();\n const usageMetric = metrics[nodeId][`${prefix}.usage`];\n const usage = usageMetric ? usageMetric.metric.value : NaN;\n const sizeMetric = metrics[nodeId][`${prefix}.size`];\n const size = sizeMetric ? sizeMetric.metric.value : NaN;\n // eslint-disable-next-line no-restricted-globals\n const usagePercentage = ((!isNaN(usage) && !isNaN(size)) ? usage / size : 0);\n const percentLabel = NumberUtils.formatPercentage(usagePercentage);\n\n return (\n
\n \n \n \n

{title}

\n \n \n \n {usage} messages in {title.toLowerCase()}, {percentLabel} utilized.\n
\n );\n },\n});\n\nexport default BufferUsage;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Row, Col, Alert, Button } from 'components/graylog';\nimport { IfPermitted, Icon } from 'components/common';\nimport { DocumentationLink } from 'components/support';\nimport NodeThroughput from 'components/throughput/NodeThroughput';\n\nimport DocsHelper from 'util/DocsHelper';\nimport StringUtils from 'util/StringUtils';\n\nimport StoreProvider from 'injection/StoreProvider';\n\nconst SystemProcessingStore = StoreProvider.getStore('SystemProcessing');\n\nclass SystemOverviewDetails extends React.Component {\n static propTypes = {\n node: PropTypes.object.isRequired,\n information: PropTypes.object.isRequired,\n };\n\n _toggleMessageProcessing = () => {\n if (confirm(`You are about to ${this.props.information.is_processing ? 'pause' : 'resume'} message processing in this node. Are you sure?`)) {\n if (this.props.information.is_processing) {\n SystemProcessingStore.pause(this.props.node.node_id);\n } else {\n SystemProcessingStore.resume(this.props.node.node_id);\n }\n }\n };\n\n render() {\n const { information } = this.props;\n const lbStatus = information.lb_status.toUpperCase();\n let processingStatus;\n\n if (information.is_processing) {\n processingStatus = (\n \n   \n \n );\n } else {\n processingStatus = (\n \n   Node is not processing messages\n \n );\n }\n\n return (\n \n \n \n \n  \n Lifecycle state: {StringUtils.capitalizeFirstLetter(this.props.information.lifecycle)}\n \n \n \n \n \n  \n Marked as {lbStatus} for load balancers\n \n \n \n \n \n \n \n \n \n {processingStatus}\n \n \n \n );\n }\n}\n\nexport default SystemOverviewDetails;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport createReactClass from 'create-react-class';\nimport Reflux from 'reflux';\nimport { Link } from 'react-router';\nimport numeral from 'numeral';\nimport moment from 'moment';\nimport {} from 'moment-duration-format';\nimport styled from 'styled-components';\n\nimport { Row, Col, Alert } from 'components/graylog';\nimport ProgressBar, { Bar } from 'components/graylog/ProgressBar';\nimport MetricsExtractor from 'logic/metrics/MetricsExtractor';\n\nimport ActionsProvider from 'injection/ActionsProvider';\n\nimport StoreProvider from 'injection/StoreProvider';\n\nimport { Spinner, Timestamp, Icon } from 'components/common';\n\nimport NumberUtils from 'util/NumberUtils';\nimport Routes from 'routing/Routes';\n\nconst MetricsActions = ActionsProvider.getActions('Metrics');\nconst MetricsStore = StoreProvider.getStore('Metrics');\nconst JournalStore = StoreProvider.getStore('Journal');\n\nconst JournalUsageProgressBar = styled(ProgressBar)`\n margin-bottom: 5px;\n margin-top: 10px;\n\n ${Bar} {\n min-width: 3em;\n }\n`;\n\nconst JournalDetails = createReactClass({\n displayName: 'JournalDetails',\n\n propTypes: {\n nodeId: PropTypes.string.isRequired,\n },\n\n mixins: [Reflux.connect(MetricsStore)],\n\n getInitialState() {\n return {\n journalInformation: undefined,\n };\n },\n\n componentDidMount() {\n const { nodeId } = this.props;\n\n JournalStore.get(nodeId).then((journalInformation) => {\n this.setState({ journalInformation: journalInformation }, this._listenToMetrics);\n });\n },\n\n componentWillUnmount() {\n const { nodeId } = this.props;\n\n if (this.metricNames) {\n Object.keys(this.metricNames).forEach((metricShortName) => MetricsActions.remove(nodeId, this.metricNames[metricShortName]));\n }\n },\n\n _listenToMetrics() {\n const { nodeId } = this.props;\n const { journalInformation } = this.state;\n\n // only listen for updates if the journal is actually turned on\n if (journalInformation.enabled) {\n this.metricNames = {\n append: 'org.graylog2.journal.append.1-sec-rate',\n read: 'org.graylog2.journal.read.1-sec-rate',\n segments: 'org.graylog2.journal.segments',\n entriesUncommitted: 'org.graylog2.journal.entries-uncommitted',\n utilizationRatio: 'org.graylog2.journal.utilization-ratio',\n oldestSegment: 'org.graylog2.journal.oldest-segment',\n };\n Object.keys(this.metricNames).forEach((metricShortName) => MetricsActions.add(nodeId, this.metricNames[metricShortName]));\n }\n },\n\n _isLoading() {\n const { journalInformation, metrics } = this.state;\n\n return !(metrics && journalInformation);\n },\n\n render() {\n if (this._isLoading()) {\n return ;\n }\n\n const { nodeId } = this.props;\n const { metrics: metricsState } = this.state;\n const nodeMetrics = metricsState[nodeId];\n const { journalInformation } = this.state;\n\n if (!journalInformation.enabled) {\n return (\n \n   The disk journal is disabled on this node.\n \n );\n }\n\n const metrics = this.metricNames ? MetricsExtractor.getValuesForNode(nodeMetrics, this.metricNames) : {};\n\n if (Object.keys(metrics).length === 0) {\n return (\n \n   Journal metrics unavailable.\n \n );\n }\n\n const oldestSegment = moment(metrics.oldestSegment);\n let overcommittedWarning;\n if (metrics.utilizationRatio >= 1) {\n overcommittedWarning = (\n \n Warning! The journal utilization is exceeding the maximum size defined.\n {' '}Click here for more information.
\n
\n );\n }\n\n return (\n \n \n

Configuration

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

Utilization

\n\n \n\n {overcommittedWarning}\n\n {numeral(metrics.entriesUncommitted).format('0,0')} unprocessed messages\n {' '}are currently in the journal, in {metrics.segments} segments.
\n {numeral(metrics.append).format('0,0')} messages\n {' '}have been appended in the last second,{' '}\n {numeral(metrics.read).format('0,0')} messages have been read in the last second.\n \n
\n );\n },\n});\n\nexport default JournalDetails;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport createReactClass from 'create-react-class';\nimport moment from 'moment';\n\nimport { Timestamp } from 'components/common';\n\nimport DateTime from 'logic/datetimes/DateTime';\n\nconst SystemInformation = createReactClass({\n displayName: 'SystemInformation',\n\n propTypes: {\n node: PropTypes.object.isRequired,\n systemInformation: PropTypes.object.isRequired,\n jvmInformation: PropTypes.object,\n },\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 clearTimeout(this.interval);\n },\n\n render() {\n const { systemInformation } = this.props;\n let jvmInformation;\n if (this.props.jvmInformation) {\n jvmInformation = PID {this.props.jvmInformation.pid}, {this.props.jvmInformation.info};\n } else {\n jvmInformation = JMV information for this node is unavailable.;\n }\n\n return (\n
\n
Hostname:
\n
{systemInformation.hostname}
\n
Node ID:
\n
{this.props.node.node_id}
\n
Version:
\n
{systemInformation.version}, codename {systemInformation.codename}
\n
JVM:
\n
{jvmInformation}
\n
Time:
\n
\n
\n );\n },\n});\n\nexport default SystemInformation;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Timestamp } from 'components/common';\n\nclass RestApiOverview extends React.Component {\n static propTypes = {\n node: PropTypes.object.isRequired,\n };\n\n render() {\n return (\n
\n
Transport address:
\n
{this.props.node.transport_address}
\n
Last seen:
\n
\n
\n );\n }\n}\n\nexport default RestApiOverview;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Alert } from 'components/graylog';\nimport { DataTable, ExternalLink, Spinner, Icon } from 'components/common';\n\nclass PluginsDataTable extends React.Component {\n static propTypes = {\n plugins: PropTypes.array,\n };\n\n _headerCellFormatter = (header) => {\n return {header};\n };\n\n _pluginInfoFormatter = (plugin) => {\n return (\n \n {plugin.name}\n {plugin.version}\n {plugin.author}\n \n {plugin.description}\n   \n Website\n \n \n );\n };\n\n render() {\n if (!this.props.plugins) {\n return ;\n }\n\n if (this.props.plugins.length === 0) {\n return   This node has not any installed plugins.;\n }\n\n const headers = ['Name', 'Version', 'Author', 'Description'];\n\n return (\n \n );\n }\n}\n\nexport default PluginsDataTable;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Alert } from 'components/graylog';\nimport { DataTable, ExternalLink, Spinner, Icon } from 'components/common';\n\nclass InputTypesDataTable extends React.Component {\n static propTypes = {\n inputDescriptions: PropTypes.object,\n };\n\n _headerCellFormatter = (header) => {\n return {header};\n };\n\n _inputTypeFormatter = (inputType) => {\n return (\n \n {inputType.name}\n {inputType.type}\n \n {inputType.link_to_docs\n && Documentation}\n \n \n );\n };\n\n render() {\n if (!this.props.inputDescriptions) {\n return ;\n }\n\n if (Object.keys(this.props.inputDescriptions).length === 0) {\n return (\n \n   Input types are unavailable.\n \n );\n }\n\n const headers = ['Name', 'Type', 'Documentation'];\n\n const rows = Object.keys(this.props.inputDescriptions).map((key) => this.props.inputDescriptions[key]);\n\n return (\n \n );\n }\n}\n\nexport default InputTypesDataTable;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { LinkContainer } from 'react-router-bootstrap';\nimport { Row, Col, Button } from 'components/graylog';\n\nimport Routes from 'routing/Routes';\nimport BufferUsage from './BufferUsage';\nimport SystemOverviewDetails from './SystemOverviewDetails';\nimport JvmHeapUsage from './JvmHeapUsage';\nimport JournalDetails from './JournalDetails';\nimport SystemInformation from './SystemInformation';\nimport RestApiOverview from './RestApiOverview';\nimport PluginsDataTable from './PluginsDataTable';\nimport InputTypesDataTable from './InputTypesDataTable';\n\n\nclass NodeOverview extends React.Component {\n static propTypes = {\n node: PropTypes.object.isRequired,\n systemOverview: PropTypes.object.isRequired,\n jvmInformation: PropTypes.object,\n plugins: PropTypes.array,\n inputDescriptions: PropTypes.object,\n inputStates: PropTypes.array,\n };\n\n render() {\n const { node } = this.props;\n const { systemOverview } = this.props;\n\n let pluginCount;\n if (this.props.plugins) {\n pluginCount = `${this.props.plugins.length} plugins installed`;\n }\n\n let inputCount;\n if (this.props.inputStates) {\n const runningInputs = this.props.inputStates.filter((inputState) => inputState.state.toUpperCase() === 'RUNNING');\n inputCount = `${runningInputs.length} inputs running on this node`;\n }\n\n return (\n
\n \n \n \n \n \n\n \n \n

Memory/Heap usage

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

Buffers

\n

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

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

Disk Journal

\n

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

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

System

\n \n \n \n

REST API

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

Installed plugins {pluginCount}

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

Available input types {inputCount}

\n \n \n
\n
\n );\n }\n}\n\nexport default NodeOverview;\n","export { default as NodesList } from './NodesList';\nexport { default as NodeMaintenanceDropdown } from './NodeMaintenanceDropdown';\nexport { default as NodeOverview } from './NodeOverview';\n"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy