REST API Developer's Guide

About the Reports Resource

You can use LogicMonitor's REST API to programmatically manage the reports in your account.

Note that the following report types are not being released now, but are expected to be released in the next release or two:

  • Audit Log Report
  • Alert Forecasting Report

 

Resource URI:

/report/reports

 

Resource Properties:

All reports have the following properties:

Property

Description

Type

Example

id The id of the report Integer "id":80
name The name of the report String "name":"Collector Task Trends"
description The description of the report String "description":"My Report Description"
type Alert | Alert SLA | Alert trends | Alert threshold | Host inventory | Host metric trends | Host CPU | Interface Bandwidth | Website Service Overview | Service Level Agreement | Netflow device metric String "type":"Host metric trends"
groupId The Id of the group the report is in, where Id=0 is the root report group Integer "groupId":0
format HTML | PDF | CSV. The format of the report String "format":"HTML"
delivery none | email. Whether or not the report is configured to be delivered via email String "delivery":"email"
recipients If the report is configured to be delivered via email, this object provides the recipients that the report will be delivered to. Each recipeint needs to include:
  • type: options are admin | arbitrary, where admin refers to a user in the account and arbitrary refers to an email address not associated with a user account
  • method: this should always be email
  • addr: this should be a username if type=admin, or an email address if type=arbitrary
  • comment: any comments that should be delivered with the report
JSON Object "recipients":[{"type":"admin","method":"email","addr":"sarah","comment":""},{"type":"admin","method":"email","addr":"Bill","comment":""},{"type":"arbitrary","method":"email","addr":"sarah.terry@logicmonitor.com","comment":""}]
schedule A cron schedule that indicates when the report will be delivered via email. String "schedule":"45 9 * * *"
lastmodifyUserId The Id of the user that last modified the report Integer "lastmodifyUserId":67
lastmodifyUserName The username of the user that last modified the report String "lastmodifyUserName":"sarah.terry@logicmonitor.com"
enableViewAsOtherUser Whether or not other users are allowed to view the report as the user who last modified the report. Boolean "enableViewAsOtherUser":true
userPermission The permissions associated with the user who made the API call String "userPermission":"write"
lastGenerateOn The time, in epoch format, that the report was last generated Integer "lastGenerateOn":1449024667
lastGenerateSize The size of the report, in Bytes, the last time it was generated Integer "lastGenerateSize":21891
lastGeneratePages The number of pages in the report, the last time it was generated Integer "lastGeneratePages":4
customReportTypeId The id of the custom report template, if the report is a custom report. An id of 0 indicates that the report is not a custom report. Integer "customReportTypeId":0
reportLinkNum The number of links associated with the report, where each link corresponds to a generated report. Integer "reportLinkNum":3

 

Alerts Report Properties

The following properties are specific to the Alerts Report:

Property

Description

Type

Example

dateRange The Time Range configured for the report. Options include: Last 2 hours | Last 24 hours | Last calendar day | Last 7 days | Last 14 days | Last 30 days | Last calendar month | Last 365 days | Any custom date range in this format: YYYY-MM-dd hh:mm TO YYYY-MM-dd hh:mm String "dateRange":"Last 24 hours"
groupFullPath The group filter used to determine which alerts will appear in the report. Glob expressions supported. String "groupFullPath":"*"
deviceDisplayName The device filter used to determine which alerts will appear in the report. Glob expressions supported. String "deviceDisplayName":"*"
dataSourceInstanceName The instance filter used to determine which alerts will appear in the report. Glob expressions supported. String "dataSourceInstanceName":"*"
dataPoint The group filter used to determine which alerts will appear in the report. Glob expression supported. String "dataPoint":"*"
level all | error | critical
  • all: alerts of all severity levels will be displayed if they match the filter criteria
  • error: only error and critical alerts that match the filter criteria will be displayed
  • critical: only critical alerts that match the filter criteria will be displayed
String "level":"all"
sortedBy count | host | dataPoint | level | startOn | ackedOn. How displayed alerts will be sorted in the report. Note that if summaryOnly is set to true, you are limited to sortedBy= count | host | dataPoint. If summaryOnly is set to false, you cannot set sortedBy = count. String "sortedBy":"count"
includePreexist
  • true: alerts that started prior to the specified dateRange but that meet all other criteria will be displayed in the report
  • false: only alerts that started during the specified dateRange will be displayed in the report
Boolean "includePreexist":false
activeOnly
  • true: only alerts that are still alerting (i.e. haven't yet cleared) will be displayed in the report
  • false: active alerts and cleared alerts will both be displayed in the report
Boolean "activeOnly":false
summaryOnly
  • true: a column will be added to the report detailing the number of times each alert occurred
  • false: the number of times each alert occurred will not be displayed in the report
Boolean "summaryOnly":true
ackFilter all | acked | nonacked
  • all: both acknowledged and non-acknowledged alerts that meet the report criteria will be displayed
  • acked: only acknowledged alerts that meet the report criteria will be displayed
  • nonacked: only non-acknowledged alerts that meet the report criteria will be displayed
String "ackFilter":"all"
sdtFilter all | sdt | nonsdt
  • all: alerts that are in SDT and that aren't in SDT that meet the report criteria will be displayed
  • sdt: only alerts that are in SDT and that meet the report criteria will be displayed
  • nonsdt: only alerts that aren't in SDT and that meet the report criteria will be displayed
String "sdtFilter":"all"
timing overlap | start - Any alerts active during the specified dateRange will be displayed in the report if time=overlap. If time=start, only alerts that started during the specified dateRange will be displayed in the report. String "timing":"overlap"
dataSource All alerts displayed in the report must have been triggered for the Datasources specified in this filter. String "dataSource":"*"
rule All alerts displayed in the report must have been routed to the Rules specified in this filter. String "rule":"*"
chain All alerts displayed in the report must have been routed to the Escalation Chains specified in this filter. String "chain":"*"
columns The columns that will be displayed in the report. You should specify the columns in the order in which you'd like them to be displayed. All column names need to be included in this object, but each column should have an associated isHidden field that indicates whether it is displayed or not. NOTE that if summaryOnly is set to true you can only include these columns: Alerts, Group, Device, Instance, Datapoint. If summaryOnly is set to false you can include these columns: Severity, Group, Device, Instance, Datapoint, Thresholds, Value, Began, End, Rule, Chain, Acked, Acked By, Acked On, Notes, In SDT. JSON Object "columns":[{"name":"Severity","isHidden":false},{"name":"Group","isHidden":false},{"name":"Device","isHidden":false},{"name":"Instance","isHidden":false},{"name":"Datapoint","isHidden":false},{"name":"Thresholds","isHidden":false},{"name":"Value","isHidden":false},{"name":"Began","isHidden":false},{"name":"End","isHidden":false},{"name":"Rule","isHidden":false},{"name":"Chain","isHidden":false},{"name":"Acked","isHidden":false},{"name":"Acked By","isHidden":false},{"name":"Acked On","isHidden":false},{"name":"Notes","isHidden":false},{"name":"In SDT","isHidden":false}]

 

Alert SLA Report Properties

The following properties are specific to the Alert SLA Report:

Property

Description

Type

Example

dateRange The Time Range configured for the report: Last 2 hours | Last 24 hours | Last calendar day | Last 7 days | Last 14 days | Last 30 days | Last calendar month | Last 365 days | Any custom date range in this format: YYYY-MM-dd hh:mm TO YYYY-MM-dd hh:mm String "dateRange":"Last 14 days"
hostsVal The devices OR groups (use full path) selected for the report, where multiple entities are separated by commas. Note that glob is supported. String "hostsVal":"Production/Server,AWS"
hostsValType host | group. The type of entities specified in the hostsVal field. String "hostsValType":"host"
dataSource The datasource instance selected for the report, in the format DatasourceName-InstanceName (If it is a single instance datasource you can just leave it at DatasourceName) String "dataSource":"HTTP_Page-C:"
dataPoint The datapoints selected for the report, where multiple datapoints are separated by commas String "dataPoint":"ResponseTime,Status"
alertLevel Warn | Error | Critical. The minimum severity of the alert statuses you’d like to evaluate for the specified devices and device groups. String "alertLevel":"Warn"
alertRule The name of the Alert Rule that the datapoint alert you’re evaluating will be routed to. Note that if you do not select the correct alert rule, no matching alerts will be displayed String "alertRule":"Prod Server Error/Critical"

 

Alert Threshold Report Properties

The following properties are specific to the Alert Threshold Report:

Property

Description

Type

Example

groupFullPath The full path of the group whose member devices you are going to include in the report. Glob expressions supported. String "groupFullPath":"Production/Servers"
deviceDisplayName The display name of the device(s) to be included in the report. Glob expressions supported. String "deviceDisplayName":"ip-172-31-33-214.us-west-2.compute.internal"
dataSourceInstanceName The name of the datasource instance to be included in the report, where the syntax should be dataSourceDisplayName-InstanceName. If you're referencing a single instance datasource, you can just specify dataSourceDisplayName. Glob expressions supported. String "dataSourceInstanceName":"*"
dataPoint The datapoint to be included in the report. Glob expressions supported. String "dataPoint":"*"
sortedBy host | datasource | datapoint
  • host: displayed thresholds will be sorted by device
  • datasource: displayed thresholds will be sorted by datasource instance
  • datapoint: displayed thresholds will be sorted by datapoint (metric)
String "sortedBy":"datasource"
excludeGlobal
  • true: only variations from the global thresholds will be displayed
  • false: all thresholds will be displayed, including global thresholds an custom group and instance level thresholds
Boolean "excludeGlobal":true

 

Alert Trends Report Properties

The following properties are specific to the Alert Trends Report:

Property

Description

Type

Example

dateRange The Time Range configured for the report: Last 2 hours | Last 24 hours | Last calendar day | Last 7 days | Last 14 days | Last 30 days | Last calendar month | Last 365 days | Any custom date range in this format: YYYY-MM-dd hh:mm TO YYYY-MM-dd hh:mm String "dateRange":"Last 7 days"
metrics The devices and groups that will be included in the report, where each device/group should be represented with two fields: itemType and itemVal JSON Object "metrics":[{"itemType":"host","itemVal":"ip-172-31-33-214.us-west-2.compute.internal"},{"itemType":"group","itemVal":"Website"},{"itemType":"host","itemVal":"ip-172-31-37-162.us-west-2.compute.interal"}]

 

Device Inventory Report Properties

The following properties are specific to the Device Inventory Report:

Property

Description

Type

Example

hostsVal The devices OR groups (full path) selected for the report, where multiple entities are separated by commas String "hostsVal":"AWS/EC2"
hostsValType host | group. The type of entities specified in the hostsVal field. String "hostsValType":"group"
sortedBy Specify a property that is included in the 'properties' list that should be used to sort the devices/groups displayed in the report String "sortedBy":"system.aws.publicIpAddress"
properties The properties that should be displayed in the report JSON Object "properties":["system.aws.publicIpAddress","system.aws.resourceid","system.aws.region","system.aws.stateName"]

 

Device Metric Report Properties

The following properties are specific to the Device Metric Report:

Property

Description

Required?

Type

Example

dateRange The Time Range configured for the report: Last 2 hours | Last 24 hours | Last calendar day | Last 7 days | Last 14 days | Last 30 days | Last calendar month | Last 365 days | Any custom date range in this format: YYYY-MM-dd hh:mm TO YYYY-MM-dd hh:mm No. Defaults to Last 2 hours. String "dateRange":"Last 14 days"
hostsVal The name of the devices OR groups selected for the report, where multiple entities are separated by commas. Glob expressions are supported. Yes String "hostsVal":"ip-172-31-33-214.us-west-2.compute.internal,ip-172-31-37-162.us-west-2.compute.interal"
hostsValType host | group. The type of entities specified in the hostsVal field. Yes String "hostsValType":"host"
sortedBy host | instance | metric
  • host: Information displayed in the report will be sorted by device
  • instance: Information displayed in the report will be sorted by instance
  • metric: Information displayed in the report will be sorted by datapoint (metric)
No. Defaults to host. String "sortedBy":"host"
rowFormat 0 | 1 | 2 | 3
  • 0: Text only - metrics will be displayed in a tabular format.
  • 1: One graph per device - metrics will be displayed in a tabular format and one graph will be displayed per device.
  • 2: One graph per instance - metrics will be displayed in a tabular format and one graph will be displayed per instance.
  • 3: One graph per datapoint - metrics will be displayed in a tabular format and one graph will be displayed per datapoint.
No. Defaults to 0. Integer "rowFormat":1
top10Only true | false
  • false: Metrics will be displayed for all selected devices or groups
  • true: Metrics will only be displayed for the top ten device or groups
No. Defaults to false. Boolean "top10Only":false
metrics The datapoint or calculation on a datapoint that will be included in the report, where each datapoint/calculation is specified by three fields: dataSourceId, instances (glob is okay) and metric (no glob) Yes JSON Object "metrics":[{"dataSourceId":699,"instances":"script","metric":"SuccessExecuteTime"}]
columns The columns that will be displayed in the report. You should specify the columns in the order in which you'd like them to be displayed. All column names need to be included in this object, but each column should have an associated isHidden field that indicates whether it is displayed or not. No. Defaults to displaying all columns. JSON Object "columns":[{"name":"Device","isHidden":true},{"name":"Instance","isHidden":false},{"name":"Datapoint","isHidden":false},{"name":"Start","isHidden":true},{"name":"End","isHidden":true},{"name":"Min","isHidden":false},{"name":"Max","isHidden":false},{"name":"Average","isHidden":false},{"name":"Change(%)","isHidden":false}]

 

Interface Bandwidth Report Properties

The following properties are specific to the Interface Bandwidth Report:

Property

Description

Type

Example

dateRange The Time Range configured for the report. Last 2 hours | Last 24 hours | Last calendar day | Last 7 days | Last 14 days | Last 30 days | Last calendar month | Last 365 days | Any custom date range in this format: YYYY-MM-dd hh:mm TO YYYY-MM-dd hh:mm String "dateRange":"Last 14 days"
hostsVal The devices OR groups selected for the report, where multiple entities are separated by commas String "hostsVal":"ip-172-31-33-214.us-west-2.compute.internal,ip-172-31-37-162.us-west-2.compute.interal"
hostsValType host | group. The type of entities specified in the hostsVal field. String "hostsValType":"host"
rowFormat 0 | 1
  • 0: Text only - metrics will be displayed in a tabular format.
  • 1: One graph per instance - metrics will be displayed in a tabular format and one graph will be displayed per instance.
Integer "rowFormat":1

 

Netflow Device Report Properties

The following properties are specific to the Netflow Device Report:

Property

Description

Type

Example

hostsVal The devices OR groups (full path) selected for the report, where multiple entities are separated by commas. Glob is accepted. String "hostsVal":"ip-172-31-33-214.us-west-2.compute.internal"
dateRange The Time Range configured for the report: Last 2 hours | Last 24 hours | Last calendar day | Last 7 days | Last 14 days | Last 30 days | Last calendar month | Last 365 days | Any custom date range in this format: YYYY-MM-dd hh:mm TO YYYY-MM-dd hh:mm String "dateRange":"Last 2 hours"

 

Server CPU Report Properties

The following properties are specific to the Server CPU Report:

Property

Description

Type

Example

dateRange The Time Range configured for the report: Last 2 hours | Last 24 hours | Last calendar day | Last 7 days | Last 14 days | Last 30 days | Last calendar month | Last 365 days | Any custom date range in this format: YYYY-MM-dd hh:mm TO YYYY-MM-dd hh:mm String "dateRange":"Last 2 hours"
hostsVal The groups selected for the report, where multiple devices are separated by commas String "hostsVal":"ip-172-31-33-214.us-west-2.compute.internal,ip-172-31-37-162.us-west-2.compute.interal"
top10Only true | false
  • false: CPU metrics will be displayed for all selected devices or groups
  • true: CPU metrics will only be displayed for the top ten device or groups
Boolean "top10Only":true
displayGraphs true | false. Whether or not CPU graphs should be displayed at the end of the report Boolean "displayGraphs":true

 

SLA Report Properties

The following properties are specific to the SLA Report:

Property

Description

Type

Example

dateRange The Time Range configured for the report: Last 2 hours | Last 24 hours | Last calendar day | Last 7 days | Last 14 days | Last 30 days | Last calendar month | Last 365 days | Any custom date range in this format: YYYY-MM-dd hh:mm TO YYYY-MM-dd hh:mm String "dateRange":"Last 30 days"
metrics The datapoints and corresponding SLA thresholds that will be included in the report, where each metric includes seven fields: groupName, deviceName, dataSourceFullName, dataSourceId, instances, metric and threshold. Threshold should comprise of an operator and a number separated by a space, where valid operators are >, <, !=, =, >= and <=. JSON Object "metrics":[{"groupName":"*","deviceName":"*","dataSourceId":368,"dataSourceFullName":"*","instances":"*","metric":"UptimeMinutes","threshold":"> 0"}]
dayInOneWeek The days of the week that the SLA report should take into account, where multiple values are separated by commas and * refers to all days of the week String "dayInOneWeek":"*"
periodInOneDay The hours of each selected day that the SLA report should take into account, where * refers to all hours String "periodInOneDay":"*"
displaySummary If true, the SLA summary (total %) will be displayed Boolean "displaySummary":false
unmonitoredTime 0|1|2 - How the time we have no data for the device should be counted, where 1 = ignore no data (subtract from total time), 2 = count as violation (subtract from uptime), 3 = count as available (add to uptime) Integer "unmonitoredTime":1
displayWithAvailability If true, only devices with less than 100% availability will be displayed in the report. Boolean "displayWithAvailability":false
columns the columns displayed in the report JSON Object "columns":[{"name":"Device","isHidden":false},{"name":"Datasource","isHidden":false},{"name":"Instance","isHidden":false},{"name":"Datapoint","isHidden":false},{"name":"Threshold","isHidden":false},{"name":"Available","isHidden":false},{"name":"Unavailable","isHidden":false}]

 

Website Service Overview Report Properties  

The following properties are specific to the Website Service Overview Report:

Property

Description

Type

Example

servicesVal The services OR service groups (full path) selected for the report, where multiple entities are separated by commas String "servicesVal":"CName_check"
servicesValType service | group. The type of entities specified in the servicesVal field. String "servicesValType":"service"
dateRange The Time Range configured for the report: Last 2 hours | Last 24 hours | Last calendar day | Last 7 days | Last 14 days | Last 30 days | Last calendar month | Last 365 days | Any custom date range in this format: YYYY-MM-dd hh:mm TO YYYY-MM-dd hh:mm String "dateRange":"Last 2 hours"
displayType 1 | 2
  • 1: Display overall locations
  • 2: Display overall and individual locations
Integer "displayType":1
includeTypes The information that should be included in the report. Options include 1: availability, 2: alerts, 3: graphs JSON Object "includeTypes":[1,2,3]