synapse-prometheus-exporter/README.md

69 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

# Synapse Exporter for Prometheus
This is an exporter for Prometheus that collects metrics from a Synapse PostgreSQL database. SQLite is not supported.
It is designed to be used with the Synapse Matrix server and provides some additional metrics that are not exported by the internal Prometheus exporter.
## Metrics
The exporter currently provides the following metrics:
- `synapse_local_users_state`: Number of local users by state (active, disabled)
- `synapse_local_users_type`: Number of local users by type (guest, user, appservice)
- `synapse_local_users_moderation`: Number of local users by moderation status (active, shadow_banned, locked)
- `synapse_local_users_appservice`: Number of local users by appservice ID
- `synapse_total_devices`: Total number of devices
- `synapse_total_rooms`: Total number of rooms
- `synapse_total_events`: Total number of events
- `synapse_federation_destinations`: Number of federation destinations (i.e. federated servers)
## Installation
You can install the exporter from PyPI. Within a virtual environment, run:
```bash
pip install synapse-prometheus-exporter
```
## Configuration
The exporter is configured using a `config.yaml`. You can create a default configuration file in the current working directory with:
```bash
synapse-prometheus-exporter --create-config
```
Now, edit the `config.yaml` file to match your PostgreSQL connection settings. Here is an example configuration:
```yaml
hosts:
- host: localhost
port: 5432
user: postgres
password: postgres
database: synapse
```
## Usage
After you have created your `config.yaml`, you can start the exporter with:
```bash
synapse-prometheus-exporter
```
By default, the exporter listens on `localhost:8999`. You can change the address in the `config.yaml` file, or using the `--host` and `--port` flags:
```bash
synapse-prometheus-exporter --host 0.0.0.0 --port 9899
```
You can also specify a different configuration file with the `--config` flag:
```bash
synapse-prometheus-exporter --config /path/to/config.yaml
```
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.