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.
| Column | Type | Meaning | Field of the status answer |
|---|---|---|---|
| Instance | string | The name of the server: the parameter instanceName. | - |
| ProcessType | string | capture or apply. | - |
| ProcessId | string | The id of the process, as text (1). | - |
| ProcessName | string | The name of the Capture Process; for an Apply Process the name of the Capture Process that supplies it. | name |
| Running | int | 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 | int | 1 when the status of the command is Failed. | CommandStatus |
| CaughtUp | int | 1 when the process runs and waits for transactions: there is nothing to process at the moment. | CommandStatus, StatusDetails |
| Loading | int | 1 while the process runs the Initial Load. | StatusDetails, Message |
| LagSeconds | real | The 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 |
| IdleSeconds | real | The seconds since the activity of the process last changed. | LastActivityTime |
| TransactionsTotal | long | The transactions handled since the process was started. | CNTTX |
| InsertsTotal | long | The inserts handled since the process was started. | CNTI |
| UpdatesTotal | long | The updates. | CNTU |
| DeletesTotal | long | The deletes. | CNTD |
| DDLTotal | long | The DDL statements. | CNTDDL |
| LoadedRowsTotal | long | The rows loaded by the Initial Load since the process was started. | CNTLOBJREC |
| Command | string | The last command that the process was given: RUN or STOP. | Command |
| CommandStatus | string | The status of that command: In Process, Completed or Failed. | CommandStatus |
| StatusDetails | string | What the process does now, for example Waiting for Transactions. | StatusDetails |
| Message | string | The 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.
| Column | Type | Meaning |
|---|---|---|
| Instance | string | The name of the server: the parameter instanceName. |
| ApiUp | int | 1 when the status command was answered, 0 when it was not. |
| Processes | int | The number of the processes that the answer contains. |
| Url | string | The address that the function called. |
| Version | string | The version of the function app. |
| Error | string | Empty, or why the status command was not answered (see Install the Monitoring Function). |
The state of every process now:
RepstanceProcess_CL
| where Instance == "prod"
| summarize arg_max(TimeGenerated, *) by ProcessType, ProcessId
| project ProcessType, ProcessId, Running, Failed, LagSeconds, TimeGeneratedThe 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 20The 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 ascA 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).
Prev page:
Azure Monitor AlertsNext page:
TROUBLESHOOTING AND FAQ