Commit Graph

6 Commits

Author SHA1 Message Date
Alexey Bezhan
bc7d91daec Merge pull request #2468 from alphagov/local-statsd-exporter
Local statsd exporter
2019-04-24 15:27:55 +01:00
Alexey Bezhan
ba2abc9127 Add a local_statsd configuration to PaaS manifest template
Running `statsd_exporter` alongside the app process allows us to get
StatsD metrics pushed by workers to Prometheus.

This requires adding a route to the worker instances and binding the
RE prometheus discovery service. So this approach won't work for API
and admin since they already have `gunicorn` bound to the `$PORT`.

Since we're not ready to switch all apps to Prometheus metrics at once
and we don't currently have a way to push statsd metrics to multiple
destination we're using a configuration setting in the manifest template
to switch individual workers in specific environments.

`local_statsd` contains a list of environments where the app should
use local `statsd_exporter` for pushing statsd metrics instead of
HostedGraphite.
2019-04-24 13:50:13 +01:00
Alexey Bezhan
7520cc46de Stub out SMS providers on staging for the perf tests
This points MMG and Firetext on staging to a stub service run on
PaaS to avoid text message costs during the load test.
2019-04-24 11:37:41 +01:00
Leo Hemsted
c786258a60 give instances and NOTIFY_APP_NAME sensible defaults
NOTIFY_APP_NAME follows precedent and just tries to strip 'notify-'
from the beginning of the string.

instances is not specified at all if not defined - it'll scale up to
the same amount of instances as currently present, and then the
autoscaler will take over anyway
2019-04-11 14:57:22 +01:00
Leo Hemsted
7d9cd58e89 rename public-api to api
we don't use the public-api bit anywhere - even cloudwatch overwrites
based on CW_APP_NAME (which we can get rid of as this distinction is
gone)
2019-04-10 15:19:46 +01:00
Leo Hemsted
66ca98fbfb create manifest from jinja template
newer versions of cf api don't allow you to have multiple apps per
manifest file. So, instead of our current inheritance based model, move
to the newer doc-dl/antivirus/template-preview approved jinja based
model.

the new single manifest.yml.j2 file sets a bunch of variables based on
the CF_APP variable - things like NOTIFY_APP_NAME, default instances,
etc. Then the manifest is built up to define all of the app options
based on these defaults. Things default to sensible values, which can
vary based on environment.

When adding new environment variables, you'll need to add them to the
manifest file. If they're json encoded lists, you'll need to pass them
back to the `tojson` filter, or jinja2 will print them as python lists,
with single quotes around strings.
2019-04-10 15:15:48 +01:00