Table Reference

The function app of Install the Monitoring Function reads the answer of the status command (see Status of any Capture or Apply Processes) and writes the rows below to the workspace every minute. Both are custom tables: their names end in _CL, and the time of a row is in the column TimeGenerated.

RepstanceProcess_CL: one row for a process and a minute

ColumnTypeMeaningField of the status answer
InstancestringThe name of the server: the parameter instanceName.-
ProcessTypestringcapture or apply.-
ProcessIdstringThe id of the process, as text (1).-
ProcessNamestringThe name of the Capture Process; for an Apply Process the name of the Capture Process that supplies it.name
Runningint1 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
Failedint1 when the status of the command is Failed.CommandStatus
CaughtUpint1 when the process runs and waits for transactions: there is nothing to process at the moment.CommandStatus, StatusDetails
Loadingint1 while the process runs the Initial Load.StatusDetails, Message
LagSecondsrealThe seconds between the last change in the Source Database and the last change that the process has handled. Empty while the process does not run.LastDBLSNTime, CheckpointLSNTime
IdleSecondsrealThe seconds since the activity of the process last changed.LastActivityTime
TransactionsTotallongThe transactions handled since the process was started.CNTTX
InsertsTotallongThe inserts handled since the process was started.CNTI
UpdatesTotallongThe updates.CNTU
DeletesTotallongThe deletes.CNTD
DDLTotallongThe DDL statements.CNTDDL
LoadedRowsTotallongThe rows loaded by the Initial Load since the process was started.CNTLOBJREC
CommandstringThe last command that the process was given: RUN or STOP.Command
CommandStatusstringThe status of that command: In Process, Completed or Failed.CommandStatus
StatusDetailsstringWhat the process does now, for example Waiting for Transactions.StatusDetails
MessagestringThe text of the process: during an Initial Load the table that is loaded, for example Table Name: SOE.ORDERS; after a failure the error.Message

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 change divided by the seconds between two rows (see The Azure Workbook). Every process that exists has a row, also a process that is stopped.

RepstanceServer_CL: one row for a server and a minute

ColumnTypeMeaning
InstancestringThe name of the server: the parameter instanceName.
ApiUpint1 when the status command was answered, 0 when it was not.
ProcessesintThe number of the processes that the answer contains.
UrlstringThe address that the function called.
VersionstringThe version of the function app.
ErrorstringEmpty, or why the status command was not answered (see Install the Monitoring Function).

Queries to start with

The state of every process now:

RepstanceProcess_CL
| where Instance == "prod"
| summarize arg_max(TimeGenerated, *) by ProcessType, ProcessId
| project ProcessType, ProcessId, Running, Failed, LagSeconds, TimeGenerated

The times that the server did not answer, with the reason:

RepstanceServer_CL
| where Instance == "prod" and ApiUp == 0
| order by TimeGenerated desc
| project TimeGenerated, Error
| take 20

The highest lag of the Apply Process 1 in every hour of the last day:

RepstanceProcess_CL
| where TimeGenerated > ago(1d) and Instance == "prod" and ProcessType == "apply" and ProcessId == "1"
| summarize MaxLag = max(LagSeconds) by bin(TimeGenerated, 1h)
| order by TimeGenerated asc

The data that the workspace holds, and what it costs

A row of RepstanceProcess_CL is about 0.4 KB and a row of RepstanceServer_CL about 0.15 KB, so a server with ten processes writes about 4 MB a day. The log of the function app (the tables AppTraces, AppMetrics and AppPerformanceCounters) is bigger, about 11 MB a day (measured). The workspace charges for the data that it takes in (see Monitoring with Azure Monitor).