The EnterWorks Monitor API endpoints are used to monitor the health of EnterWorks services, job status, and workflow status.
The EnterWorks Monitor API endpoints are accessed at:
http://<hostname>:<port>/enterworks-monitor/<endpoint>
The service handling EnterWorks Monitor API requests is
enable-monitor-service
. When EnterWorks is installed, by
default the port enable-monitor-service
uses is 8092, however, your
EnterWorks system may have been configured differently. To determine what port your
EnterWorks system is using, see Determine which Port enable-monitor-service Uses.
For a description of all Job Status Codes and Job Type Codes, see Job Codes.
/enterworks-monitor/health
http://<hostname>:<port>/enterworks-monitor/health
Action type: GET
This endpoint retrieves information about when EPIM Tomcat, EPIM JBoss, and the
enable-<service-name>-services
last responded
to pings.
Response format:
{
"<service-name>": {
"hostName": "<hostname>",
"name": "<service-name>",
"pingTime": "<MMddyyyy_hhmm>",
"received": "<yyyy-MM-ddThh:mm:ss.sssssssZ>",
"received_time": "<MMddyyyy_hhmm>",
"since": <d.dd>
},
...
}
Response Field | Type | Description |
---|---|---|
<service-name> |
String | Name of the service the health-status object is for. Value can
be:
|
hostName |
String | Hostname of the server. |
name |
String | Name of the service. |
pingTime | String | When the service was last pinged, in the format: MMddyyyy_hhmm. |
received |
String | A timestamp of when the ping was returned, in the format: yyyy-MM-ddThh:mm:ss.sssssssZ. |
received_time |
String | When the ping was returned, in the format: MMddyyyy_hhmm. |
since |
Float | Seconds and nanoseconds since the service was last active. |
{
"ENABLE_APPCONTROLLER": {
"hostName": "EW-Develop:8034",
"name": "ENABLE_APPCONTROLLER",
"pingTime": "10132023_1320",
"received": "2023-10-13T13:20:00.0131311Z",
"received_time": "10132023_1320",
"since": 23.1628888
},
"EPIM_TOMCAT": {
"hostName": "EW-Develop:8090",
"name": "EPIM_TOMCAT",
"pingTime": "10132023_1320",
"received": "2023-10-13T13:20:03.0705192Z",
"received_time": "10132023_1320",
"since": 20.1055107
}
}
/enterworks-monitor/running-jobs/count
http://<hostname>:<port>/enterworks-monitor/running-jobs/count
Action type: GET
Retrieves the number of jobs that are running, the Job ID of the job that has been running for the longest amount of time, and how long that job has been running.
Response format:
{
"TOTAL_JOBS": <number-of-jobs>,
"JOB_ID": <job-id>,
"MAX_TIME_RUNNING": <time-running>
}
Response Field | Type | Description |
---|---|---|
TOTAL_JOBS | Integer | The number of jobs that are running. |
JOB_ID | Integer | The ID of the job that has been running the longest. |
MAX_TIME_RUNNING | Integer | How many minutes the job that has been running the longest has been running. |
Sample Response:
{
"TOTAL_JOBS": 0,
"JOB_ID": 0,
"MAX_TIME_RUNNING": 0
}
/enterworks-monitor/queued-jobs/count
http://<hostname>:<port>/enterworks-monitor/queued-jobs/count
Action type: GET
Retrieves the number of jobs that are queued, the Job ID of the job that has been queued for the longest amount of time, and how long that job has been queued.
Response format:
{
"TOTAL_JOBS": <number-of-jobs-running>,
"JOB_ID": <job-id>,
"TIME_FROM_SUBMITTED": <time-since-submitted>
}
Response Field | Type | Description |
---|---|---|
TOTAL_JOBS | Integer | The number of jobs that are queued. |
JOB_ID | Integer | The ID of the queued job that has the queued the longest. |
TIME_FROM_SUBMITTED | Integer | How many minutes the job that has been queued the longest has been queued. |
Sample Response:
{
"TOTAL_JOBS": 6,
"JOB_ID": 10344,
"TIME_FROM_SUBMITTED": 2854
}
/enterworks-monitor/running-jobs/status/
http://<hostname>:<port>/enterworks-monitor/running-jobs/status
Action type: GET
For each job that is running, retrieves the job ID, type of job, job status, when the job began processing, and how many minutes it has been processing.
Response format:
{
"JobList": [
{
"JOB_ID": <job-id>,
"STATUS": "<status-code>",
"START_TIME": "<job-start-time>",
"JOB_TYPE_CODE": "<job-type-code>",
"MinutesProcessing": <n>
}
]
}
Response Field | Type | Description |
---|---|---|
JobList | A list of job data objects. | A list of the jobs that are currently running and their statuses. |
JOB_ID | Integer | The job's ID. |
STATUS | Integer | The job's status. |
START_TIME | String | When the job began processing, in the format: yyy-MM-dd hh:mm:ss.sss. |
JOB_TYPE_CODE | String | The type of job. |
MinutesProcessing | Integer | How many minutes the job has been running. |
Sample Response:
{
"JobList": [
{
"JOB_ID": 11983,
"STATUS" :1,
"START_TIME": "2022-07-20 17:54:44.747",
"JOB_TYPE_CODE": "12",
"MinutesProcessing": 673236
}
]
}
/enterworks-monitor/queued-jobs/status
http://<hostname>:<port>/enterworks-monitor/queued-jobs/status
Action type: GET
For each job that is queued, retrieves the job ID, type of job, the next execution time, and when the job was submitted.
Response format:
{
"JobList": [
{
"JOB_ID": <job-id>,
"JOB_TYPE_CODE": "<job-type-code>",
"NEXT_EXECUTION_TIME": "<when-job-will-run>",
"TIME_FROM_SUBMITTED": <time-since-job-submitted>
}
]
}
Response Field | Type | Description |
---|---|---|
JobList | A list of job data objects. | A list of the jobs that are currently queued and their statuses. |
JOB_ID | Integer | The job's ID. |
JOB_TYPE_CODE | String | The type of job. |
NEXT_EXECUTION_TIME | String | When the job was submitted, in the format: yyyy-MM-ddThh:mm:ss.sssZ. |
TIME_FROM_SUBMITTED | Integer | How many minutes it has been since the job was submitted. |
Sample Response:
{
"JobList": [
{
"JOB_ID": 209233,
"JOB_TYPE_CODE": "12",
"NEXT_EXECUTION_TIME": "2022-01-12T00:12:22.19Z",
"TIME_FROM_SUBMITTED": 5
}
]
}
/enterworks-monitor/unpurged-completed-workflow/status
http://<hostname>:<port>/enterworks-monitor/unpurged-completed-workflow/status
Action type: GET
For each workflow end activity that has more than 5000 unpurged work items, this endpoint returns the workflow process name, the activity name, and the number of work items at the activity.
Response format:
{
"WorkItemList":[
{
"PROCESS_NAME": "<workflow-name>",
"ACTIVITY_NAME": "<workflow-activity-name>",
"WORKITEMS_NUMBER": <number-of-work-items-at-the-activity>
}
]
}
Response Field | Type | Description |
---|---|---|
WorkItemList | A list of workflow activities data objects. | A list of workflow activities that have more than 5000 work items. |
PROCESS_NAME | String | The workflow name. |
ACTIVITY_NAME | String | The workflow activity name. |
WORKITEMS_NUMBER | Integer | How many work items the activity has. |
Sample Response:
{
"WorkItemList":[
{
"PROCESS_NAME": "Change Notification Process",
"ACTIVITY_NAME": "Work Item End",
"WORKITEMS_NUMBER": 17258
}
]
}
/enterworks-monitor/built-in-workflow-error/status
http://<hostname>:<port>/enterworks-monitor/built-in-workflow-error/status
Action type: GET
For the EnterWorks predefined workflows, for each automatic activity that has work items stuck because of an error, this endpoint returns the workflow name, activity name, BIC name, and how many work items are stuck.
Response format:
{
"WorkItemList": [
{
"PROCESS_NAME": "<workflow-name>",
"ACTIVITY_NAME": "<workflow-activity-name>",
"BIC_NAME": "<name-of-bic>",
"WORKITEMS_NUMBER": <number-of-work-items-stuck-at-the-activity>
}
]
}
Response Field | Type | Description |
---|---|---|
WorkItemList | A list of workflow activities data objects. | A list of workflow activities that have errors. |
PROCESS_NAME | String | The workflow name. |
ACTIVITY_NAME | String | The workflow activity name. |
BIC_NAME | String | The name of the BIC. |
WORKITEMS_NUMBER | Integer | How many work items the activity has. |
Sample Response:
{
"WorkItemList": [
{
"PROCESS_NAME": "Monitor Flows",
"ACTIVITY_NAME": "Find Errors",
"BIC_NAME": "Flow Monitor BIC",
"WORKITEMS_NUMBER": 12
}
]
}
/enterworks-monitor/custom-workflow-error/status
http://<hostname>:<port>/enterworks-monitor/custom-workflow-error/status
Action type: GET
Custom workflows are any workflows that are not predefined EnterWorks workflows. For the custom workflows, for each automatic activity that has work items stuck because of an error, this endpoint returns the workflow name, activity name, BIC name, and how many work items are stuck.
Response format:
{
"WorkItemList": [
{
"PROCESS_NAME": "<workflow-name>",
"ACTIVITY_NAME": "<workflow-activity-name>",
"BIC_NAME": "<name-of-bic>",
"WORKITEMS_NUMBER": <number-of-work-items-at-the-activity>
}
]
}
Response Field | Type | Description |
---|---|---|
WorkItemList | A list of workflow activities data objects. | A list of workflow activities that have errors. |
PROCESS_NAME | String | The workflow name. |
ACTIVITY_NAME | String | The workflow activity name. |
BIC_NAME | String | The name of the BIC. |
WORKITEMS_NUMBER | Integer | How many work items the activity has. |
Sample Response:
{
"WorkItemList": [
{
"PROCESS_NAME": "Custom Export Process",
"ACTIVITY_NAME": "AutoStart",
"BIC_NAME": "Scheduler BIC",
"WORKITEMS_NUMBER": 12
}
]
}
/enterworks-monitor/background-activities-running/status
http://<hostname>:<port>/enterworks-monitor/background-activities-running/status
Action type: GET
For EnterWorks system workflows and custom workflows, for each automatic activity that is not a lock activity, if the activity does not have work items stuck with errors, this endpoint returns the activity's workflow process name, activity name, BIC name, and how many work items it has.
Response format:
{
"WorkItemList": [
{
"PROCESS_NAME": "<workflow-name>",
"ACTIVITY_NAME": "<workflow-activity-name>",
"BIC_NAME": "<name-of-bic>",
"WORKITEMS_NUMBER": <number-of-work-items-at-the-activity>
}
]
}
Response Field | Type | Description |
---|---|---|
WorkItemList | A list of workflow activities data objects. | A list of workflow activities that are not locked and do not have errors. |
PROCESS_NAME | String | The workflow name. |
ACTIVITY_NAME | String | The workflow activity name. |
BIC_NAME | String | The name of the BIC. |
WORKITEMS_NUMBER | Integer | How many work items the activity has. |
Sample Response:
{
"WorkItemList": [
{
"PROCESS_NAME": " Monitor Flows ",
"ACTIVITY_NAME": "Find Errors",
"BIC_NAME": "Flow Monitor BIC",
"WORKITEMS_NUMBER": 15
}
]
}
/enterworks-monitor/background-activities-locked/status
http://<hostname>:<port>/enterworks-monitor/background-activities-locked/status
Action type: GET
For EnterWorks system workflows and custom workflows, for each automatic lock activity that does not have work items stuck with errors, this endpoint returns the activity's workflow name, activity name, BIC name, and how many work items it has.
Response format:
{
"WorkItemList": [
{
"PROCESS_NAME": "<workflow-name>",
"ACTIVITY_NAME": "<workflow-activity-name>",
"BIC_NAME": "<name-of-bic>",
"WORKITEMS_NUMBER": <number-of-work-items-at-the-activity>
}
]
}
Response Field | Type | Description |
---|---|---|
WorkItemList | A list of workflow activities data objects. | A list of workflow activities that are locked and do not have errors. |
PROCESS_NAME | String | The workflow name. |
ACTIVITY_NAME | String | The workflow activity name. |
BIC_NAME | String | The name of the BIC. |
WORKITEMS_NUMBER | Integer | How many work items the activity has. |
Sample Response:
{
"WorkItemList": [
{
"PROCESS_NAME": "Scheduled Export Process",
"ACTIVITY_NAME": "AutoStart",
"BIC_NAME": "Scheduler BIC",
"WORKITEMS_NUMBER": 1
}
]
}
/enterworks-monitor/completed-jobs/status
http://<hostname>:<port>/enterworks-monitor/completed-jobs/status
Action type: GET
For each job that completed without errors, retrieves the job ID, job type, start time, and status.
Response format:
{
"JobList": [
{
"JOB_ID": <job-id>,
"STATUS": "<status-code>",
"START_TIME": "<job-start-time>",
"JOB_TYPE_CODE": "<job-type-code>"
}
]
}
Response Field | Type | Description |
---|---|---|
JobList | A list of job data objects. | A list of the jobs that have completed and their statuses. |
JOB_ID | Integer | The job's ID. |
STATUS | String | The job's status. |
START_TIME | String | A timestamp of when the job started, in the format: yyyy-MM-ddThh:mm:ss.sssZ. |
JOB_TYPE_CODE | String | The type of job. |
Sample Response:
{
"JobList": [
{
"JOB_ID": 11366,
"STATUS": "1",
"START_TIME": "2022-05-16T08:01:48.497Z",
"JOB_TYPE_CODE": "4"
}
]
}
/enterworks-monitor/error-jobs/status
http://<hostname>:<port>/enterworks-monitor/error-jobs/status
Action type: GET
For each job that completed with errors, retrieves the job ID, job type, start time, and status.
Response format:
{
"JobList": [
{
"JOB_ID": <job-id>,
"STATUS": "<status-code>",
"START_TIME": "<job-start-time>",
"JOB_TYPE_CODE": "<job-type-code>"
}
]
}
Response Field | Type | Description |
---|---|---|
JobList | A list of job data objects. | A list of the jobs that completed with errors and their statuses. |
JOB_ID | Integer | The job's ID. |
STATUS | String | The job's status. |
START_TIME | String | The start time of the job, in the format yyyy-MM-ddThh:mm:ss.sssZ. |
JOB_TYPE_CODE | String | The type of job. |
Sample Response:
{
"JobList": [
{
"JOB_ID": 22465,
"STATUS": "-1",
"START_TIME": "2022-08-23T13:57:43.033Z",
"JOB_TYPE_CODE": "12"
}
]
}
/enterworks-monitor/aborted-jobs/status
http://<hostname>:<port>/enterworks-monitor/aborted-jobs/status
Action type: GET
When a user aborts a job, an abort flag is set to tell the job to abort itself. The job routinely checks the flag to see if it needs to abort itself. If the job is stuck, it may not be able to check the abort flag, therefore it may not abort itself.
For each job that aborted itself, this endpoint retrieves the job's job ID, status, start time, job type, and its history status.
Response format:
{
"JobList": [
{
"JOB_ID": <job-id>,
"STATUS": "<status-code>",
"START_TIME": "<job-start-time>",
"JOB_TYPE_CODE": "<job-type-code>",
"ABORT_IND": "<abort-indicator-code>",
"HISTORY_STATUS": "<history-status-code>"
}
]
}
Response Field | Type | Description |
---|---|---|
JobList | A list of job data objects. | A list of the jobs that were aborted and their statuses. |
JOB_ID | Integer | The job's ID. |
STATUS | String | The job's status. |
START_TIME | String | A timestamp for when the job started. The format is: yyyy-MM-ddThh:mm:ss.sssZ. |
JOB_TYPE_CODE | String | The type of job. |
ABORT_IND | String | |
HISTORY_STATUS | String |
Sample Response:
{
"JobList": [
{
"JOB_ID": 11025,
"STATUS": "0",
"START_TIME": "2022-01-24T12:38:56.107Z",
"JOB_TYPE_CODE": "11",
"ABORT_IND": "1",
"HISTORY_STATUS": "4"
}
]
}
/enterworks-monitor/unfinished-aborted-jobs/status
http://<hostname>:<port>/enterworks-monitor/unfinished-aborted-jobs/status
Action type: GET
When a user aborts a job, an abort flag is set to tell the job to abort itself. The job routinely checks the flag to see if it needs to abort itself. If the job is stuck, it may not be able to check the abort flag, therefore it may not abort itself.
For each job that had its abort flag set, but the job did not abort itself, this endpoint retrieves the job's job ID, status, start time, job type, how many minutes it ran, why it aborted, and its history status.
Response format:
{
"JobList": [
{
"JOB_ID": <job-id>,
"STATUS": "<status-code>",
"START_TIME": "<job-start-time>",
"JOB_TYPE_CODE": "<job-type-code>",
"MINUTES_PROCESSING": <minutes-job-ran>,
"ABORT_IND": "<abort-indicator-code>",
"HISTORY_STATUS": "<history-status-code>"
}
]
}
Response Field | Type | Description |
---|---|---|
JobList | A list of job data objects. | A list of the jobs that are currently running and their statuses. |
JOB_ID | Integer | The job's ID. |
STATUS | String | The job's status. |
START_TIME | String | A timestamp for when the job started. The format is: yyyy-MM-ddThh:mm:ss.sssZ. |
JOB_TYPE_CODE | String | The job type. |
MINUTES_PROCESSING | Integer | The number of minutes the job was running. |
ABORT_IND | String | |
HISTORY_STATUS | String |
Sample Response:
{
"JobList": [
{
"JOB_ID": 22912,
"STATUS": "0",
"START_TIME": "2022-09-23T10:40:07.533Z",
"JOB_TYPE_CODE": "12",
"MINUTES_PROCESSING": 563121,
"ABORT_IND": "1",
"HISTORY_STATUS": "5"
}
]
}
/enterworks-monitor/workflow-threshold/count
http://<hostname>:<port>/enterworks-monitor/
Action type: GET
Returns the number of work items in all activities and the number of work item versions.
A work item version is created when a work item is created or it moves to a new
activity. Work item "churn" occurs when a work item is in a loop of automatic
activities. Depending on how quickly the work item loops through the automatic
activities, the number of work item versions can quickly escalate. Systems with many
work items in automatic activity loops can experience an impact to system
performance. Comparing the Number_Of_Workitems
to the
Number_Of_Workitems_Versions
can help you determine if work
item churn is an issue.
Response format:
{
"Number_Of_Workitems": 15,
"Number_Of_Workitems_Versions": 415563
}
Response Field | Type | Description |
---|---|---|
Number_Of_Workitems | Integer | The number of work items across all activities. |
Number_Of_Workitems_Versions | Integer | The number of work item versions across all activities. |
Sample Response:
{
"Number_Of_Workitems": 15,
"Number_Of_Workitems_Versions": 415563
}