Package io.debezium.relational.history
Class DatabaseHistoryMetrics
- java.lang.Object
-
- io.debezium.metrics.Metrics
-
- io.debezium.relational.history.DatabaseHistoryMetrics
-
- All Implemented Interfaces:
DatabaseHistoryListener
,DatabaseHistoryMXBean
public class DatabaseHistoryMetrics extends Metrics implements DatabaseHistoryListener, DatabaseHistoryMXBean
Implementation ofDatabaseSchema
metrics.- Author:
- Jiri Pechanec
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DatabaseHistoryMetrics.DatabaseHistoryStatus
-
Field Summary
Fields Modifier and Type Field Description private AtomicLong
changesRecovered
private static String
CONTEXT_NAME
private HistoryRecord
lastAppliedChange
private Instant
lastChangeAppliedTimestamp
private Instant
lastChangeRecoveredTimestamp
private HistoryRecord
lastRecoveredChange
private static org.slf4j.Logger
LOGGER
private static Duration
PAUSE_BETWEEN_LOG_MESSAGES
private Instant
recoveryStartTime
private DatabaseHistoryMetrics.DatabaseHistoryStatus
status
private AtomicLong
totalChangesApplied
-
Fields inherited from interface io.debezium.relational.history.DatabaseHistoryListener
NOOP
-
-
Constructor Summary
Constructors Modifier Constructor Description DatabaseHistoryMetrics(CommonConnectorConfig connectorConfig)
protected
DatabaseHistoryMetrics(T taskContext, String contextName)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description long
getChangesApplied()
long
getChangesRecovered()
String
getLastAppliedChange()
String
getLastRecoveredChange()
long
getMilliSecondsSinceLastAppliedChange()
long
getMilliSecondsSinceLastRecoveredChange()
long
getRecoveryStartTime()
String
getStatus()
The database history starts inSTOPPED
state.void
onChangeApplied(HistoryRecord record)
Invoked for every change applied and not filtered.void
onChangeFromHistory(HistoryRecord record)
Invoked for every change read from the history during recovery.void
recoveryStarted()
void
recoveryStopped()
void
started()
void
stopped()
-
Methods inherited from class io.debezium.metrics.Metrics
metricName, register, unregister
-
-
-
-
Field Detail
-
CONTEXT_NAME
private static final String CONTEXT_NAME
- See Also:
- Constant Field Values
-
PAUSE_BETWEEN_LOG_MESSAGES
private static final Duration PAUSE_BETWEEN_LOG_MESSAGES
-
LOGGER
private static final org.slf4j.Logger LOGGER
-
status
private DatabaseHistoryMetrics.DatabaseHistoryStatus status
-
recoveryStartTime
private Instant recoveryStartTime
-
changesRecovered
private AtomicLong changesRecovered
-
totalChangesApplied
private AtomicLong totalChangesApplied
-
lastChangeAppliedTimestamp
private Instant lastChangeAppliedTimestamp
-
lastChangeRecoveredTimestamp
private Instant lastChangeRecoveredTimestamp
-
lastAppliedChange
private HistoryRecord lastAppliedChange
-
lastRecoveredChange
private HistoryRecord lastRecoveredChange
-
-
Constructor Detail
-
DatabaseHistoryMetrics
protected DatabaseHistoryMetrics(T taskContext, String contextName)
-
DatabaseHistoryMetrics
public DatabaseHistoryMetrics(CommonConnectorConfig connectorConfig)
-
-
Method Detail
-
getStatus
public String getStatus()
Description copied from interface:DatabaseHistoryMXBean
The database history starts inSTOPPED
state. Upon start it transitions toRECOVERING
state. When all changes from stored history were applied then it switches toRUNNING
state.Maps to
DatabaseHistoryMetrics.DatabaseHistoryStatus
enum.- Specified by:
getStatus
in interfaceDatabaseHistoryMXBean
- Returns:
- database history component state
-
getRecoveryStartTime
public long getRecoveryStartTime()
- Specified by:
getRecoveryStartTime
in interfaceDatabaseHistoryMXBean
- Returns:
- time in epoch seconds when recovery has started
-
getChangesRecovered
public long getChangesRecovered()
- Specified by:
getChangesRecovered
in interfaceDatabaseHistoryMXBean
- Returns:
- number of changes that were read during recovery phase
-
getChangesApplied
public long getChangesApplied()
- Specified by:
getChangesApplied
in interfaceDatabaseHistoryMXBean
- Returns:
- number of changes that were applied during recovery phase increased by number of changes applied during runtime
-
getMilliSecondsSinceLastAppliedChange
public long getMilliSecondsSinceLastAppliedChange()
- Specified by:
getMilliSecondsSinceLastAppliedChange
in interfaceDatabaseHistoryMXBean
- Returns:
- elapsed time in milliseconds since the last change was applied
-
getMilliSecondsSinceLastRecoveredChange
public long getMilliSecondsSinceLastRecoveredChange()
- Specified by:
getMilliSecondsSinceLastRecoveredChange
in interfaceDatabaseHistoryMXBean
- Returns:
- elapsed time in milliseconds since the last record was recovered from history
-
getLastAppliedChange
public String getLastAppliedChange()
- Specified by:
getLastAppliedChange
in interfaceDatabaseHistoryMXBean
- Returns:
- String representation of the last applied change
-
getLastRecoveredChange
public String getLastRecoveredChange()
- Specified by:
getLastRecoveredChange
in interfaceDatabaseHistoryMXBean
- Returns:
- String representation of the last recovered change
-
started
public void started()
- Specified by:
started
in interfaceDatabaseHistoryListener
-
stopped
public void stopped()
- Specified by:
stopped
in interfaceDatabaseHistoryListener
-
recoveryStarted
public void recoveryStarted()
- Specified by:
recoveryStarted
in interfaceDatabaseHistoryListener
-
recoveryStopped
public void recoveryStopped()
- Specified by:
recoveryStopped
in interfaceDatabaseHistoryListener
-
onChangeFromHistory
public void onChangeFromHistory(HistoryRecord record)
Description copied from interface:DatabaseHistoryListener
Invoked for every change read from the history during recovery.- Specified by:
onChangeFromHistory
in interfaceDatabaseHistoryListener
-
onChangeApplied
public void onChangeApplied(HistoryRecord record)
Description copied from interface:DatabaseHistoryListener
Invoked for every change applied and not filtered.- Specified by:
onChangeApplied
in interfaceDatabaseHistoryListener
-
-