diff --git a/helm/flowforge/README.md b/helm/flowforge/README.md index 86fbac02..16bc33c1 100644 --- a/helm/flowforge/README.md +++ b/helm/flowforge/README.md @@ -84,6 +84,7 @@ Enables FlowForge Telemetry - `forge.telemetry.sentry.frontend_dsn` enables sentry reporting if set - `forge.telemetry.sentry.backend_dsn` enables sentry reporting if set - `forge.telemetry.sentry.production_mode` rate limit reporting (default `true`) + - `forge.telemetry.backend.prometheus.enabled` enables the `/metrics` endpoint on the forge app for scraping by Prometheus ### Support diff --git a/helm/flowforge/templates/configmap.yaml b/helm/flowforge/templates/configmap.yaml index 0cdab502..9c00b972 100644 --- a/helm/flowforge/templates/configmap.yaml +++ b/helm/flowforge/templates/configmap.yaml @@ -157,11 +157,13 @@ data: {{ end }} {{ end -}} {{- end }} - {{ if and (hasKey .Values.forge.telemetry "sentry") (hasKey .Values.forge.telemetry.sentry "backend_dsn") -}} backend: + {{ if and (hasKey .Values.forge.telemetry "sentry") (hasKey .Values.forge.telemetry.sentry "backend_dsn") -}} sentry: dsn: {{ .Values.forge.telemetry.sentry.backend_dsn}} - {{ end -}} + {{- end }} + prometheus: + enabled: {{ .Values.forge.telemetry.backend.prometheus.enabled }} {{- if .Values.forge.support.enabled }} support: enabled: true diff --git a/helm/flowforge/values.schema.json b/helm/flowforge/values.schema.json index 4c34cdc7..d45171d3 100644 --- a/helm/flowforge/values.schema.json +++ b/helm/flowforge/values.schema.json @@ -256,6 +256,19 @@ "type": "boolean" } } + }, + "backend": { + "type": "object", + "properties": { + "prometheus": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + } + } } } }, diff --git a/helm/flowforge/values.yaml b/helm/flowforge/values.yaml index 8ad6d937..746850a6 100644 --- a/helm/flowforge/values.yaml +++ b/helm/flowforge/values.yaml @@ -16,6 +16,9 @@ forge: role: management telemetry: enabled: true + backend: + prometheus: + enabled: false broker: enabled: false fileStore: diff --git a/test/customizations.yml b/test/customizations.yml index 2fd1259b..f1e9c441 100644 --- a/test/customizations.yml +++ b/test/customizations.yml @@ -47,6 +47,9 @@ forge: production_mode: false frontend_dsn: 'https://sentry.io/flowforge/flowforge-frontend' backend_dsn: 'https://sentry.io/flowforge/flowforge-backend' + backend: + prometheus: + enabled: true support: enabled: true hubspot: 12345678 diff --git a/test/unit/configmap_spec.js b/test/unit/configmap_spec.js index c7afca9d..b44c11ad 100644 --- a/test/unit/configmap_spec.js +++ b/test/unit/configmap_spec.js @@ -116,8 +116,8 @@ describe('Examine Config Maps', function () { const d = configMaps.filter(doc => doc.metadata.name === 'flowforge-config')[0] yml = yaml.parse(d.data['flowforge.yml']) }) + it('has sentry telemetry', function () { - console.log(yml.telemetry) yml.telemetry.frontend.sentry.should.have.property('production_mode') yml.telemetry.frontend.sentry.production_mode.should.equal(false) @@ -127,5 +127,11 @@ describe('Examine Config Maps', function () { yml.telemetry.backend.sentry.should.have.property('dsn') yml.telemetry.backend.sentry.dsn.should.equal('https://sentry.io/flowforge/flowforge-backend') }) + + describe('using Prometheus', function () { + it('has prometheus enabled', function() { + yml.telemetry.backend.prometheus.enabled.should.equal(true) + }) + }) }) })