JMX Metrics
All oracdc source connectors publish metrics about their activity that can be monitored through JMX.
MBean Names
| Source | MBean |
|---|---|
| OraCdcRedoMinerConnector | solutions.a2.oracdc:type=RedoMiner-metrics,name=<connectorName>,database=$ORACLE_SID_hostname |
| OraCdcLogMinerConnector | solutions.a2.oracdc:type=LogMiner-metrics,name=<connectorName>,database=$ORACLE_SID_hostname |
| Initial load | solutions.a2.oracdc:type=Initial-Load-metrics,name=<connectorName>,database=$ORACLE_SID_hostname |
| Redo shipment (distributed mode) | solutions.a2.oracdc:type=Shipment-metrics,targetServer=<targetHost>-<targetPort> |
Available Metrics
Table and Partition Metrics
| Attribute | Type | Description |
|---|---|---|
| TablesInProcessingCount | int | Number of tables in processing |
| TablesInProcessing | String[] | Names of tables in processing |
| PartitionsInProcessingCount | int | Number of partitions and subpartitions in processing |
| TableOutOfScopeCount | int | Number of tables from the journal that do not meet the a2.include criteria |
Redo Log Processing
| Attribute | Type | Description |
|---|---|---|
| Last100ProcessedRedoLogs | String[] | Last 100 processed redo logs |
| LastProcessedRedoLog | String | Last processed redo log |
| LastProcessedScn | long | Last processed SCN |
| LastProcessedSequence | long | Last processed log sequence |
| LastProcessedRedoLogTime | String | Time when the last redo log was processed |
| CurrentlyProcessedRedoLog | String | Redo log currently being processed |
| CurrentFirstScn | long | min(FIRST_CHANGE#) for redo logs currently being processed |
| CurrentNextScn | long | max(NEXT_CHANGE#) for redo logs currently being processed |
| ProcessedRedoLogsCount | int | Number of processed redo logs |
| ProcessedRedoLogsSizeGb | float | Size (GB) of processed redo logs |
Timing and Performance
| Attribute | Type | Description |
|---|---|---|
| StartTime | String | Connector start date and time (ISO format) |
| StartScn | long | Connector start SCN |
| ElapsedTimeMillis | long | Elapsed time in milliseconds |
| ElapsedTime | String | Elapsed time in Days/Hours/Minutes/Seconds |
| ParseElapsedMillis | long | Time spent parsing raw bytes, milliseconds |
| ParseElapsed | String | Time spent parsing, Days/Hours/Minutes/Seconds |
| ParsePerSecond | int | Average number of records parsed per second |
| RedoReadElapsedMillis | long | Time spent reading redo logs, milliseconds |
| RedoReadElapsed | String | Time spent reading redo logs, Days/Hours/Minutes/Seconds |
| RedoReadMbPerSecond | float | Average MB per second of redo log reading |
Record and Transaction Counts
| Attribute | Type | Description |
|---|---|---|
| TotalRecordsCount | long | Total number of records processed |
| RolledBackRecordsCount | long | Number of rolled back records processed |
| RolledBackTransactionsCount | int | Number of rolled back transactions processed |
| CommittedRecordsCount | long | Number of committed records processed |
| CommittedTransactionsCount | int | Number of committed transactions processed |
| SentRecordsCount | long | Number of records already sent to Kafka broker |
| SentBatchesCount | int | Number of Connector poll() calls |
Lag Monitoring
| Attribute | Type | Description |
|---|---|---|
| ActualLagSeconds | int | Actual lag in seconds (SYSDATE - V$ARCHIVED_LOG.FIRST_TIME) |
| ActualLagText | String | Actual lag in Days/Hours/Minutes/Seconds |
DDL Processing
| Attribute | Type | Description |
|---|---|---|
| DdlColumnsCount | int | Number of successfully changed columns by DDL commands |
| DdlElapsedMillis | long | Time spent processing DDL commands, milliseconds |
| DdlElapsed | String | Time spent processing DDL commands |
Transaction Queue Metrics
| Attribute | Type | Description |
|---|---|---|
| MaxTransactionSizeBytes | long | Maximum transaction size (off-heap storage), bytes |
| MaxTransactionSizeMiB | float | Maximum transaction size, MiB |
| MaxNumberOfTransInSendQueue | int | Maximum committed transactions in send queue |
| CurrentNumberOfTransInSendQueue | int | Current committed transactions in send queue |
| MaxNumberOfTransInProcessingQueue | int | Maximum committed transactions in processing queue |
| CurrentNumberOfTransInProcessingQueue | int | Current committed transactions in processing queue |
Off-Heap Storage
| Attribute | Type | Description |
|---|---|---|
| NumBytesWrittenUsingOffHeapMem | long | Total bytes written to off-heap memory-mapped files |
| GiBWrittenUsingOffHeapMem | float | Total GiB written to off-heap memory-mapped files |
Initial Load Metrics
Published while an initial load is running (a2.initial.load=EXECUTE) under the Initial-Load-metrics MBean.
| Attribute | Type | Description |
|---|---|---|
| StartTime | String | Initial load start date and time (ISO format) |
| ElapsedTimeMillis | long | Elapsed time in milliseconds |
| ElapsedTime | String | Elapsed time in Days/Hours/Minutes/Seconds |
| ProcessingTimeMillis | long | Total processing time in milliseconds |
| ProcessingTime | String | Total processing time in Days/Hours/Minutes/Seconds |
| SqlSelectTimeMillis | long | Time spent selecting rows from the source database, milliseconds |
| SqlSelectTime | String | Time spent selecting rows, Days/Hours/Minutes/Seconds |
| SendTimeMillis | long | Time spent sending rows to Kafka, milliseconds |
| SendTime | String | Time spent sending rows, Days/Hours/Minutes/Seconds |
| SelectedRowsCount | long | Number of rows selected from the source database |
| SelectedRowsColumnsCount | long | Number of columns selected from the source database |
| ProcessedRowsCount | long | Number of rows sent to Kafka |
| ProcessedRowsColumnsCount | long | Number of columns sent to Kafka |
| RowsPerSecond | double | Average rows processed per second |
| RowsColumnsPerSecond | double | Average columns processed per second |
| CurrentSelectTableList | String[] | Tables currently being selected |
| CurrentSendTableList | String[] | Tables currently being sent to Kafka |
| ProcessedTableCount | int | Number of tables processed |
| Last500ProcessedTables | String[] | Last 500 processed tables |
Redo Shipment Metrics
Published in the distributed configuration when archived redo logs are shipped to a target mining server, under the Shipment-metrics MBean.
| Attribute | Type | Description |
|---|---|---|
| StartTime | String | Shipment start date and time (ISO format) |
| ElapsedTimeMillis | long | Elapsed time in milliseconds |
| ElapsedTime | String | Elapsed time in Days/Hours/Minutes/Seconds |
| ShipmentTimeMillis | long | Time spent shipping redo files, milliseconds |
| ShipmentTime | String | Time spent shipping redo files, Days/Hours/Minutes/Seconds |
| ProcessedFilesCount | int | Number of redo files shipped |
| ProcessedBytesCount | long | Bytes shipped |
| ProcessedMiB | float | MiB shipped |
| ProcessedGiB | float | GiB shipped |
| LastProcessedFile | String | Last shipped redo file |
| Last100ProcessedFiles | String[] | Last 100 shipped redo files |
| MiBPerSecond | float | Average shipment throughput, MiB per second |
| GiBPerSecond | float | Average shipment throughput, GiB per second |
Capacity Planning
Use the following metrics to determine required disk space for off-heap transaction storage (memory-mapped files), Docker tmpfs mounts, or Kubernetes emptyDir volumes:
- MaxTransactionSizeMiB - peak memory for a single transaction
- MaxNumberOfTransInProcessingQueue - peak concurrent transactions
- GiBWrittenUsingOffHeapMem - total off-heap data written over time