synapse/synapse/app
Eric Eastwood f13a136396
Refactor Gauge metrics to be homeserver-scoped (#18725)
Bulk refactor `Gauge` metrics to be homeserver-scoped. We also add lints
to make sure that new `Gauge` metrics don't sneak in without using the
`server_name` label (`SERVER_NAME_LABEL`).

Part of https://github.com/element-hq/synapse/issues/18592



### Testing strategy

 1. Add the `metrics` listener in your `homeserver.yaml`
    ```yaml
    listeners:
      # This is just showing how to configure metrics either way
      #
      # `http` `metrics` resource
      - port: 9322
        type: http
        bind_addresses: ['127.0.0.1']
        resources:
          - names: [metrics]
            compress: false
      # `metrics` listener
      - port: 9323
        type: metrics
        bind_addresses: ['127.0.0.1']
    ```
1. Start the homeserver: `poetry run synapse_homeserver --config-path
homeserver.yaml`
1. Fetch `http://localhost:9322/_synapse/metrics` and/or
`http://localhost:9323/metrics`
1. Observe response includes the TODO metrics with the `server_name`
label

### Pull Request Checklist

<!-- Please read
https://element-hq.github.io/synapse/latest/development/contributing_guide.html
before submitting your pull request -->

* [x] Pull request is based on the develop branch
* [x] Pull request includes a [changelog
file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog).
The entry should:
- Be a short description of your change which makes sense to users.
"Fixed a bug that prevented receiving messages from other servers."
instead of "Moved X method from `EventStore` to `EventWorkerStore`.".
  - Use markdown where necessary, mostly for `code blocks`.
  - End with either a period (.) or an exclamation mark (!).
  - Start with a capital letter.
- Feel free to credit yourself, by adding a sentence "Contributed by
@github_username." or "Contributed by [Your Name]." to the end of the
entry.
* [x] [Code
style](https://element-hq.github.io/synapse/latest/code_style.html) is
correct (run the
[linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters))
2025-07-29 10:37:59 -05:00
..
__init__.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
_base.py Refactor Gauge metrics to be homeserver-scoped (#18725) 2025-07-29 10:37:59 -05:00
admin_cmd.py Bump ruff from 0.3.7 to 0.5.0 (#17381) 2024-07-05 12:35:57 +00:00
appservice.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
client_reader.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
complement_fork_starter.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
event_creator.py Update license headers 2023-11-21 15:29:58 -05:00
federation_reader.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
federation_sender.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
frontend_proxy.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
generic_worker.py Add experimental and incomplete support for MSC4306: Thread Subscriptions. (#18674) 2025-07-21 15:54:28 +01:00
homeserver.py Bump ruff from 0.7.3 to 0.11.10 (#18451) 2025-05-20 15:23:30 +01:00
media_repository.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
phone_stats_home.py Refactor Gauge metrics to be homeserver-scoped (#18725) 2025-07-29 10:37:59 -05:00
pusher.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
synchrotron.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
user_dir.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00