diff --git a/spartan/aztec-network/files/config/setup-service-addresses.sh b/spartan/aztec-network/files/config/setup-service-addresses.sh index b2bd95eedd6a..74ee2da683b1 100644 --- a/spartan/aztec-network/files/config/setup-service-addresses.sh +++ b/spartan/aztec-network/files/config/setup-service-addresses.sh @@ -123,7 +123,7 @@ else fi # Configure OTEL_COLLECTOR_ENDPOINT if not set in values file -if [ "${TELEMETRY:-false}" = "true" ] && [ "${OTEL_COLLECTOR_ENDPOINT}" = "" ] && [ "${USE_GCLOUD_OBSERVABILITY:-false}" = "false" ]; then +if [ "${TELEMETRY:-false}" = "true" ] && [ "${OTEL_COLLECTOR_ENDPOINT}" = "" ] && [ "${USE_GCLOUD_METRICS:-false}" = "false" ]; then OTEL_COLLECTOR_PORT=${OTEL_COLLECTOR_PORT:-4318} OTEL_COLLECTOR_ENDPOINT="http://metrics-opentelemetry-collector.metrics:$OTEL_COLLECTOR_PORT" fi diff --git a/spartan/aztec-network/templates/_helpers.tpl b/spartan/aztec-network/templates/_helpers.tpl index bcd198a3e94b..376b395fe559 100644 --- a/spartan/aztec-network/templates/_helpers.tpl +++ b/spartan/aztec-network/templates/_helpers.tpl @@ -167,8 +167,10 @@ Service Address Setup Container value: "{{ .Values.proverNode.service.nodePort }}" - name: PROVER_BROKER_PORT value: "{{ .Values.proverBroker.service.nodePort }}" - - name: USE_GCLOUD_OBSERVABILITY - value: "{{ .Values.telemetry.useGcloudObservability }}" + - name: USE_GCLOUD_LOGGING + value: "{{ .Values.telemetry.useGcloudLogging }}" + - name: USE_GCLOUD_METRICS + value: "{{ .Values.telemetry.useGcloudMetrics }}" - name: SERVICE_NAME value: {{ include "aztec-network.fullname" . }} volumeMounts: diff --git a/spartan/aztec-network/templates/blob-sink.yaml b/spartan/aztec-network/templates/blob-sink.yaml index 3bf384e25418..aafb0130daee 100644 --- a/spartan/aztec-network/templates/blob-sink.yaml +++ b/spartan/aztec-network/templates/blob-sink.yaml @@ -87,8 +87,10 @@ spec: value: "{{ .Values.blobSink.dataStoreConfig.dataDir }}" - name: DATA_STORE_MAP_SIZE_KB value: "{{ .Values.blobSink.dataStoreConfig.dataStoreMapSize }}" - - name: USE_GCLOUD_OBSERVABILITY - value: "{{ .Values.telemetry.useGcloudObservability }}" + - name: USE_GCLOUD_LOGGING + value: "{{ .Values.telemetry.useGcloudLogging }}" + - name: USE_GCLOUD_METRICS + value: "{{ .Values.telemetry.useGcloudMetrics }}" ports: - containerPort: {{ .Values.blobSink.service.nodePort }} resources: diff --git a/spartan/aztec-network/templates/boot-node.yaml b/spartan/aztec-network/templates/boot-node.yaml index 61c50ff9a218..87b155a921bc 100644 --- a/spartan/aztec-network/templates/boot-node.yaml +++ b/spartan/aztec-network/templates/boot-node.yaml @@ -131,8 +131,10 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - - name: USE_GCLOUD_OBSERVABILITY - value: "{{ .Values.telemetry.useGcloudObservability }}" + - name: USE_GCLOUD_LOGGING + value: "{{ .Values.telemetry.useGcloudLogging }}" + - name: USE_GCLOUD_METRICS + value: "{{ .Values.telemetry.useGcloudMetrics }}" {{- end }} containers: - name: boot-node @@ -247,8 +249,10 @@ spec: value: "{{ .Values.storage.dataStoreMapSize }}" - name: WS_DB_MAP_SIZE_KB value: "{{ .Values.storage.worldStateMapSize }}" - - name: USE_GCLOUD_OBSERVABILITY - value: "{{ .Values.telemetry.useGcloudObservability }}" + - name: USE_GCLOUD_LOGGING + value: "{{ .Values.telemetry.useGcloudLogging }}" + - name: USE_GCLOUD_METRICS + value: "{{ .Values.telemetry.useGcloudMetrics }}" - name: OTEL_EXCLUDE_METRICS value: "{{ .Values.telemetry.excludeMetrics }}" {{- if .Values.blobSink.enabled }} diff --git a/spartan/aztec-network/templates/deploy-l1-verifier.yaml b/spartan/aztec-network/templates/deploy-l1-verifier.yaml index 1fcccf022b0f..f09427bb3469 100644 --- a/spartan/aztec-network/templates/deploy-l1-verifier.yaml +++ b/spartan/aztec-network/templates/deploy-l1-verifier.yaml @@ -114,8 +114,10 @@ spec: value: "{{ .Values.proverNode.service.nodePort }}" - name: SERVICE_NAME value: {{ include "aztec-network.fullname" . }} - - name: USE_GCLOUD_OBSERVABILITY - value: "{{ .Values.telemetry.useGcloudObservability }}" + - name: USE_GCLOUD_LOGGING + value: "{{ .Values.telemetry.useGcloudLogging }}" + - name: USE_GCLOUD_METRICS + value: "{{ .Values.telemetry.useGcloudMetrics }}" volumeMounts: - name: config mountPath: /shared/config diff --git a/spartan/aztec-network/templates/faucet.yaml b/spartan/aztec-network/templates/faucet.yaml index e22d383daf68..640a60724183 100644 --- a/spartan/aztec-network/templates/faucet.yaml +++ b/spartan/aztec-network/templates/faucet.yaml @@ -88,8 +88,10 @@ spec: fieldPath: metadata.name - name: OTEL_SERVICE_NAME value: faucet - - name: USE_GCLOUD_OBSERVABILITY - value: "{{ .Values.telemetry.useGcloudObservability }}" + - name: USE_GCLOUD_LOGGING + value: "{{ .Values.telemetry.useGcloudLogging }}" + - name: USE_GCLOUD_METRICS + value: "{{ .Values.telemetry.useGcloudMetrics }}" - name: OTEL_EXCLUDE_METRICS value: "{{ .Values.telemetry.excludeMetrics }}" ports: diff --git a/spartan/aztec-network/templates/prover-agent.yaml b/spartan/aztec-network/templates/prover-agent.yaml index 19ec7954d9e5..6bbd4baf8007 100644 --- a/spartan/aztec-network/templates/prover-agent.yaml +++ b/spartan/aztec-network/templates/prover-agent.yaml @@ -103,8 +103,10 @@ spec: value: {{ join "," .Values.proverAgent.proofTypes | quote }} - name: OTEL_RESOURCE_ATTRIBUTES value: service.name={{ .Release.Name }},service.namespace={{ .Release.Namespace }},service.version={{ .Chart.AppVersion }},environment={{ .Values.environment | default "production" }} - - name: USE_GCLOUD_OBSERVABILITY - value: "{{ .Values.telemetry.useGcloudObservability }}" + - name: USE_GCLOUD_LOGGING + value: "{{ .Values.telemetry.useGcloudLogging }}" + - name: USE_GCLOUD_METRICS + value: "{{ .Values.telemetry.useGcloudMetrics }}" - name: OTEL_EXCLUDE_METRICS value: "{{ .Values.telemetry.excludeMetrics }}" resources: diff --git a/spartan/aztec-network/templates/prover-broker.yaml b/spartan/aztec-network/templates/prover-broker.yaml index ee37d5a8bdbb..a4a58f05ba4d 100644 --- a/spartan/aztec-network/templates/prover-broker.yaml +++ b/spartan/aztec-network/templates/prover-broker.yaml @@ -108,8 +108,10 @@ spec: value: "{{ .Values.storage.dataStoreMapSize }}" - name: OTEL_RESOURCE_ATTRIBUTES value: service.name={{ .Release.Name }},service.namespace={{ .Release.Namespace }},service.version={{ .Chart.AppVersion }},environment={{ .Values.environment | default "production" }} - - name: USE_GCLOUD_OBSERVABILITY - value: "{{ .Values.telemetry.useGcloudObservability }}" + - name: USE_GCLOUD_LOGGING + value: "{{ .Values.telemetry.useGcloudLogging }}" + - name: USE_GCLOUD_METRICS + value: "{{ .Values.telemetry.useGcloudMetrics }}" - name: OTEL_EXCLUDE_METRICS value: "{{ .Values.telemetry.excludeMetrics }}" resources: diff --git a/spartan/aztec-network/templates/prover-node.yaml b/spartan/aztec-network/templates/prover-node.yaml index cfb3a18fd0e2..535d3ce2e32e 100644 --- a/spartan/aztec-network/templates/prover-node.yaml +++ b/spartan/aztec-network/templates/prover-node.yaml @@ -219,8 +219,10 @@ spec: value: "{{ .Values.storage.dataStoreMapSize }}" - name: WS_DB_MAP_SIZE_KB value: "{{ .Values.storage.worldStateMapSize }}" - - name: USE_GCLOUD_OBSERVABILITY - value: "{{ .Values.telemetry.useGcloudObservability }}" + - name: USE_GCLOUD_LOGGING + value: "{{ .Values.telemetry.useGcloudLogging }}" + - name: USE_GCLOUD_METRICS + value: "{{ .Values.telemetry.useGcloudMetrics }}" - name: OTEL_EXCLUDE_METRICS value: "{{ .Values.telemetry.excludeMetrics }}" {{- if .Values.blobSink.enabled }} diff --git a/spartan/aztec-network/templates/pxe.yaml b/spartan/aztec-network/templates/pxe.yaml index 3fe29758f48a..c7504b021da1 100644 --- a/spartan/aztec-network/templates/pxe.yaml +++ b/spartan/aztec-network/templates/pxe.yaml @@ -109,8 +109,10 @@ spec: value: "{{ .Values.pxe.logLevel }}" - name: PXE_PROVER_ENABLED value: "{{ .Values.aztec.realProofs }}" - - name: USE_GCLOUD_OBSERVABILITY - value: "{{ .Values.telemetry.useGcloudObservability }}" + - name: USE_GCLOUD_LOGGING + value: "{{ .Values.telemetry.useGcloudLogging }}" + - name: USE_GCLOUD_METRICS + value: "{{ .Values.telemetry.useGcloudMetrics }}" - name: OTEL_EXCLUDE_METRICS value: "{{ .Values.telemetry.excludeMetrics }}" - name: L1_CHAIN_ID diff --git a/spartan/aztec-network/templates/setup-l2-contracts.yaml b/spartan/aztec-network/templates/setup-l2-contracts.yaml index 4d5262bfbb46..9c5c79eb147c 100644 --- a/spartan/aztec-network/templates/setup-l2-contracts.yaml +++ b/spartan/aztec-network/templates/setup-l2-contracts.yaml @@ -102,6 +102,8 @@ spec: value: "{{ .Values.proverNode.service.nodePort }}" - name: SERVICE_NAME value: {{ include "aztec-network.fullname" . }} - - name: USE_GCLOUD_OBSERVABILITY - value: "{{ .Values.telemetry.useGcloudObservability }}" + - name: USE_GCLOUD_LOGGING + value: "{{ .Values.telemetry.useGcloudLogging }}" + - name: USE_GCLOUD_METRICS + value: "{{ .Values.telemetry.useGcloudMetrics }}" {{ end }} diff --git a/spartan/aztec-network/templates/transaction-bot.yaml b/spartan/aztec-network/templates/transaction-bot.yaml index 901670b0c0b5..e497e2a4b8b9 100644 --- a/spartan/aztec-network/templates/transaction-bot.yaml +++ b/spartan/aztec-network/templates/transaction-bot.yaml @@ -131,8 +131,10 @@ spec: value: "{{ .Values.bot.maxErrors }}" - name: BOT_STOP_WHEN_UNHEALTHY value: "{{ .Values.bot.stopIfUnhealthy }}" - - name: USE_GCLOUD_OBSERVABILITY - value: "{{ .Values.telemetry.useGcloudObservability }}" + - name: USE_GCLOUD_LOGGING + value: "{{ .Values.telemetry.useGcloudLogging }}" + - name: USE_GCLOUD_METRICS + value: "{{ .Values.telemetry.useGcloudMetrics }}" - name: OTEL_EXCLUDE_METRICS value: "{{ .Values.telemetry.excludeMetrics }}" - name: L1_CHAIN_ID diff --git a/spartan/aztec-network/templates/validator.yaml b/spartan/aztec-network/templates/validator.yaml index 0df4fe2740f5..f28d3a3cc547 100644 --- a/spartan/aztec-network/templates/validator.yaml +++ b/spartan/aztec-network/templates/validator.yaml @@ -233,8 +233,10 @@ spec: value: "{{ .Values.storage.dataStoreMapSize }}" - name: WS_DB_MAP_SIZE_KB value: "{{ .Values.storage.worldStateMapSize }}" - - name: USE_GCLOUD_OBSERVABILITY - value: "{{ .Values.telemetry.useGcloudObservability }}" + - name: USE_GCLOUD_LOGGING + value: "{{ .Values.telemetry.useGcloudLogging }}" + - name: USE_GCLOUD_METRICS + value: "{{ .Values.telemetry.useGcloudMetrics }}" - name: OTEL_EXCLUDE_METRICS value: "{{ .Values.telemetry.excludeMetrics }}" {{- if .Values.blobSink.enabled }} diff --git a/spartan/aztec-network/values.yaml b/spartan/aztec-network/values.yaml index 72e2956598b5..85d2843fcd39 100644 --- a/spartan/aztec-network/values.yaml +++ b/spartan/aztec-network/values.yaml @@ -23,7 +23,8 @@ storage: telemetry: enabled: false otelCollectorEndpoint: - useGcloudObservability: false + useGcloudLogging: true + useGcloudMetrics: false excludeMetrics: "system" images: diff --git a/yarn-project/foundation/src/config/env_var.ts b/yarn-project/foundation/src/config/env_var.ts index 9252e16bacc7..c8e084d3e065 100644 --- a/yarn-project/foundation/src/config/env_var.ts +++ b/yarn-project/foundation/src/config/env_var.ts @@ -70,7 +70,8 @@ export type EnvVar = | 'NETWORK' | 'NO_PXE' | 'COIN_ISSUER_CONTRACT_ADDRESS' - | 'USE_GCLOUD_OBSERVABILITY' + | 'USE_GCLOUD_LOGGING' + | 'USE_GCLOUD_METRICS' | 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT' | 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT' | 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT' diff --git a/yarn-project/foundation/src/log/pino-logger.ts b/yarn-project/foundation/src/log/pino-logger.ts index a76d30618d9f..38991a706cd6 100644 --- a/yarn-project/foundation/src/log/pino-logger.ts +++ b/yarn-project/foundation/src/log/pino-logger.ts @@ -98,13 +98,13 @@ const [logLevel, logFilters] = parseEnv(process.env.LOG_LEVEL, defaultLogLevel); const customLevels = { verbose: 25 }; // Global pino options, tweaked for google cloud if running there. -const useGcloudObservability = parseBooleanEnv(process.env['USE_GCLOUD_OBSERVABILITY' satisfies EnvVar]); +const useGcloudLogging = parseBooleanEnv(process.env['USE_GCLOUD_LOGGING' satisfies EnvVar]); const pinoOpts: pino.LoggerOptions = { customLevels, messageKey: 'msg', useOnlyCustomLevels: false, level: logLevel, - ...(useGcloudObservability ? GoogleCloudLoggerConfig : {}), + ...(useGcloudLogging ? GoogleCloudLoggerConfig : {}), }; export const levels = { @@ -148,7 +148,7 @@ const stdioTransport: pino.TransportTargetOptions = { // this transport configured. Note that the target is defined as the export in the telemetry-client, // since pino will load this transport separately on a worker thread, to minimize disruption to the main loop. const otlpEndpoint = process.env['OTEL_EXPORTER_OTLP_LOGS_ENDPOINT' satisfies EnvVar]; -const otlpEnabled = !!otlpEndpoint && !useGcloudObservability; +const otlpEnabled = !!otlpEndpoint && !useGcloudLogging; const otelOpts = { levels }; const otelTransport: pino.TransportTargetOptions = { target: '@aztec/telemetry-client/otel-pino-stream', diff --git a/yarn-project/telemetry-client/src/config.ts b/yarn-project/telemetry-client/src/config.ts index f01be5ec4617..c290ad7bb85f 100644 --- a/yarn-project/telemetry-client/src/config.ts +++ b/yarn-project/telemetry-client/src/config.ts @@ -1,7 +1,7 @@ import { type ConfigMappingsType, booleanConfigHelper, getConfigFromMappings } from '@aztec/foundation/config'; export interface TelemetryClientConfig { - useGcloudObservability: boolean; + useGcloudMetrics: boolean; metricsCollectorUrl?: URL; tracesCollectorUrl?: URL; logsCollectorUrl?: URL; @@ -16,9 +16,9 @@ export interface TelemetryClientConfig { } export const telemetryClientConfigMappings: ConfigMappingsType = { - useGcloudObservability: { - env: 'USE_GCLOUD_OBSERVABILITY', - description: 'Whether to use GCP observability', + useGcloudMetrics: { + env: 'USE_GCLOUD_METRICS', + description: 'Whether to use GCP metrics and traces', ...booleanConfigHelper(false), }, metricsCollectorUrl: { diff --git a/yarn-project/telemetry-client/src/otel.ts b/yarn-project/telemetry-client/src/otel.ts index 9140827b4be1..a1c0857c67bc 100644 --- a/yarn-project/telemetry-client/src/otel.ts +++ b/yarn-project/telemetry-client/src/otel.ts @@ -287,7 +287,7 @@ export class OpenTelemetryClient implements TelemetryClient { public static createAndStart(config: TelemetryClientConfig, log: Logger): OpenTelemetryClient { const resource = getOtelResource(); - const factory = config.useGcloudObservability + const factory = config.useGcloudMetrics ? OpenTelemetryClient.getGcloudClientFactory(config) : OpenTelemetryClient.getCustomClientFactory(config); diff --git a/yarn-project/telemetry-client/src/start.ts b/yarn-project/telemetry-client/src/start.ts index e99853052056..80d2604508af 100644 --- a/yarn-project/telemetry-client/src/start.ts +++ b/yarn-project/telemetry-client/src/start.ts @@ -17,8 +17,8 @@ export function initTelemetryClient(config: TelemetryClientConfig): TelemetryCli return telemetry; } - if (config.metricsCollectorUrl || config.useGcloudObservability) { - log.info(`Using OpenTelemetry client ${config.useGcloudObservability ? 'with GCP' : 'with custom collector'}`); + if (config.metricsCollectorUrl || config.useGcloudMetrics) { + log.info(`Using OpenTelemetry client ${config.useGcloudMetrics ? 'with GCP' : 'with custom collector'}`); telemetry = OpenTelemetryClient.createAndStart(config, log); } else { log.info('Using NoopTelemetryClient');