From 76d08da6a3662b6fc6e3d745e27656d839080a9c Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 11 Feb 2025 11:11:16 +0300 Subject: [PATCH] feat: add new env, new conditions for env checks and logging * fix: disable collecting startup metrics on ipfs * feat: add RUN_SECRET_ENV_LOGGING, RUN_METRICS to yarn start * feat: renaming * feat(collectStartupChecksRPCMetrics): remove redundant developmentMode * feat(next.config): remove redundant typeof window === 'undefined' check --- global.d.ts | 1 + next.config.mjs | 6 ++---- package.json | 2 +- scripts/log-environment-variables.mjs | 5 ++++- utilsApi/metrics/startup-metrics.ts | 8 ++++---- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/global.d.ts b/global.d.ts index b6a18f89..4cd0bbdb 100644 --- a/global.d.ts +++ b/global.d.ts @@ -46,6 +46,7 @@ declare module 'next/config' { publicRuntimeConfig: { basePath: string | undefined; developmentMode: boolean; + collectMetrics: boolean; }; }; diff --git a/next.config.mjs b/next.config.mjs index c4935667..b18646a1 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -7,10 +7,7 @@ import { startupCheckRPCs } from './scripts/startup-checks/rpc.mjs'; logEnvironmentVariables(); buildDynamics(); -if ( - process.env.RUN_STARTUP_CHECKS === 'true' && - typeof window === 'undefined' -) { +if (process.env.RUN_STARTUP_CHECKS === 'true') { void startupCheckRPCs(); } @@ -179,5 +176,6 @@ export default withBundleAnalyzer({ publicRuntimeConfig: { basePath, developmentMode, + collectMetrics: process.env.COLLECT_METRICS === 'true', }, }); diff --git a/package.json b/package.json index 68507bde..c1c36e62 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "build": "NODE_OPTIONS='--no-warnings=ExperimentalWarning' next build", "build:analyze": "ANALYZE_BUNDLE=true yarn build", "build:ipfs": "IPFS_MODE=true yarn build && IPFS_MODE=true next export", - "start": "NODE_ENV=production RUN_STARTUP_CHECKS=true node -r next-logger --no-warnings=ExperimentalWarning server.mjs", + "start": "NODE_ENV=production COLLECT_METRICS=true RUN_STARTUP_CHECKS=true RUN_SECRET_ENV_LOGGING=true node -r next-logger --no-warnings=ExperimentalWarning server.mjs", "lint": "eslint --ext ts,tsx,js,mjs .", "lint:fix": "yarn lint --fix", "types": "tsc --noEmit", diff --git a/scripts/log-environment-variables.mjs b/scripts/log-environment-variables.mjs index b2347765..1454dc00 100644 --- a/scripts/log-environment-variables.mjs +++ b/scripts/log-environment-variables.mjs @@ -80,5 +80,8 @@ export const logSecretEnvironmentVariables = () => { export const logEnvironmentVariables = () => { logOpenEnvironmentVariables(); - logSecretEnvironmentVariables(); + + if (process.env.RUN_SECRET_ENV_LOGGING === 'true') { + logSecretEnvironmentVariables(); + } }; diff --git a/utilsApi/metrics/startup-metrics.ts b/utilsApi/metrics/startup-metrics.ts index d47011e4..ed2b5452 100644 --- a/utilsApi/metrics/startup-metrics.ts +++ b/utilsApi/metrics/startup-metrics.ts @@ -5,7 +5,7 @@ import buildInfoJson from 'build-info.json'; import { openKeys } from 'scripts/log-environment-variables.mjs'; import { getRPCChecks } from 'scripts/startup-checks/rpc.mjs'; -import { config, secretConfig } from 'config'; +import { config } from 'config'; import { METRICS_PREFIX } from 'consts/metrics'; import { StartupChecksRPCMetrics } from './startup-checks'; @@ -19,7 +19,7 @@ const collectStartupChecksRPCMetrics = async ( // Await the promise if it's still in progress const rpcChecksResults = await getRPCChecks(); - if (!rpcChecksResults && !secretConfig.developmentMode) { + if (!rpcChecksResults) { throw new Error( '[collectStartupChecksRPCMetrics] getRPCChecks resolved as "null"!', ); @@ -60,8 +60,8 @@ const collectEnvInfoMetrics = (registry: Registry): void => { export const collectStartupMetrics = async ( registry: Registry, ): Promise => { - // conflicts with HMR - if (config.developmentMode) return; + if (!config.collectMetrics) return; + collectEnvInfoMetrics(registry); collectBuildInfoMetrics({