Skip to content

Commit

Permalink
feat(monitor): Add better logs about configured chainIds (#865)
Browse files Browse the repository at this point in the history
* feat(monitor): Add better logs about configured chainIds

* WIP
  • Loading branch information
nicholaspai committed Aug 9, 2023
1 parent 2700943 commit ddd2b64
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 19 deletions.
6 changes: 6 additions & 0 deletions src/clients/bridges/AdapterManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,12 @@ export class AdapterManager {
if (this.spokePoolClients[42161] !== undefined) {
this.adapters[42161] = new ArbitrumAdapter(logger, spokePoolClients, monitoredAddresses);
}

logger.debug({
at: "AdapterManager#constructor",
message: "Initialized AdapterManager",
adapterChains: Object.keys(this.adapters).map((chainId) => Number(chainId)),
});
}

/**
Expand Down
8 changes: 7 additions & 1 deletion src/clients/bridges/CrossChainTransferClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,13 @@ export class CrossChainTransferClient {
readonly logger: winston.Logger,
readonly chainIdList: number[],
readonly adapterManager: AdapterManager
) {}
) {
logger.debug({
at: "CrossChainTransferClient#constructor",
message: "Initialized CrossChainTransferClient",
chainIdList,
});
}

// Get any funds currently in the canonical bridge.
getOutstandingCrossChainTransferAmount(address: string, chainId: number | string, l1Token: string): BigNumber {
Expand Down
20 changes: 10 additions & 10 deletions src/monitor/Monitor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ export class Monitor {
}

async checkUtilization(): Promise<void> {
this.logger.debug({ at: "AcrossMonitor#Utilization", message: "Checking for pool utilization ratio" });
this.logger.debug({ at: "Monitor#checkUtilization", message: "Checking for pool utilization ratio" });
const l1Tokens = this.clients.hubPoolClient.getL1Tokens();
const l1TokenUtilizations = await Promise.all(
l1Tokens.map(async (l1Token) => {
Expand All @@ -134,13 +134,13 @@ export class Monitor {
${etherscanLink(l1TokenUtilization.l1Token, l1TokenUtilization.chainId)} on \
${getNetworkName(l1TokenUtilization.chainId)} is at \
${createFormatFunction(0, 2)(utilizationString)}% utilization!"`;
this.logger.debug({ at: "UtilizationMonitor", message: "High pool utilization warning 🏊", mrkdwn });
this.logger.debug({ at: "Monitor#checkUtilization", message: "High pool utilization warning 🏊", mrkdwn });
}
}
}

async checkUnknownRootBundleCallers(): Promise<void> {
this.logger.debug({ at: "AcrossMonitor#RootBundleCallers", message: "Checking for unknown root bundle callers" });
this.logger.debug({ at: "Monitor#RootBundleCallers", message: "Checking for unknown root bundle callers" });

const proposedBundles = this.clients.hubPoolClient.getProposedRootBundlesInBlockRange(
this.hubPoolStartingBlock,
Expand Down Expand Up @@ -168,7 +168,7 @@ export class Monitor {

async checkUnknownRelayers(): Promise<void> {
const chainIds = this.monitorChains;
this.logger.debug({ at: "AcrossMonitor#UnknownRelayers", message: "Checking for unknown relayers", chainIds });
this.logger.debug({ at: "Monitor#checkUnknownRelayers", message: "Checking for unknown relayers", chainIds });
for (const chainId of chainIds) {
const fills = this.clients.spokePoolClients[chainId].getFillsWithBlockInRange(
this.spokePoolsBlocks[chainId].startingBlock,
Expand All @@ -183,7 +183,7 @@ export class Monitor {
const mrkdwn =
`An unknown relayer ${etherscanLink(fill.relayer, chainId)}` +
` filled a deposit on ${getNetworkName(chainId)}\ntx: ${etherscanLink(fill.transactionHash, chainId)}`;
this.logger.warn({ at: "Monitor", message: "Unknown relayer 🛺", mrkdwn });
this.logger.warn({ at: "Monitor#checkUnknownRelayers", message: "Unknown relayer 🛺", mrkdwn });
}
}
}
Expand Down Expand Up @@ -226,7 +226,7 @@ export class Monitor {
}

if (mrkdwn) {
this.logger.info({ at: "Monitor", message: "Unfilled deposits ⏱", mrkdwn });
this.logger.info({ at: "Monitor#reportUnfilledDeposits", message: "Unfilled deposits ⏱", mrkdwn });
}
}

Expand Down Expand Up @@ -273,7 +273,7 @@ export class Monitor {

mrkdwn += summaryMrkdwn;
this.logger.info({
at: "Monitor",
at: "Monitor#reportRelayerBalances",
message: `Balance report for ${relayer} 📖`,
mrkdwn,
});
Expand Down Expand Up @@ -534,7 +534,7 @@ export class Monitor {
if (transferBalance.gt(0)) {
const mrkdwn = `Rebalances of ${l1Token.symbol} to ${getNetworkName(chainId)} is stuck`;
this.logger.warn({
at: "Monitor",
at: "Monitor#checkStuckRebalances",
message: "HubPool -> SpokePool rebalances stuck 🦴",
mrkdwn,
transferBalance: transferBalance.toString(),
Expand Down Expand Up @@ -672,7 +672,7 @@ export class Monitor {

if (mrkdwn) {
this.logger.info({
at: "Monitor",
at: "Monitor#updateUnknownTransfers",
message: `Transfers that are not fills for relayer ${relayer} 🦨`,
mrkdwn,
});
Expand Down Expand Up @@ -836,7 +836,7 @@ export class Monitor {
`An unknown EOA ${etherscanLink(caller, 1)} has ${action} a bundle on ${getNetworkName(1)}` +
`\ntx: ${etherscanLink(transactionHash, 1)}`;
this.logger.error({
at: "Monitor",
at: "Monitor#notifyIfUnknownCaller",
message: `Unknown bundle caller (${action}) ${emoji}${
action === BundleAction.PROPOSED
? `. If proposer identity cannot be determined quickly, then the safe response is to call "disputeRootBundle" on the HubPool here ${etherscanLink(
Expand Down
16 changes: 8 additions & 8 deletions src/monitor/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export async function runMonitor(_logger: winston.Logger, baseSigner: Wallet): P
let clients;

try {
logger[startupLogLevel(config)]({ at: "AcrossMonitor#index", message: "Monitor started 🔭", config });
logger[startupLogLevel(config)]({ at: "Monitor#index", message: "Monitor started 🔭", config });

clients = await constructMonitorClients(config, logger, baseSigner);
const acrossMonitor = new Monitor(logger, config, clients);
Expand All @@ -24,25 +24,25 @@ export async function runMonitor(_logger: winston.Logger, baseSigner: Wallet): P
if (config.botModes.utilizationEnabled) {
await acrossMonitor.checkUtilization();
} else {
logger.debug({ at: "AcrossMonitor", message: "Utilization monitor disabled" });
logger.debug({ at: "Monitor#index", message: "Utilization monitor disabled" });
}

if (config.botModes.unknownRootBundleCallersEnabled) {
await acrossMonitor.checkUnknownRootBundleCallers();
} else {
logger.debug({ at: "AcrossMonitor", message: "UnknownRootBundleCallers monitor disabled" });
logger.debug({ at: "Monitor#index", message: "UnknownRootBundleCallers monitor disabled" });
}

if (config.botModes.unknownRelayerCallersEnabled) {
await acrossMonitor.checkUnknownRelayers();
} else {
logger.debug({ at: "AcrossMonitor", message: "UnknownRelayerCallers monitor disabled" });
logger.debug({ at: "Monitor#index", message: "UnknownRelayerCallers monitor disabled" });
}

if (config.botModes.stuckRebalancesEnabled) {
await acrossMonitor.checkStuckRebalances();
} else {
logger.debug({ at: "AcrossMonitor", message: "StuckRebalances monitor disabled" });
logger.debug({ at: "Monitor#index", message: "StuckRebalances monitor disabled" });
}

if (config.botModes.reportEnabled) {
Expand All @@ -55,20 +55,20 @@ export async function runMonitor(_logger: winston.Logger, baseSigner: Wallet): P
if (config.botModes.refillBalancesEnabled) {
await acrossMonitor.refillBalances();
} else {
logger.debug({ at: "AcrossMonitor", message: "Refiller disabled" });
logger.debug({ at: "Monitor#index", message: "Refiller disabled" });
}

if (config.botModes.balancesEnabled) {
await acrossMonitor.checkBalances();
} else {
logger.debug({ at: "AcrossMonitor", message: "CheckBalances monitor disabled" });
logger.debug({ at: "Monitor#index", message: "CheckBalances monitor disabled" });
}

await clients.multiCallerClient.executeTransactionQueue();

logger.debug({ at: "Monitor#index", message: `Time to loop: ${(Date.now() - loopStart) / 1000}s` });

if (await processEndPollingLoop(logger, "Monitor", config.pollingDelay)) {
if (await processEndPollingLoop(logger, "Monitor#index", config.pollingDelay)) {
break;
}
}
Expand Down

0 comments on commit ddd2b64

Please sign in to comment.