# Choose your setup

DBGorilla reads metrics from your infrastructure through the **DBGorilla Collector**.  Wherever you
run it, the collector needs the same three things: a database login with the right grants, a
`collector.toml` file, and outbound network access.  Then pick the page for where your database runs.

The grants and statistics prerequisite on [Prepare PostgreSQL](/docs/connect/prepare-postgresql/) are PostgreSQL's.  MySQL needs
different ones, so for MySQL read [MySQL](/docs/connect/prepare-mysql/) as well.

The collector reads PostgreSQL statistics directly and, for host statistics, talks to the Prometheus
`node_exporter`.  You need one collector per network segment, and `node_exporter` on each database
host you want host metrics from.

On managed platforms such as AWS RDS, where you have no access to the database host, the collector
reads equivalent metrics from CloudWatch and `node_exporter` is not required.

## What the collector is

The collector is a custom OpenTelemetry collector, shipped as a Docker image, that runs anywhere a
Linux container runs.  You configure it with a single file mounted into the container.  The app
shows you that file when you add a collector.

The image runs on both amd64 and arm64 machines.

A collector reads from one or more **components**.  A component is a logical database endpoint: a
single server, a cluster with readers and writers, or a cloud database endpoint.  The collector must
be able to reach each component on the database port (5432 for PostgreSQL) and, for physical hosts,
the `node_exporter` port (9100 by default).

The collector needs outbound access to `otlp.dbgorilla.com` and `auth.dbgorilla.com` on port 443,
and nothing else.  It listens on no inbound port.  Metrics travel over the
[OpenTelemetry](https://opentelemetry.io/) Protocol (OTLP); management traffic uses the Open Agent
Management Protocol (OpAMP).

See [Database grants](/docs/connect/prepare-postgresql/#database-grants) and [pg_stat_statements](/docs/connect/prepare-postgresql/#pg_stat_statements) in Prepare PostgreSQL, [Configuration](/docs/reference/collector-configuration/#configuration) in Collector configuration, and [Commands](/docs/reference/collector-commands/#commands) in Collector commands.