diff --git a/packages/server/bootstrap.js b/packages/server/bootstrap.js index 15365c57a..1bddec543 100644 --- a/packages/server/bootstrap.js +++ b/packages/server/bootstrap.js @@ -9,7 +9,16 @@ const appRoot = __dirname // Initializing env vars const dotenv = require('dotenv') -const { isTestEnv } = require('./modules/core/helpers/envHelper') +const { + isTestEnv, + isApolloMonitoringEnabled, + getApolloServerVersion, + getServerVersion +} = require('./modules/core/helpers/envHelper') + +if (isApolloMonitoringEnabled() && !getApolloServerVersion()) { + process.env.APOLLO_SERVER_USER_VERSION = getServerVersion() +} // If running in test env, load .env.test first // (appRoot necessary, cause env files aren't loaded through require() calls) diff --git a/packages/server/modules/core/helpers/envHelper.js b/packages/server/modules/core/helpers/envHelper.js index db1bc9528..39f4c0f60 100644 --- a/packages/server/modules/core/helpers/envHelper.js +++ b/packages/server/modules/core/helpers/envHelper.js @@ -10,4 +10,23 @@ function isProdEnv() { return process.env.NODE_ENV === 'production' } -module.exports = { isTestEnv, isDevEnv, isProdEnv } +function getServerVersion() { + return process.env.SPECKLE_SERVER_VERSION || 'dev' +} + +function isApolloMonitoringEnabled() { + return [true, 'true'].includes(process.env.APOLLO_SCHEMA_REPORTING) +} + +function getApolloServerVersion() { + return process.env.APOLLO_SERVER_USER_VERSION +} + +module.exports = { + isTestEnv, + isDevEnv, + isProdEnv, + getServerVersion, + isApolloMonitoringEnabled, + getApolloServerVersion +} diff --git a/utils/helm/speckle-server/templates/deployment-backend.yml b/utils/helm/speckle-server/templates/deployment-backend.yml index d9efaaa0f..21e879727 100644 --- a/utils/helm/speckle-server/templates/deployment-backend.yml +++ b/utils/helm/speckle-server/templates/deployment-backend.yml @@ -225,10 +225,20 @@ spec: # Monitoring - Apollo {{- if .Values.server.monitoring.apollo.enabled }} - - name: APOLLO_GRAPH_REF - value: {{ .Values.server.monitoring.apollo.graph_ref }} + - name: APOLLO_GRAPH_ID + value: {{ .Values.server.monitoring.apollo.graph_id }} - name: APOLLO_SCHEMA_REPORTING value: "true" + - name: APOLLO_GRAPH_VARIANT + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: APOLLO_SERVER_ID + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: APOLLO_SERVER_PLATFORM + value: "kubernetes/deployment" - name: APOLLO_KEY valueFrom: secretKeyRef: diff --git a/utils/helm/speckle-server/values.yaml b/utils/helm/speckle-server/values.yaml index 0a4630b9b..620e024db 100644 --- a/utils/helm/speckle-server/values.yaml +++ b/utils/helm/speckle-server/values.yaml @@ -59,7 +59,7 @@ server: monitoring: apollo: enabled: false - graph_ref: '' + graph_id: '' # key: secret -> `apollo_key` # Sentry specific: