Spawning from wanting to [run a load test](https://github.com/element-hq/synapse-rust-apps/pull/397) against the Complement Docker image of Synapse and see metrics from the homeserver. ### Why not just provide your own homeserver config? Probably possible but it gets tricky when you try to use the workers variant of the Docker image (`docker/Dockerfile-workers`). The way to workaround it would probably be to `yq` edit everything in a script and change `/data/homeserver.yaml` and `/conf/workers/*.yaml` to add the `metrics` listener. And then modify `/conf/workers/shared.yaml` to add `enable_metrics: true`. Doesn't spark much joy.
35 lines
901 B
Django/Jinja
35 lines
901 B
Django/Jinja
# This is a configuration template for a single worker instance, and is
|
|
# used by Dockerfile-workers.
|
|
# Values will be change depending on whichever workers are selected when
|
|
# running that image.
|
|
|
|
worker_app: "{{ app }}"
|
|
worker_name: "{{ name }}"
|
|
|
|
worker_listeners:
|
|
- type: http
|
|
{% if using_unix_sockets %}
|
|
path: "/run/worker.{{ port }}"
|
|
{% else %}
|
|
port: {{ port }}
|
|
{% endif %}
|
|
{% if listener_resources %}
|
|
resources:
|
|
- names:
|
|
{%- for resource in listener_resources %}
|
|
- {{ resource }}
|
|
{%- endfor %}
|
|
{% endif %}
|
|
|
|
{# Controlled by SYNAPSE_ENABLE_METRICS #}
|
|
{% if metrics_port %}
|
|
- type: metrics
|
|
# Prometheus does not support Unix sockets so we don't bother with
|
|
# `SYNAPSE_USE_UNIX_SOCKET`, https://github.com/prometheus/prometheus/issues/12024
|
|
port: {{ metrics_port }}
|
|
{% endif %}
|
|
|
|
worker_log_config: {{ worker_log_config_filepath }}
|
|
|
|
{{ worker_extra_conf }}
|