Service Check | MuleSoft Documentation
# Service Check
The _Service Check_ plug-in allows you to perform checks using various protocols and services, such as Ping, FTP, HTTP, etc., to see if a service is running and available on a particular server. This augments the classic end-to-end monitoring tools included with RPA Builder with some element monitoring checks.
The _Service Check_ plug-in consists of a single new action step called _Service Check_ – this is accessed in the same place as the other Action Step elements.
## Properties
**Backup Target Host** Enter the host name without protocol prefix. When the _Target Host_ cannot be reached, the _Backup Host_ will be checked instead. Leave blank if not required.
**Enable Error Trace** You can define a set of _Error Traces_ that will be executed when the check fails and this property is enabled
**Iteration Count/Iteration must succeed** Define how often the check should be repeated and how often it needs to be successful
**Iteration delay** If you defined more than one iteration, this specifies the pause in milliseconds between each iteration
**Packet Size (kb)** Shows you the payload of the sent packages. This is only relevant for TCP Ping.
**Protocol** Protocol to use for this check. Available values are: _Ping, TCP Echo, FTP, HTTP, HTTPS, SMTP, POP3, IMAP,_ and _TCP Portcheck_.
**Target Host** Enter the DNS name or IP address of the host without protocol prefix to check.
**Target Port** Which port to check on. Will be populated with default protocol after protocol is selected within the wizard.
**Timer Mode** When "Record Timer" is enabled and the _Ping_ is used in a loop, the following mode is for calculating the timer value:
  * **Last** The last time measured is saved
  * **Average** The Workflow calculates an average of all times measured and saves it
  * **Min** The fastest time measured is saved
  * **Max** The slowest time measured is saved


Other Properties that are the same in all action steps are described in the section on **Common Properties**. For reasons of clarity they are not shown here.
## Inbound Variables
**Target Host** Enter the DNS name or IP address of the host without protocol prefix to check.
**Backup Target Host** Enter the host name without protocol prefix. When the _Target Host_ cannot be reached, the _Backup Host_ will be checked instead. Leave blank if not required.
**Target Port** Which port to check on. Will be populated with default protocol after protocol is selected within the wizard.
**Packet Size** Shows you the payload of the sent packages. This is only relevant for TCP Ping.
**Suffix** can be used if the _Service Check_ is within the _Control Block_ 's _File Controlled Loop_. A suffix is then added to the name of the _Service Check_ during every loop. Each suffix is a column entry in the file that was imported in the _File Controlled Loop_.
## Outbound Variables
**Time** provides you the measured time.
## Wizard
_Service Check_ will connect to the specified _Target Host_ on the specified _Port_ and attempt to perform a default handshake for the chosen protocol. It will try as many times as defined in the _Iteration Count_. If you have activated the _Record Timer,_ the response time of the check will be recorded as a timer and sent to the server. The name appearing in the reporting corresponds to the name of the action step.
If it does not succeed after the defined number of attempts, it will fail and try again with the _Backup Host_. If the _Backup Host_ fails too (or the field is empty), the _Error Traces_ will be created and logged. You can define _Error Traces_ by clicking the appropriate button.
With _Define Error Traces_ you can configure the _Error Traces_. These are a set of checks that will be executed on failure. Each of these checks resembles a _Service Check_ , but it only has the properties _Protocol_], _Target Host_], _Port_], and _Timeout_]. _Error Traces_ may also use _Traceroute_ as the protocol – this will perform a standard trace route command and log the results.
Simply click in the empty row to create a new _Error Trace_. You can then choose the _Protocol_ (note that for _Error Traces_ , _Traceroute_ is available), specify the _Target Host_ and _Port_ , and change the _Timeout_ if required. Press **_Enter_** or click _OK_ when you are done. You can repeat this as often as you like to create as many _Error Traces_ as needed.