zabbix_export: version: '7.0' template_groups: - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6 name: Templates/Applications host_groups: - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6 name: Applications templates: - uuid: 24b64f6d22b446dabecc86ee3f199004 template: 'Control-M enterprise manager by HTTP' name: 'Control-M enterprise manager by HTTP' description: | This template is designed to get metrics from the Control-M Enterprise Manager using the Control-M Automation API with HTTP agent. This template monitors active Service Level Agreement (SLA) services, discovers Control-M servers using Low Level Discovery and also creates host prototypes for them in conjunction with the `Control-M server by HTTP` template. To use this template, macros `{$API.TOKEN}` and `{$API.URI.ENDPOINT}` need to be set. > See [Zabbix template operation](https://www.zabbix.com/documentation/7.0/manual/config/templates_out_of_the_box/http) for basic instructions. Generated by official Zabbix template tool "Templator" 2.0.0 vendor: name: Zabbix version: 7.0-0 groups: - name: Templates/Applications items: - uuid: 7d9ed576aeb045798b78414c89f3e597 name: 'Control-M: Get Control-M servers' type: HTTP_AGENT key: controlm.servers delay: 10m history: '0' trends: '0' value_type: TEXT description: 'Gets a list of servers.' url: '{$API.URI.ENDPOINT}/config/servers' headers: - name: x-api-key value: '{$API.TOKEN}' tags: - tag: component value: raw - uuid: 2bd2c27b8dc74656a00f6d2006399388 name: 'Control-M: Get SLA services' type: HTTP_AGENT key: controlm.services history: '0' trends: '0' value_type: TEXT description: 'Gets all the SLA active services.' url: '{$API.URI.ENDPOINT}/run/services/sla' headers: - name: x-api-key value: '{$API.TOKEN}' tags: - tag: component value: raw discovery_rules: - uuid: 388824178c264d51be116a693c2640de name: 'Server discovery' type: DEPENDENT key: controlm.server.discovery delay: '0' description: 'Discovers the Control-M servers.' host_prototypes: - uuid: 1ade45fcbb9e407ca32542564b12f2b1 host: '{#SERVER.NAME}' name: 'Control-M server [{#SERVER.NAME}]' group_links: - group: name: Applications group_prototypes: - name: 'Control-M/{#SERVER.NAME}' templates: - name: 'Control-M server by HTTP' macros: - macro: '{$SERVER.NAME}' value: '{#SERVER.NAME}' master_item: key: controlm.servers lld_macro_paths: - lld_macro: '{#SERVER.NAME}' path: $.name preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 2h - uuid: 567e5e0553c84ce2a9200d14dfc76593 name: 'SLA services discovery' type: DEPENDENT key: controlm.services.discovery delay: '0' lifetime: 1d description: 'Discovers the SLA services in the Control-M environment.' item_prototypes: - uuid: 9daecffe0dfd402fb7300d484c2e9b80 name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs ''completed''' type: DEPENDENT key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',completed]' delay: '0' description: 'Gets the number of jobs in the state - `completed`.' preprocessing: - type: JSONPATH parameters: - $.statusByJobs.completed - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']' tags: - tag: component value: service - tag: service-metric value: jobs-completed - tag: service-metric value: jobs-stats - tag: service-name value: '{#SERVICE.NAME}' - uuid: 27821e573ead422b830b4f9dba5c840f name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs ''error''' type: DEPENDENT key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',error]' delay: '0' description: 'Gets the number of jobs in the state - `error`.' preprocessing: - type: JSONPATH parameters: - $.statusByJobs.error - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']' tags: - tag: component value: service - tag: service-metric value: jobs-error - tag: service-metric value: jobs-stats - tag: service-name value: '{#SERVICE.NAME}' trigger_prototypes: - uuid: c66f281b78e64c1c9c96ade1450eadbb expression: 'last(/Control-M enterprise manager by HTTP/service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',error],#1)>0' name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs in ''error'' state' opdata: 'Trigger value ''{ITEM.VALUE}'', Current value ''{ITEM.LASTVALUE}''' priority: AVERAGE description: 'There are services present which are in the state - `error`.' tags: - tag: scope value: availability - uuid: fe58d60475bd49f2a4e3f0bfc5ae020f name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs ''executed''' type: DEPENDENT key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',executed]' delay: '0' description: 'Gets the number of jobs in the state - `executed`.' preprocessing: - type: JSONPATH parameters: - $.statusByJobs.executed - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']' tags: - tag: component value: service - tag: service-metric value: jobs-executed - tag: service-metric value: jobs-stats - tag: service-name value: '{#SERVICE.NAME}' - uuid: 2843e6ba50584b27a66165f0accc5ed5 name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs ''waitCondition''' type: DEPENDENT key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',waitCondition]' delay: '0' description: 'Gets the number of jobs in the state - `waitCondition`.' preprocessing: - type: JSONPATH parameters: - $.statusByJobs.waitCondition - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']' tags: - tag: component value: service - tag: service-metric value: jobs-stats - tag: service-metric value: jobs-wait_condition - tag: service-name value: '{#SERVICE.NAME}' - uuid: 409961fd6fed4f208340dfdb978a2430 name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs ''waitHost''' type: DEPENDENT key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',waitHost]' delay: '0' description: 'Gets the number of jobs in the state - `waitHost`.' preprocessing: - type: JSONPATH parameters: - $.statusByJobs.waitHost - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']' tags: - tag: component value: service - tag: service-metric value: jobs-stats - tag: service-metric value: jobs-wait_host - tag: service-name value: '{#SERVICE.NAME}' - uuid: 6ae1bd92bd39446fbbea847088cd37e7 name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs ''waitResource''' type: DEPENDENT key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',waitResource]' delay: '0' description: 'Gets the number of jobs in the state - `waitResource`.' preprocessing: - type: JSONPATH parameters: - $.statusByJobs.waitResource - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']' tags: - tag: component value: service - tag: service-metric value: jobs-stats - tag: service-metric value: jobs-wait-resource - tag: service-name value: '{#SERVICE.NAME}' - uuid: 0299415dfbca4ba6881a890bb9e9658c name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs ''waitWorkload''' type: DEPENDENT key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',waitWorkload]' delay: '0' description: 'Gets the number of jobs in the state - `waitWorkload`.' preprocessing: - type: JSONPATH parameters: - $.statusByJobs.waitWorkload - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']' tags: - tag: component value: service - tag: service-metric value: jobs-stats - tag: service-metric value: jobs-wait_workload - tag: service-name value: '{#SERVICE.NAME}' - uuid: 72516fca80024f9884efb7dd652f957e name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: stats' type: DEPENDENT key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']' delay: '0' history: '0' trends: '0' value_type: TEXT description: 'Gets the service statistics.' preprocessing: - type: JSONPATH parameters: - '$.activeServices.[?(@.serviceName == ''{#SERVICE.NAME}'')]' error_handler: DISCARD_VALUE - type: JSONPATH parameters: - '$.[?(@.serviceJob == ''{#SERVICE.JOB}'')].first()' error_handler: DISCARD_VALUE master_item: key: controlm.services tags: - tag: component value: raw - uuid: a3f556bfb8d04a70b0c7407cdc458703 name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: status' type: DEPENDENT key: 'service.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']' delay: '0' description: 'Gets the service status.' valuemap: name: 'Control-M service status' preprocessing: - type: JSONPATH parameters: - $.status - type: JAVASCRIPT parameters: - | // value list might be incomplete const idx = [ // 10 - (default) 'Not Ok', // 0 'Ok', // 1 'Completed Ok', // 2 'Ended Late' // 3 ].indexOf(value); return idx !== -1 ? idx : 10; - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'service.stats[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'']' tags: - tag: component value: service - tag: service-metric value: status - tag: service-name value: '{#SERVICE.NAME}' trigger_prototypes: - uuid: e032410a5384441989538ff6781ef848 expression: | last(/Control-M enterprise manager by HTTP/service.status['{#SERVICE.NAME}','{#SERVICE.JOB}'],#1)=0 or last(/Control-M enterprise manager by HTTP/service.status['{#SERVICE.NAME}','{#SERVICE.JOB}'],#1)=10 name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: status [{ITEM.VALUE}]' priority: AVERAGE description: 'The service has encountered an issue.' manual_close: 'YES' tags: - tag: scope value: availability - uuid: f64b017b0cf9456eb0afdf908cf2258e expression: 'last(/Control-M enterprise manager by HTTP/service.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}''],#1)=3' name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: status [{ITEM.VALUE}]' priority: WARNING description: 'The service has finished its job late.' manual_close: 'YES' tags: - tag: scope value: availability graph_prototypes: - uuid: 53190fc52e094018926ca5351198aace name: 'Service [{#SERVICE.NAME}, {#SERVICE.JOB}]: jobs statuses' graph_items: - drawtype: DASHED_LINE color: 29235c item: host: 'Control-M enterprise manager by HTTP' key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',executed]' - sortorder: '1' drawtype: DASHED_LINE color: 7e286e item: host: 'Control-M enterprise manager by HTTP' key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',waitCondition]' - sortorder: '2' drawtype: DASHED_LINE color: c73464 item: host: 'Control-M enterprise manager by HTTP' key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',waitResource]' - sortorder: '3' drawtype: DASHED_LINE color: f66343 item: host: 'Control-M enterprise manager by HTTP' key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',waitHost]' - sortorder: '4' drawtype: DASHED_LINE color: ffa600 item: host: 'Control-M enterprise manager by HTTP' key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',waitWorkload]' - sortorder: '5' color: 00FF00 yaxisside: RIGHT item: host: 'Control-M enterprise manager by HTTP' key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',completed]' - sortorder: '6' color: FF0000 item: host: 'Control-M enterprise manager by HTTP' key: 'service.jobs.status[''{#SERVICE.NAME}'',''{#SERVICE.JOB}'',error]' master_item: key: controlm.services lld_macro_paths: - lld_macro: '{#SERVICE.NAME}' path: $.serviceName - lld_macro: '{#SERVICE.JOB}' path: $.serviceJob preprocessing: - type: JSONPATH parameters: - $.activeServices error_handler: CUSTOM_VALUE error_handler_params: '[]' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h tags: - tag: class value: software - tag: target value: controlm macros: - macro: '{$API.TOKEN}' type: SECRET_TEXT description: 'A token to use for API connections.' - macro: '{$API.URI.ENDPOINT}' value: '' description: 'The API endpoint is a URI - for example, `https://monitored.controlm.instance:8443/automation-api`.' valuemaps: - uuid: 54213ae65be64878988c9145d8ae86e4 name: 'Control-M service status' mappings: - value: '0' newvalue: 'Not Ok' - value: '1' newvalue: Ok - value: '2' newvalue: 'Completed Ok' - value: '3' newvalue: 'Ended Late' - value: '10' newvalue: Unknown - uuid: c077d6c381904e94a4df88136588b551 template: 'Control-M server by HTTP' name: 'Control-M server by HTTP' description: | This template is designed to get metrics from the Control-M server using the Control-M Automation API with HTTP agent. This template monitors server statistics, discovers jobs and agents using Low Level Discovery. To use this template, macros `{$API.TOKEN}`, `{$API.URI.ENDPOINT}`, and `{$SERVER.NAME}` need to be set. Generated by official Zabbix template tool "Templator" 2.0.0 vendor: name: Zabbix version: 7.0-0 groups: - name: Templates/Applications items: - uuid: 94e45567531543119d6e36b4463684c7 name: 'Control-M: Get agents' type: HTTP_AGENT key: controlm.agents history: '0' trends: '0' value_type: TEXT description: 'Gets agents for the server.' url: '{$API.URI.ENDPOINT}/config/server/{$SERVER.NAME}/agents' headers: - name: x-api-key value: '{$API.TOKEN}' tags: - tag: component value: raw - uuid: 1f60be3e3fe543d697047ffcad7b0a7f name: 'Control-M: Get jobs' type: HTTP_AGENT key: controlm.jobs history: '0' trends: '0' value_type: TEXT description: 'Gets the status of jobs.' url: '{$API.URI.ENDPOINT}/run/jobs/status' query_fields: - name: ctm value: '{$SERVER.NAME}' headers: - name: x-api-key value: '{$API.TOKEN}' tags: - tag: component value: raw - uuid: 7ae147724e374857a9a28b604e7af014 name: 'Control-M: Jobs statistics' type: DEPENDENT key: controlm.jobs.statistics delay: '0' history: '0' trends: '0' value_type: TEXT description: 'Gets the statistics of jobs.' preprocessing: - type: JSONPATH parameters: - '$.[''returned'', ''total'']' master_item: key: controlm.jobs tags: - tag: component value: raw - uuid: aa085872149047f681f974e672e0c72c name: 'Control-M: Jobs returned' type: DEPENDENT key: controlm.jobs.statistics.returned delay: '0' description: 'Gets the count of returned jobs.' preprocessing: - type: JSONPATH parameters: - '$.[0]' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: controlm.jobs.statistics tags: - tag: component value: job - uuid: 8219b115bd5246b6bbb38c7a3b74dfaa name: 'Control-M: Jobs total' type: DEPENDENT key: controlm.jobs.statistics.total delay: '0' description: 'Gets the count of total jobs.' preprocessing: - type: JSONPATH parameters: - '$.[1]' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: controlm.jobs.statistics tags: - tag: component value: job - uuid: 67ca527f452b43aab2e3171e49f96194 name: 'Control-M: Get Control-M server stats' type: HTTP_AGENT key: controlm.server.stats history: '0' trends: '0' value_type: TEXT description: 'Gets the statistics of the server.' preprocessing: - type: JSONPATH parameters: - '$.[?(@.name == ''{$SERVER.NAME}'')].first()' error_handler: CUSTOM_ERROR error_handler_params: 'Could not get server stats.' url: '{$API.URI.ENDPOINT}/config/servers' headers: - name: x-api-key value: '{$API.TOKEN}' tags: - tag: component value: raw - uuid: 101afc0212e9410b8954bd1c939aea99 name: 'Control-M: Server message' type: DEPENDENT key: server.message delay: '0' trends: '0' value_type: TEXT description: 'Gets the metric of the server message.' preprocessing: - type: JSONPATH parameters: - $.message error_handler: CUSTOM_ERROR error_handler_params: 'Could not get server message.' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: controlm.server.stats tags: - tag: component value: server triggers: - uuid: 406307967abf4218bebd9428dd8ecb8b expression: 'last(/Control-M server by HTTP/server.message,#1)="Disconnected"' name: 'Control-M: Server disconnected' opdata: 'Triggered message: {ITEM.VALUE}, Current message: {ITEM.LASTVALUE1}' priority: HIGH description: 'The server is disconnected.' tags: - tag: scope value: availability - uuid: 1d7387fe4cd7462c81daa529b58d0e34 expression: | last(/Control-M server by HTTP/server.message,#1)<>"Connected" and last(/Control-M server by HTTP/server.message,#1)<>"Disconnected" and last(/Control-M server by HTTP/server.message,#1)<>"" name: 'Control-M: Server error' opdata: 'Triggered message: {ITEM.VALUE}, Current message: {ITEM.LASTVALUE1}' priority: HIGH description: 'The server has encountered an error.' tags: - tag: scope value: availability - uuid: b37f0aa295be421ab5e7262135930fcd name: 'Control-M: Server state' type: DEPENDENT key: server.state delay: '0' description: 'Gets the metric of the server state.' valuemap: name: 'Control-M server status' preprocessing: - type: JSONPATH parameters: - $.state error_handler: CUSTOM_ERROR error_handler_params: 'Could not get server state.' - type: JAVASCRIPT parameters: - | const idx = [ // 10 - Unknown (default) 'Down', // 0 'Up', // 1 ].indexOf(value); return idx !== -1 ? idx : 10; - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: controlm.server.stats tags: - tag: component value: server triggers: - uuid: d9f5b1f636ec477c932159fd1c5baf16 expression: | last(/Control-M server by HTTP/server.state)=0 or last(/Control-M server by HTTP/server.state)=10 name: 'Control-M: Server is down' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: HIGH description: 'The server is down.' tags: - tag: scope value: availability - uuid: 2c7ba283ea2d4f2d91d0fa7d33551501 name: 'Control-M: Server version' type: DEPENDENT key: server.version delay: '0' trends: '0' value_type: TEXT description: 'Gets the metric of the server version.' preprocessing: - type: JSONPATH parameters: - $.version error_handler: CUSTOM_ERROR error_handler_params: 'Could not get server version.' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: controlm.server.stats tags: - tag: component value: server triggers: - uuid: 14cdf1016ab24e5c8b03626fac5af263 expression: | last(/Control-M server by HTTP/server.version,#1)<>last(/Control-M server by HTTP/server.version,#2) and length(last(/Control-M server by HTTP/server.version))>0 recovery_mode: NONE name: 'Control-M: Server version has changed' opdata: 'Old version: {ITEM.VALUE}, Current version: {ITEM.LASTVALUE1}' priority: INFO description: 'The server version has changed. Acknowledge to close the problem manually.' manual_close: 'YES' tags: - tag: scope value: notice discovery_rules: - uuid: 8d44e49d41d1469ba0ad6ad356b056f4 name: 'Agent discovery' type: DEPENDENT key: controlm.agent.discovery delay: '0' description: 'Discovers agents on the server.' item_prototypes: - uuid: b451e6ac1f7a4b819714ee69c4833190 name: 'Agent [{#AGENT.NAME}]: stats' type: DEPENDENT key: 'agent.stats[''{#AGENT.NAME}'']' delay: '0' history: '0' trends: '0' value_type: TEXT description: 'Gets the statistics of an agent.' preprocessing: - type: JSONPATH parameters: - '$.agents.[?(@.nodeid == ''{#AGENT.NAME}'')].first()' error_handler: DISCARD_VALUE master_item: key: controlm.agents tags: - tag: component value: raw - uuid: f72163e7e68d4bb4b2b8fcf3b9afd730 name: 'Agent [{#AGENT.NAME}]: status' type: DEPENDENT key: 'agent.status[''{#AGENT.NAME}'']' delay: '0' description: 'Gets the status of an agent.' valuemap: name: 'Control-M agent status' preprocessing: - type: JSONPATH parameters: - $.status - type: JAVASCRIPT parameters: - | const idx = [ // 10 - Unknown (default) 'Available', // 0 'Unavailable', // 1 'Disabled', // 2 'Disable', // 3 'Discovering', // 4 ].indexOf(value); return idx !== -1 ? idx : 10; - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'agent.stats[''{#AGENT.NAME}'']' tags: - tag: agent-metric value: status - tag: agent-name value: '{#AGENT.NAME}' - tag: component value: agent trigger_prototypes: - uuid: 22e12e397ad942889895590c28ce3d75 expression: | last(/Control-M server by HTTP/agent.status['{#AGENT.NAME}'],#1)=1 or last(/Control-M server by HTTP/agent.status['{#AGENT.NAME}'],#1)=10 name: 'Agent [{#AGENT.NAME}]: status [{ITEM.VALUE}]' priority: AVERAGE description: 'The agent has encountered an issue.' manual_close: 'YES' tags: - tag: scope value: availability - uuid: d7cb3729522c4e5bab9eec4341bbab08 expression: | last(/Control-M server by HTTP/agent.status['{#AGENT.NAME}'],#1)=2 or last(/Control-M server by HTTP/agent.status['{#AGENT.NAME}'],#1)=3 name: 'Agent [{#AGENT.NAME}}: status disabled' priority: INFO description: 'The agent is disabled.' manual_close: 'YES' tags: - tag: scope value: availability - uuid: 98e355d74fe9449eaf28272765865434 name: 'Agent [{#AGENT.NAME}]: version' type: DEPENDENT key: 'agent.version[''{#AGENT.NAME}'']' delay: '0' trends: '0' value_type: TEXT description: 'Gets the version number of an agent.' preprocessing: - type: JSONPATH parameters: - $.version error_handler: CUSTOM_VALUE error_handler_params: Unknown - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'agent.stats[''{#AGENT.NAME}'']' tags: - tag: agent-metric value: version - tag: agent-name value: '{#AGENT.NAME}' - tag: component value: agent trigger_prototypes: - uuid: 7c494429411b4ede997a7881e52d9b46 expression: 'last(/Control-M server by HTTP/agent.version[''{#AGENT.NAME}''],#1)="Unknown"' name: 'Agent [{#AGENT.NAME}]: unknown version' priority: WARNING description: 'The agent version is unknown.' manual_close: 'YES' tags: - tag: scope value: notice - uuid: e67a46b5c61c43e6b42a966f3d68a581 expression: 'last(/Control-M server by HTTP/agent.version[''{#AGENT.NAME}''],#1)<>last(/Control-M server by HTTP/agent.version[''{#AGENT.NAME}''],#2)' recovery_mode: NONE name: 'Agent [{#AGENT.NAME}]: version has changed' opdata: 'Old version: {ITEM.VALUE}, Current version: {ITEM.LASTVALUE1}' priority: INFO description: 'The agent version has changed. Acknowledge to close the problem manually.' manual_close: 'YES' tags: - tag: scope value: notice master_item: key: controlm.agents lld_macro_paths: - lld_macro: '{#AGENT.NAME}' path: $.nodeid preprocessing: - type: JSONPATH parameters: - $.agents error_handler: CUSTOM_VALUE error_handler_params: '[]' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h - uuid: 279c680e12f6443a9b096bec45f9bce4 name: 'Jobs discovery' type: DEPENDENT key: controlm.jobs.discovery delay: '0' lifetime: 1d description: 'Discovers jobs on the server.' item_prototypes: - uuid: bbeb9ab5bcb04f8da802d1a63f098107 name: 'Job [{#JOB.ID}]: held status' type: DEPENDENT key: 'job.held[''{#JOB.ID}'']' delay: '0' description: 'Gets the held status of a job.' valuemap: name: 'Control-M true-false' preprocessing: - type: JSONPATH parameters: - $.held - type: JAVASCRIPT parameters: - | const idx = [ // 10 - Unknown (default) 'false', // 0 'true', // 1 ].indexOf(value); return idx !== -1 ? idx : 10; master_item: key: 'job.stats[''{#JOB.ID}'']' tags: - tag: component value: job - tag: job-metric value: held - tag: job-name value: '{#JOB.ID}' - uuid: 2759dacfd8da46e1ad9811093c8897ee name: 'Job [{#JOB.ID}]: number of runs' type: DEPENDENT key: 'job.numberOfRuns[''{#JOB.ID}'']' delay: '0' description: 'Gets the number of runs for a job.' preprocessing: - type: JSONPATH parameters: - $.numberOfRuns - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'job.stats[''{#JOB.ID}'']' tags: - tag: component value: job - tag: job-metric value: runs - tag: job-name value: '{#JOB.ID}' - uuid: c73c160f2b8e47c8891d7e22b3a1d1bc name: 'Job [{#JOB.ID}]: stats' type: DEPENDENT key: 'job.stats[''{#JOB.ID}'']' delay: '0' history: '0' trends: '0' value_type: TEXT description: 'Gets the statistics of a job.' preprocessing: - type: JSONPATH parameters: - '$.statuses.[?(@.jobId == ''{#JOB.ID}'')].first()' error_handler: DISCARD_VALUE master_item: key: controlm.jobs tags: - tag: component value: raw - uuid: 1348caa83bc94650ba49231bac41aa18 name: 'Job [{#JOB.ID}]: status' type: DEPENDENT key: 'job.status[''{#JOB.ID}'']' delay: '0' description: 'Gets the status of a job.' valuemap: name: 'Control-M job status' preprocessing: - type: JSONPATH parameters: - $.status - type: JAVASCRIPT parameters: - | const idx = [ // 10 - (default) 'Ended OK', // 0 — completed successfully. 'Ended Not OK', // 1 — ended in failure. 'Wait User', // 2 — waiting for user confirmation. 'Wait Resource', // 3 — waiting on a resource to be available. 'Wait Host', // 4 — waiting on an agent or remote host to be available. 'Wait Workload', // 5 — waiting due to a workload limit. 'Wait Condition', // 6 — waiting for a condition. 'Executing' // 7 — currently executing. ].indexOf(value); return idx !== -1 ? idx : 10; - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'job.stats[''{#JOB.ID}'']' tags: - tag: component value: job - tag: job-metric value: status - tag: job-name value: '{#JOB.ID}' trigger_prototypes: - uuid: beec4281ad0f4ca7aa5f3020b116fdfd expression: | last(/Control-M server by HTTP/job.status['{#JOB.ID}'],#1)=1 or last(/Control-M server by HTTP/job.status['{#JOB.ID}'],#1)=10 name: 'Job [{#JOB.ID}]: status [{ITEM.VALUE}]' priority: WARNING description: 'The job has encountered an issue.' manual_close: 'YES' tags: - tag: scope value: availability - uuid: 4ec3c06e6ff04e919a7a0f21fa490a25 name: 'Job [{#JOB.ID}]: type' type: DEPENDENT key: 'job.type[''{#JOB.ID}'']' delay: '0' description: 'Gets the job type.' valuemap: name: 'Control-M job type' preprocessing: - type: JSONPATH parameters: - $.type - type: JAVASCRIPT parameters: - | const idx = [ // 10 - (default) 'Command', // 0 — runs a platform command line option. 'Script', // 1 — runs a script. 'File Transfer',// 2 — performs file transfer. 'File Watcher', // 3 — monitors file activity. 'Database', // 4 — runs an SQL script. 'Hadoop', // 5 — runs a job based on Hadoop objects. 'Dummy', // 6 — always ends successfully without running any commands. 'Folder', // 7 — displays a job folder, rather than a job. 'Job' // 8 ].indexOf(value); return idx !== -1 ? idx : 10; - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'job.stats[''{#JOB.ID}'']' tags: - tag: component value: job - tag: job-metric value: type - tag: job-name value: '{#JOB.ID}' master_item: key: controlm.jobs lld_macro_paths: - lld_macro: '{#JOB.ID}' path: $.jobId preprocessing: - type: JSONPATH parameters: - $.statuses error_handler: CUSTOM_VALUE error_handler_params: '[]' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h tags: - tag: class value: software - tag: target value: controlm macros: - macro: '{$API.TOKEN}' type: SECRET_TEXT description: 'A token to use for API connections.' - macro: '{$API.URI.ENDPOINT}' value: '' description: 'The API endpoint is a URI - for example, `https://monitored.controlm.instance:8443/automation-api`.' - macro: '{$SERVER.NAME}' value: '' description: 'The name of the Control-M server.' dashboards: - uuid: f12c2c57e08a4af19e83dd7b1c867d59 name: 'Control-M Overview' pages: - widgets: - type: graph width: '12' height: '5' fields: - type: GRAPH name: graphid value: host: 'Control-M server by HTTP' name: 'Control-M: Jobs statistics' - type: graph x: '12' width: '12' height: '5' fields: - type: GRAPH name: graphid value: host: 'Control-M server by HTTP' name: 'Control-M: Server state' valuemaps: - uuid: 55b997715e1e4a4cb5272874b975b43a name: 'Control-M agent status' mappings: - value: '0' newvalue: Available - value: '1' newvalue: Unavailable - value: '2' newvalue: Disabled - value: '3' newvalue: Disable - value: '4' newvalue: Discovering - value: '10' newvalue: Unknown - uuid: 14b119c7f4a940ea91a8df8c4b114eca name: 'Control-M job status' mappings: - value: '0' newvalue: 'Ended OK' - value: '1' newvalue: 'Ended Not OK' - value: '2' newvalue: 'Wait User' - value: '3' newvalue: 'Wait Resource' - value: '4' newvalue: 'Wait Host' - value: '5' newvalue: 'Wait Workload' - value: '6' newvalue: 'Wait Condition' - value: '7' newvalue: Executing - value: '10' newvalue: Unknown - uuid: d6b4e3c8d5934bf08aeb19c8a2f52de4 name: 'Control-M job type' mappings: - value: '0' newvalue: Command - value: '1' newvalue: Script - value: '2' newvalue: 'File Transfer' - value: '3' newvalue: 'File Watcher' - value: '4' newvalue: Database - value: '5' newvalue: Hadoop - value: '6' newvalue: Dummy - value: '7' newvalue: Folder - value: '8' newvalue: Job - value: '10' newvalue: Unknown - uuid: f0e3072f0cc44236802ea58f13ebb3ae name: 'Control-M server status' mappings: - value: '0' newvalue: Down - value: '1' newvalue: Up - value: '10' newvalue: Unknown - uuid: 37a4770c51184c5e9a8d1306625babf3 name: 'Control-M true-false' mappings: - value: '0' newvalue: 'false' - value: '1' newvalue: 'true' - value: '10' newvalue: Unknown graphs: - uuid: afbfbcdb9b0949c7851fc809049d573f name: 'Control-M: Jobs statistics' graph_items: - color: 00FF00 item: host: 'Control-M server by HTTP' key: controlm.jobs.statistics.returned - sortorder: '1' color: 0000FF item: host: 'Control-M server by HTTP' key: controlm.jobs.statistics.total - uuid: 349829f644cd472d8caeae0059ca8527 name: 'Control-M: Server state' graph_items: - color: 00FF00 item: host: 'Control-M server by HTTP' key: server.state