1"use strict";(self.webpackChunkmetricshub_doc=self.webpackChunkmetricshub_doc||[]).push([["16448"],{17556(e,n,r){r.r(n),r.d(n,{metadata:()=>o,default:()=>h,frontMatter:()=>t,contentTitle:()=>c,toc:()=>l,assets:()=>d});var o=JSON.parse('{"id":"troubleshooting/degraded-performance","title":"Degraded Performance","description":"How to track MetricsHub\'s own performance.","source":"@site/docs/troubleshooting/degraded-performance.md","sourceDirName":"troubleshooting","slug":"/troubleshooting/degraded-performance","permalink":"/docs/latest/troubleshooting/degraded-performance","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Degraded Performance","description":"How to track MetricsHub\'s own performance.","keywords":["self-monitoring","performance","job duration","troubleshooting"]},"sidebar":"docsSidebar","previous":{"title":"Troubleshooting","permalink":"/docs/latest/troubleshooting/"},"next":{"title":"No Data for a Specific Resource","permalink":"/docs/latest/troubleshooting/no-data-for-a-specific-resource"}}'),s=r(74848),i=r(28453);let t={title:"Degraded Performance",description:"How to track MetricsHub's own performance.",keywords:["self-monitoring","performance","job duration","troubleshooting"]},c,d={},l=[{value:"Degraded Performance",id:"degraded-performance",level:2},{value:"Example",id:"example",level:3}];function a(e){let n={a:"a",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"degraded-performance",children:"Degraded Performance"}),"\n",(0,s.jsxs)(n.p,{children:["If you observe delays in data collection, missing data points, or timeouts, enable the self-monitoring feature as described in the ",(0,s.jsx)(n.a,{href:"../configuration/metrics-collection-settings#self-monitoring",children:"Metrics Collection Settings"})," page. This feature provides detailed metrics about job execution times, helping you identify inefficiencies such as misconfigurations, bottlenecks, or performance issues in specific components."]}),"\n",(0,s.jsxs)(n.p,{children:["When self-monitoring is enabled, the ",(0,s.jsx)(n.code,{children:"metricshub.job.duration"})," metric provides insights into task execution times. Key attributes include:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"job.type"})}),": The operation performed by ",(0,s.jsx)(n.strong,{children:"MetricsHub"}),". Possible values are:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"discovery"}),": Identifies and registers components."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"collect"}),": Gathers telemetry data from monitored components."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"simple"}),": Executes a straightforward task."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"beforeAll"})," or ",(0,s.jsx)(n.code,{children:"afterAll"}),": Performs preparatory or cleanup operations."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"monitor.type"})}),": The component being monitored, such as:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Hardware metrics"}),": ",(0,s.jsx)(n.code,{children:"cpu"}),", ",(0,s.jsx)(n.code,{children:"memory"}),", ",(0,s.jsx)(n.code,{children:"physical_disk"}),", or ",(0,s.jsx)(n.code,{children:"disk_controller"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Environmental metrics"}),": ",(0,s.jsx)(n.code,{children:"temperature"})," or ",(0,s.jsx)(n.code,{children:"battery"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Logical entities"}),": ",(0,s.jsx)(n.code,{children:"connector"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"connector_id"})}),": The unique identifier for the connector, such as HPEGen10IloREST for the HPE Gen10 iLO REST connector."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["These metrics can be viewed in Prometheus/Grafana or in the ",(0,s.jsx)(n.code,{children:"metricshub-agent-$resourceId-$timestamp.log"})," file. Refer to the ",(0,s.jsx)(n.a,{href:"./metricshub-logs",children:"MetricsHub Log Files"})," page for details on locating and interpreting log files."]}),"\n",(0,s.jsx)(n.h3,{id:"example",children:"Example"}),"\n",(0,s.jsxs)(n.p,{children:["Example of metrics emitted for the ",(0,s.jsx)(n.code,{children:"HPEGen10IloREST"})," connector:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'metricshub.job.duration{job.type="discovery", monitor.type="enclosure", connector_id="HPEGen10IloREST"} 0.020\nmetricshub.job.duration{job.type="discovery", monitor.type="cpu", connector_id="HPEGen10IloREST"} 0.030\nmetricshub.job.duration{job.type="discovery", monitor.type="temperature", connector_id="HPEGen10IloREST"} 0.025\nmetricshub.job.duration{job.type="discovery", monitor.type="connector", connector_id="HPEGen10IloREST"} 0.015\nmetricshub.job.duration{job.type="collect", monitor.type="cpu", connector_id="HPEGen10IloREST"} 0.015\n'})}),"\n",(0,s.jsx)(n.p,{children:"In this example:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["during ",(0,s.jsx)(n.code,{children:"discovery"}),":","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.code,{children:"enclosure"})," monitor takes ",(0,s.jsx)(n.code,{children:"0.020"})," seconds."]}),"\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.code,{children:"cpu"})," monitor takes ",(0,s.jsx)(n.code,{children:"0.030"})," seconds."]}),"\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.code,{children:"temperature"})," monitor takes ",(0,s.jsx)(n.code,{children:"0.025"})," seconds."]}),"\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.code,{children:"connector"})," monitor takes ",(0,s.jsx)(n.code,{children:"0.015"})," seconds."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["during ",(0,s.jsx)(n.code,{children:"collect"}),", the ",(0,s.jsx)(n.code,{children:"cpu"})," metrics collection takes ",(0,s.jsx)(n.code,{children:"0.015"})," seconds."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["These metrics indicate that ",(0,s.jsx)(n.strong,{children:"MetricsHub"})," is functioning as expected, with task durations well within acceptable ranges. Jobs exceeding 5 seconds may require further investigation."]}),"\n",(0,s.jsx)(n.p,{children:"For example, if a job takes more than 5 seconds, as shown below:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'metricshub.job.duration{job.type="collect", monitor.type="network", connector_id="WbemGenNet
1work"} 5.8\n'})}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Identify, the ",(0,s.jsx)(n.code,{children:"job.type"}),", ",(0,s.jsx)(n.code,{children:"monitor.type"}),", and ",(0,s.jsx)(n.code,{children:"connector.id"}),". In this example, collecting network metrics with the ",(0,s.jsx)(n.code,{children:"WbemGenNetwork"})," is the bottleneck"]}),"\n",(0,s.jsxs)(n.li,{children:["Check the ",(0,s.jsx)(n.code,{children:"metricshub-agent-$resourceId-$timestamp.log"})," file for the start and end timestamps of each job step to identify where performance degradation occurs."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"You can also:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Verify resource availability"}),": Ensure the monitored system has sufficient CPU, memory, and storage resources to handle monitoring tasks."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Check MetricsHub configuration"}),": Review your configuration to ensure ",(0,s.jsx)(n.strong,{children:"MetricsHub"})," is set up correctly ."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Restart services"}),": If configurations appear correct, try restarting relevant services."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Inspect network configurations"}),": Check for network latency or connectivity issues between ",(0,s.jsx)(n.strong,{children:"MetricsHub"})," and the monitored resources, and ensure network settings (e.g., firewalls or proxies) are not causing delays."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Examine logs"}),": Look for warnings or errors in the ",(0,s.jsx)(n.a,{href:"./metricshub-logs",children:"MetricsHub logs"})," or the monitored system's logs to identify potential problems."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Review timeouts"}),": Ensure timeout settings are appropriate for the environment to prevent unnecessary delays or retries."]}),"\n"]})]})}function h(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},28453(e,n,r){r.d(n,{R:()=>t,x:()=>c});var o=r(96540);let s={},i=o.createContext(s);function t(e){let n=o.useContext(i);return o.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:t(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.