add --chain-id to sentryd too
This commit is contained in:
parent
23f31c9129
commit
4f9d0f6336
@ -366,7 +366,7 @@ fn main() -> anyhow::Result<()> {
|
|||||||
warn!("sentry_url is not set! Logs will only show in this console");
|
warn!("sentry_url is not set! Logs will only show in this console");
|
||||||
}
|
}
|
||||||
|
|
||||||
x.main(pagerduty_async).await
|
x.main(pagerduty_async, top_config).await
|
||||||
}
|
}
|
||||||
SubCommand::RpcAccounting(x) => {
|
SubCommand::RpcAccounting(x) => {
|
||||||
let db_url = cli_config
|
let db_url = cli_config
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
mod compare;
|
mod compare;
|
||||||
mod simple;
|
mod simple;
|
||||||
|
|
||||||
|
use anyhow::Context;
|
||||||
use argh::FromArgs;
|
use argh::FromArgs;
|
||||||
use futures::{
|
use futures::{
|
||||||
stream::{FuturesUnordered, StreamExt},
|
stream::{FuturesUnordered, StreamExt},
|
||||||
@ -11,7 +12,7 @@ use pagerduty_rs::{eventsv2async::EventsV2 as PagerdutyAsyncEventsV2, types::Eve
|
|||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
use tokio::sync::mpsc;
|
use tokio::sync::mpsc;
|
||||||
use tokio::time::{interval, MissedTickBehavior};
|
use tokio::time::{interval, MissedTickBehavior};
|
||||||
use web3_proxy::pagerduty::pagerduty_alert;
|
use web3_proxy::{config::TopConfig, pagerduty::pagerduty_alert};
|
||||||
|
|
||||||
#[derive(FromArgs, PartialEq, Debug, Eq)]
|
#[derive(FromArgs, PartialEq, Debug, Eq)]
|
||||||
/// Loop healthchecks and send pager duty alerts if any fail
|
/// Loop healthchecks and send pager duty alerts if any fail
|
||||||
@ -21,6 +22,10 @@ pub struct SentrydSubCommand {
|
|||||||
/// the main (HTTP only) web3-proxy being checked.
|
/// the main (HTTP only) web3-proxy being checked.
|
||||||
web3_proxy: String,
|
web3_proxy: String,
|
||||||
|
|
||||||
|
/// the chain id to require. Only used if not using --config.
|
||||||
|
#[argh(option)]
|
||||||
|
chain_id: Option<u64>,
|
||||||
|
|
||||||
#[argh(option)]
|
#[argh(option)]
|
||||||
/// warning threshold for age of the best known head block
|
/// warning threshold for age of the best known head block
|
||||||
max_age: i64,
|
max_age: i64,
|
||||||
@ -50,9 +55,18 @@ struct Error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl SentrydSubCommand {
|
impl SentrydSubCommand {
|
||||||
pub async fn main(self, pagerduty_async: Option<PagerdutyAsyncEventsV2>) -> anyhow::Result<()> {
|
pub async fn main(
|
||||||
|
self,
|
||||||
|
pagerduty_async: Option<PagerdutyAsyncEventsV2>,
|
||||||
|
top_config: Option<TopConfig>,
|
||||||
|
) -> anyhow::Result<()> {
|
||||||
// sentry logging should already be configured
|
// sentry logging should already be configured
|
||||||
|
|
||||||
|
let chain_id = self
|
||||||
|
.chain_id
|
||||||
|
.or_else(|| top_config.map(|x| x.app.chain_id))
|
||||||
|
.context("--config or --chain-id required")?;
|
||||||
|
|
||||||
let web3_proxy = self.web3_proxy.trim_end_matches("/").to_string();
|
let web3_proxy = self.web3_proxy.trim_end_matches("/").to_string();
|
||||||
|
|
||||||
let other_proxy: Vec<_> = self
|
let other_proxy: Vec<_> = self
|
||||||
@ -85,7 +99,7 @@ impl SentrydSubCommand {
|
|||||||
|
|
||||||
if matches!(err.level, log::Level::Error) {
|
if matches!(err.level, log::Level::Error) {
|
||||||
let alert = pagerduty_alert(
|
let alert = pagerduty_alert(
|
||||||
None,
|
Some(chain_id),
|
||||||
Some(err.class),
|
Some(err.class),
|
||||||
"web3-proxy-sentry".to_string(),
|
"web3-proxy-sentry".to_string(),
|
||||||
None,
|
None,
|
||||||
|
Loading…
Reference in New Issue
Block a user