Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions packages/retryable-monitor/handlers/reportFailedRetryables.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
TokenDepositData,
} from '../core/types'
import { postSlackMessage } from './slack/postSlackMessage'
import { generateFailedRetryableSlackMessage } from './slack/slackMessageGenerator'
import { generateRetryableSlackBlocks } from './slack/slackMessageFormattingUtils'

export const reportFailedRetryables = async ({
parentChainRetryableReport,
Expand Down Expand Up @@ -49,7 +49,7 @@ export const reportFailedRetryables = async ({
)

try {
const reportStr = await generateFailedRetryableSlackMessage({
const blocks = await generateRetryableSlackBlocks({
parentChainRetryableReport,
childChainRetryableReport,
tokenDepositData,
Expand All @@ -58,7 +58,10 @@ export const reportFailedRetryables = async ({
childChainProvider,
})

postSlackMessage({ message: reportStr })
await postSlackMessage({
blocks,
message: `Failed Retryable Alert - [${childChain.name}] ${t.status}`,
})
} catch (e) {
console.log('Could not send slack message', e)
}
Expand Down
34 changes: 27 additions & 7 deletions packages/retryable-monitor/handlers/slack/postSlackMessage.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,38 @@
import { postSlackMessage as commonPostSlackMessage } from '../../../utils/postSlackMessage'
import {
postSlackMessage as commonPostSlackMessage,
postSlackBlocks as commonPostSlackBlocks,
} from '../../../utils/postSlackMessage'

const slackToken = process.env.RETRYABLE_MONITORING_SLACK_TOKEN
const slackChannel = process.env.RETRYABLE_MONITORING_SLACK_CHANNEL

export const postSlackMessage = ({ message }: { message: string }) => {
export const postSlackMessage = ({
message,
blocks,
}: {
message?: string
blocks?: any[]
}) => {
if (!slackToken) throw new Error(`Slack token is required.`)
if (!slackChannel) throw new Error(`Slack channel is required.`)

if (process.env.NODE_ENV === 'DEV') return
if (process.env.NODE_ENV === 'CI' && message === 'success') return

commonPostSlackMessage({
slackToken,
slackChannel,
message,
})
if (blocks) {
return commonPostSlackBlocks({
slackToken,
slackChannel,
blocks,
text: message || 'Failed Retryable Alert',
})
} else if (message) {
return commonPostSlackMessage({
slackToken,
slackChannel,
message,
})
} else {
throw new Error('Either message or blocks must be provided')
}
}
Loading