synapse/tests/storage
Eric Eastwood d4af2970f3
Refactor Histogram metrics to be homeserver-scoped (#18724)
Bulk refactor `Histogram` metrics to be homeserver-scoped. We also add
lints to make sure that new `Histogram` 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

### Todo

- [x] Wait for https://github.com/element-hq/synapse/pull/18656 to merge


### Dev notes

```
LoggingDatabaseConnection
make_conn
make_pool
make_fake_db_pool
```

### 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 15:35:38 -05:00
..
databases Refactor GaugeBucketCollector metrics to be homeserver-scoped (#18715) 2025-07-29 11:46:21 -05:00
util Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
__init__.py Reference Matrix Home Server 2014-08-12 15:10:52 +01:00
test__base.py Sliding Sync: Pre-populate room data for quick filtering/sorting (#17512) 2024-08-29 16:09:51 +01:00
test_account_data.py Don't allow users to ignore themselves. (#18508) 2025-06-06 15:37:15 +01:00
test_appservice.py Refactor Histogram metrics to be homeserver-scoped (#18724) 2025-07-29 15:35:38 -05:00
test_background_update.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_base.py Bump ruff from 0.7.3 to 0.11.10 (#18451) 2025-05-20 15:23:30 +01:00
test_cleanup_extrems.py Bump black from 23.10.1 to 24.2.0 (#16936) 2024-03-13 16:46:44 +00:00
test_client_ips.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_database.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_devices.py Bump ruff from 0.7.3 to 0.11.10 (#18451) 2025-05-20 15:23:30 +01:00
test_directory.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_e2e_room_keys.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_end_to_end_keys.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_event_chain.py Reintroduce #17291. (#17338) 2024-06-24 14:40:28 +00:00
test_event_federation.py Bump ruff from 0.7.3 to 0.11.10 (#18451) 2025-05-20 15:23:30 +01:00
test_event_push_actions.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_events_bg_updates.py Fix up the topological ordering for events above MAX_DEPTH (#18447) 2025-05-19 13:36:30 +01:00
test_events.py Sliding Sync: Pre-populate room data for quick filtering/sorting (#17512) 2024-08-29 16:09:51 +01:00
test_id_generators.py Refactor background process metrics to be homeserver-scoped (#18670) 2025-07-23 13:28:17 -05:00
test_invite_rule.py Add support for MSC4155 Invite filtering (#18288) 2025-06-05 11:49:09 +01:00
test_main.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_monthly_active_users.py Update license headers 2023-11-21 15:29:58 -05:00
test_profile.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_purge.py Delete unreferenced state groups in background (#18254) 2025-03-21 17:09:49 +00:00
test_receipts.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_redaction.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_registration.py Add support for MSC3823 - Account Suspension (#17051) 2024-05-01 17:45:17 +01:00
test_relations.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_rollback_worker.py Refactor Histogram metrics to be homeserver-scoped (#18724) 2025-07-29 15:35:38 -05:00
test_room_search.py Return the search terms as search highlights for SQLite instead of nothing (#17000) 2024-04-26 09:43:52 +01:00
test_room.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_roommember.py Sliding Sync: Pre-populate room data for quick filtering/sorting (#17512) 2024-08-29 16:09:51 +01:00
test_sliding_sync_tables.py Sliding Sync: Reset forgotten status when membership changes (like rejoining a room) (#17835) 2024-10-22 11:06:46 +01:00
test_state_deletion.py Add locking to more safely delete state groups: Part 2 (#18130) 2025-02-03 17:58:55 +00:00
test_state.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_stream.py Bust _membership_stream_cache cache when current state changes (#17732) 2025-01-08 10:11:09 -06:00
test_thread_subscriptions.py Add experimental and incomplete support for MSC4306: Thread Subscriptions. (#18674) 2025-07-21 15:54:28 +01:00
test_transactions.py Update license headers 2023-11-21 15:29:58 -05:00
test_txn_limit.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_unsafe_locale.py Refactor Histogram metrics to be homeserver-scoped (#18724) 2025-07-29 15:35:38 -05:00
test_user_directory.py Refactor cache metrics to be homeserver-scoped (#18604) 2025-07-16 16:04:57 -05:00
test_user_filters.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00