Metrics Reference

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.

Dimensions

Metrics ofDimensions
A Capture Process or an Apply ProcessInstance (the parameter InstanceName of the stack), ProcessType (capture or apply) and ProcessId (the id of the process, as text)
The serverInstance

The metrics of a process

MetricUnitMeaningField of the status answer
RunningNone1 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
FailedNone1 when the status of the command is Failed.CommandStatus
CaughtUpNone1 when the process runs and waits for transactions: there is nothing to process at the moment.CommandStatus, StatusDetails
LoadingNone1 while the process runs the Initial Load.StatusDetails, Message
LagSecondsSecondsThe 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
IdleSecondsSecondsThe seconds since the activity of the process last changed.LastActivityTime
TransactionsTotalCountThe transactions handled since the process was started.CNTTX
InsertsTotalCountThe inserts handled since the process was started.CNTI
UpdatesTotalCountThe updates.CNTU
DeletesTotalCountThe deletes.CNTD
DDLTotalCountThe DDL statements.CNTDDL
LoadedRowsTotalCountThe 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.

The metrics of the server

MetricUnitMeaning
ApiUpNone1 when the status command was answered, 0 when it was not.
ProcessesCountThe 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.

Statistics and periods

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.

An example

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
}