diff --git a/dappnode_package.json b/dappnode_package.json index 26caa33..6cdec03 100644 --- a/dappnode_package.json +++ b/dappnode_package.json @@ -35,8 +35,13 @@ "EXECUTION_CLIENT_GNOSIS", "CONSENSUS_CLIENT_GNOSIS", "EXECUTION_CLIENT_LUKSO", - "CONSENSUS_CLIENT_LUKSO" + "CONSENSUS_CLIENT_LUKSO", + "MEVBOOST_MAINNET", + "MEVBOOST_GNOSIS", + "MEVBOOST_PRATER", + "MEVBOOST_LUKSO" ], + "services": ["stakers-metrics"] } ], diff --git a/releases.json b/releases.json deleted file mode 100644 index 4cdc4e4..0000000 --- a/releases.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "0.1.0": { - "hash": "/ipfs/QmZUZAmPgs7ZXzcvcH9yLdkFTnR38JNt2XGT3YvaUzJD7t", - "type": "directory", - "uploadedTo": { - "remote": "Sat, 16 May 2020 18:17:22 GMT" - }, - "link": "http://my.dappnode/#/sdk/publish/r=dappnode-exporter.dnp.dappnode.eth&v=0.1.0&h=%2Fipfs%2FQmZUZAmPgs7ZXzcvcH9yLdkFTnR38JNt2XGT3YvaUzJD7t&d=0xF35960302a07022aBa880DFFaEC2Fdd64d5BF1c1" - }, - "0.1.1": { - "type": "directory", - "uploadedTo": { - "dappnode": "Thu, 12 Nov 2020 11:56:04 GMT" - }, - "link": "http://my.dappnode/#/sdk/publish/r=dappnode-exporter.dnp.dappnode.eth&v=0.1.1&h=%2Fipfs%2FQmPWQ7CMsK5um8wwUE7i21zju6URB1Y2e6zBNWdtAZTwNX" - }, - "0.1.2": { - "hash": "/ipfs/QmZA5YeZdScdo9ZVwDy38mhqNoavcvDXB6JtbaCp9vMwbV", - "uploadedTo": { - "remote": "Thu, 27 Jul 2023 18:47:16 GMT" - } - }, - "0.1.3": { - "hash": "/ipfs/QmQXrqHRJgW1hd3bQbUtQ2mTWYrmVcarsQfZQMonVRd2M5", - "uploadedTo": { - "remote": "Thu, 27 Jul 2023 19:08:34 GMT" - } - }, - "1.0.2": { - "hash": "/ipfs/Qmdpxu5zDLuFDL91JyMeMPHXnnAFQBRegdrZ1JFppWJWAq", - "uploadedTo": { - "remote": "Fri, 28 Jul 2023 09:47:50 GMT" - } - }, - "1.0.3": { - "hash": "/ipfs/QmRS8XqdwhXPd5atRhVShjsp6FaaTH8Vhegjp1AkS5c2j2", - "uploadedTo": { - "remote": "Fri, 28 Jul 2023 12:48:54 GMT" - } - } -} diff --git a/stakers-metrics/src/metrics.ts b/stakers-metrics/src/metrics.ts index b2ff99a..69117be 100644 --- a/stakers-metrics/src/metrics.ts +++ b/stakers-metrics/src/metrics.ts @@ -41,6 +41,16 @@ const executionPeerCountMetric = new promClient.Gauge({ }, }); +const mevBoostMetric = new promClient.Gauge({ + name: "mev_boost_enabled", + help: "MEV Boost status for each network (1 if enabled, 0 if disabled)", + labelNames: ["network"], + async collect() { + await Promise.all(networks.map((network) => collectMevBoostMetric(network))); + }, +}); + + async function collectPeerCount(network: typeof networks[number], type: "execution" | "consensus") { const clientUrl = getClientUrl(network, type); if (!clientUrl) { @@ -96,10 +106,25 @@ async function collectSyncingMetric(network: typeof networks[number], type: "exe metric.set({ network: network }, isSyncing); } +async function collectMevBoostMetric(network: typeof networks[number]) { + + const mevBoostStatus = getMevBoostStatus(network); + mevBoostMetric.set({ network }, mevBoostStatus); +} + +function getMevBoostStatus(network: typeof networks[number]): number { + const envKey = `_DAPPNODE_GLOBAL_MEVBOOST_${network.toUpperCase()}`; + + const mevBoostValue = process.env[envKey]; + + + return mevBoostValue === "true" ? 1 : 0; +} register.registerMetric(consensusPeerCountMetric); register.registerMetric(executionPeerCountMetric); register.registerMetric(executionSyncingMetric); register.registerMetric(consensusSyncingMetric); +register.registerMetric(mevBoostMetric); export { register };