The function of Install the Metrics Function reads the answer of the status command (see Status of any Capture or Apply Processes) and writes the values below to CloudWatch every minute, in the namespace Repstance.
| Metrics of | Dimensions |
|---|---|
| A Capture Process or an Apply Process | Instance (the parameter InstanceName of the stack), ProcessType (capture or apply) and ProcessId (the id of the process, as text) |
| The server | Instance |
| Metric | Unit | Meaning | Field of the status answer |
|---|---|---|---|
| Running | None | 1 when the last command is RUN and its status is In Process: the process runs. 0 for a process that is stopped, has failed or has only been initialised. | Command, CommandStatus |
| Failed | None | 1 when the status of the command is Failed. | CommandStatus |
| CaughtUp | None | 1 when the process runs and waits for transactions: there is nothing to process at the moment. | CommandStatus, StatusDetails |
| Loading | None | 1 while the process runs the Initial Load. | StatusDetails, Message |
| LagSeconds | Seconds | The time between the last change in the Source Database and the last change that the process has handled. Only while the process runs. | LastDBLSNTime, CheckpointLSNTime |
| IdleSeconds | Seconds | The seconds since the activity of the process last changed. | LastActivityTime |
| TransactionsTotal | Count | The transactions handled since the process was started. | CNTTX |
| InsertsTotal | Count | The inserts handled since the process was started. | CNTI |
| UpdatesTotal | Count | The updates. | CNTU |
| DeletesTotal | Count | The deletes. | CNTD |
| DDLTotal | Count | The DDL statements. | CNTDDL |
| LoadedRowsTotal | Count | The rows loaded by the Initial Load since the process was started. | CNTLOBJREC |
The counters are totals since the start of the current run of the process, like the numbers of repcli: they start again at 0 when the process is run again. Use the speed instead of the total: the function of CloudWatch RATE gives the change per second. After a restart of the process it gives one negative value.
| Metric | Unit | Meaning |
|---|---|---|
| ApiUp | None | 1 when the status command was answered, 0 when it was not. |
| Processes | Count | The number of the processes that the answer contains. |
Every metric is a custom metric of CloudWatch, which is charged per metric and month (see Monitoring with Amazon CloudWatch): a pair of processes has 24, a server 2.
The function writes one value per metric and minute, so with a period of 60 seconds every statistic gives the same number. For longer periods use Minimum for Running and ApiUp (the state is bad if it was bad once), Maximum for Failed, LagSeconds and the counters.
Whether the Apply Process 1 has run, for the last 15 minutes in steps of five minutes. The times are UTC; Minimum is 0.0 when the process did not run for the whole step:
aws cloudwatch get-metric-statistics --namespace Repstance --metric-name Running \
--dimensions Name=Instance,Value=prod Name=ProcessType,Value=apply Name=ProcessId,Value=1 \
--start-time 2026-10-22T16:46:00Z --end-time 2026-10-22T17:01:00Z --period 300 --statistics Minimum{
"Label": "Running",
"Datapoints": [
{
"Timestamp": "2026-10-22T16:56:00+00:00",
"Minimum": 0.0,
"Unit": "None"
},
{
"Timestamp": "2026-10-22T16:51:00+00:00",
"Minimum": 0.0,
"Unit": "None"
},
{
"Timestamp": "2026-10-22T16:46:00+00:00",
"Minimum": 0.0,
"Unit": "None"
}
]
}A record that the function writes (embedded metric format), here of an Apply Process that is stopped. CloudWatch takes the metrics from the part _aws; the other fields stay in the log and help to find the cause. While a process runs, its record also has LagSeconds, and during an Initial Load a Message that names the table that is loaded, for example Table Name: SOE.ORDERS:
{
"_aws": {
"Timestamp": 1792687684367,
"CloudWatchMetrics": [{
"Namespace": "Repstance",
"Dimensions": [["Instance", "ProcessType", "ProcessId"]],
"Metrics": [
{"Name": "Running", "Unit": "None"}, {"Name": "Failed", "Unit": "None"}, {"Name": "CaughtUp", "Unit": "None"},
{"Name": "Loading", "Unit": "None"}, {"Name": "IdleSeconds", "Unit": "Seconds"}, {"Name": "TransactionsTotal", "Unit": "Count"},
{"Name": "InsertsTotal", "Unit": "Count"}, {"Name": "UpdatesTotal", "Unit": "Count"}, {"Name": "DeletesTotal", "Unit": "Count"},
{"Name": "DDLTotal", "Unit": "Count"}, {"Name": "LoadedRowsTotal", "Unit": "Count"}
]
}]
},
"Instance": "prod",
"ProcessType": "apply",
"ProcessId": "622",
"ProcessName": "tz622",
"Command": "INITIALISED",
"CommandStatus": "Completed",
"StatusDetails": "Waiting for the Next Command",
"Running": 0,
"Failed": 0,
"CaughtUp": 0,
"Loading": 0,
"IdleSeconds": 5767.957,
"TransactionsTotal": 0,
"InsertsTotal": 0,
"UpdatesTotal": 0,
"DeletesTotal": 0,
"DDLTotal": 0,
"LoadedRowsTotal": 0
}
Prev page:
CloudWatch AlarmsNext page:
TROUBLESHOOTING AND FAQ