{"type":"api","title":"Retrieve all alerts for kpis and devices","meta":{"id":"/apps/pubhub/media/crosswork-network-controller-7-1/f445c17e25a1120e8fbde4bd413083d0fd88b2b3/280afeb1-5ea4-33e3-8618-f92d3ecedf8f","info":{"contact":{"email":"support@cisco.com","name":"Crosswork Team, Cisco"},"description":"Health Insights(HI) is a software system that provides smart KPI monitoring and remediation for service provider networks. This document contains details of the HI RESTful APIs that can be used to manage KPIs, enable/disable KPIs on groups or devices, query KPIs and device alerts, remediate alerting KPIs etc.","license":{"name":"Cisco Software License Agreement","url":"https://www.cisco.com/public/sw-license-agreement.html"},"title":"Crosswork Health Insights API","version":"7.1.0"},"security":[{"bearerAuth":[]}],"x-parser-conf":{"overview":{"markdownPath":"reference/CAHI/health_insights_overview.md"}},"openapi":"3.0.1","servers":[{"url":"https://{server_ip}:30603/crosswork/hi/v1","description":"Generated server url"}],"securitySchemes":{"bearerAuth":{"description":"token","in":"header","name":"Authorization","type":"apiKey"}}},"spec":{"description":"The API currently supports retrieving all alerts for specified kpis and devices and can be filtered by alert level(s) and time duration. Pagination is supported by specifying limit and offset in the POST request arguments. The api can be used to return a sorted list of devices by number of alerts in the specified duration by passing top_devices request parameter as true. If no filter parameters are passed in to the query endpoints, the API will return alerts by applying the default limit of 50 and default time interval of 1h.","operationId":"GetAlertsKpiDevices","requestBody":{"content":{"application/json":{"schema":{"description":"Description for pulseAlertsKpiDevReq","example":{"devices":["RouterSFO"],"kpis":["pulse_cpu_threshold"],"levels":[""],"limit":"20","offset":"0","time_ago":"0m","time_interval":"1d","top_kpis":true},"properties":{"devices":{"description":"devices","items":{"type":"string"},"title":"Optional comma separated list of devices for which alerts are being requested\nIf nothing is passed alerts for all devices are considered","type":"array"},"kpis":{"description":"kpis","items":{"type":"string"},"title":"Optional comma separated list of KPI Ids(kpi_id) to filter the alerts","type":"array"},"levels":{"description":"levels","items":{"type":"string"},"title":"Optional comma separated list of alert levels to filter the alerts\nValid values include CRITICAL,WARNING,INFO,OK","type":"array"},"limit":{"description":"limit","title":"Specifies limit on number of devices to return in a single request\ne.g if limit = 4 then the api will return alerts for 4 devices\nDefault is 50","type":"string"},"offset":{"description":"offset","title":"For pagination, specify the offset while fetching records.\ne.g.: if limit is 10, then in the first API call offset will be 0, in the 2nd call offset=10, 3rd call offset=20 etc","type":"string"},"start_time":{"description":"startTime is the timestamp returned by the api to be used in subsequent calls for pagination\nIn all subsequent calls to this api, the starttime should be sent back in the request parameters\nIn a time series DB where data is continuously being written, the startTime helps preserve the data set of a query by fixing the starttime of the data so that during pagination, data is returned from the same data set that was returned in the first API call.","type":"string"},"time_ago":{"description":"time_ago","title":"Optional start time of the Time period in terms of minutes(m) or hours(h)\ne.g if time_ago = 4 then the api wil consider alerts that came in prior to alst 4hours\nDefault is now","type":"string"},"time_interval":{"description":"time_interval","title":"Specifies the length of the time period in terms of hours or minutes\ne.g. if timeInterval = 12h, the query will aggregate all alerts for past 12 hours and so on\nDefault is 1h","type":"string"},"top_kpis":{"description":"top_kpis","format":"boolean","title":"Optional flag indicating if a sorted list of devices by number of alerts should be returned by the api","type":"boolean"}},"title":"AlertsKpiReq defines the parameters used in POST request to get KPI view of alerts for devices","type":"object","$$ref":"#/components/schemas/pulseAlertsKpiDevReq"}}},"description":"Retrieve a kpi centric view of alerts for kpis and devices. Response is returned as an array of KpiAlerts.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Description for pulseAlertsKpiViewResp","example":{},"properties":{"kpi_alerts":{"description":"kpi_alerts","items":{"description":"Description for pulseKpiAlerts","properties":{"devices":{"description":"devices","items":{"type":"string"},"title":"devices is a list of devices that are currently alerting for the specific kpis passed in","type":"array"},"impact_score":{"description":"impact_score","format":"int64","title":"impact_score is the impact score value of the specified kpi\nCurrent implementation of impact_score derivation logic is as below:\nImpact Score = 4 * (# of critical alerts) + 3 * (# of major alerts) + 2 * (# of warning alerts) + 1 * (# of info alerts)","type":"array"},"kpi_id":{"description":"kpi_id","title":"kpi_id is the kpi for which alerts are returned","type":"array"},"kpi_name":{"description":"kpi_name","title":"kpi_name is the kpi name for the specified kpi","type":"array"},"kpi_type":{"description":"kpi_type","title":"kpi_type is the kpi type for the specified kpi","type":"array"},"summary":{"description":"summary","type":"array","properties":{"levels":{"description":"levels","items":{"description":"Description for pulseAlertView","properties":{"alert":{"description":"alert","format":"int64","title":"Count of alerts","type":"array"},"level":{"description":"level","title":"Valid alert level e.g. CRITICAL,WARNING,INFO,OK","type":"array"}},"type":"object","$$ref":"#/components/schemas/pulseAlertView"},"type":"array"}},"$$ref":"#/components/schemas/pulseAlertSummaryGroup"},"total_alerts":{"description":"total_alerts","format":"int64","title":"total_alerts is the total number of alerts for the specified device","type":"array"}},"type":"object","$$ref":"#/components/schemas/pulseKpiAlerts"},"title":"kpi_alerts contains a kpi specific view of alerts filtered by various parameters passed to the api\nit is populated when a kpi view of alerts is requested for device(s) or device tag(s)","type":"array"},"start_time":{"description":"startTime is the timestamp returned by the api to be used in subsequent calls for pagination\nIn all subsequent calls to this api, the starttime should be sent back in the request parameters\nIn a time series DB where data is continuously being written, the startTime helps preserve the data set of a query by fixing the starttime of the data so that during pagination, data is returned from the same data set that was returned in the first API call.","format":"int64","type":"array"}},"type":"object","$$ref":"#/components/schemas/pulseAlertsKpiViewResp"}}},"description":"A successful response."},"400":{"content":{},"description":"Bad Request"}},"summary":"Retrieve all alerts for kpis and devices.","tags":["Alerts"],"x-codegen-request-body-name":"body","__originalOperationId":"GetAlertsKpiDevices","security":[{"bearerAuth":[]}],"method":"post","path":"/alerts/kpi/devices"}}