# Agentless Monitoring

## How it works

Within the Agentless architecture, the platform establishes remote connections to PostgreSQL clusters through internal agents and gathers data using the PULL method.

This becomes particularly advantageous for monitoring cloud-managed clusters as well as PostgreSQL instances running in containers such as:

* [AWS Aurora](https://aws.amazon.com/rds/aurora/)
* [AWS RDS](https://aws.amazon.com/rds/)
* [Google Cloud SQL](https://cloud.google.com/sql/postgresql)&#x20;
* [Google AlloyDB](https://azure.microsoft.com/en-us/products/postgresql)
* [Microsoft Azure database](https://azure.microsoft.com/en-us/products/postgresql)
* [Kubernetes](https://kubernetes.io/)
* [Docker](https://www.docker.com/)
* Any other cloud managed database

{% hint style="info" %}
A hybrid architecture that integrates both agent-based and agentless methods is feasible.
{% endhint %}

<figure><img src="https://1072624949-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlcWi6G1jtNuyGT9C0pkc%2Fuploads%2FtFQRgXjjuaJ3ikc2cosK%2Fagentless_architecture.png?alt=media&#x26;token=0de352ea-68e5-42a9-b4fe-48a8563907ab" alt=""><figcaption><p>Agentless Architecture</p></figcaption></figure>

{% hint style="warning" %}
Using this approach, system metrics like CPU usage, memory usage, swap, network activity, and I/O operations are not monitored unless the [system\_stats extension](https://docs.datasentinel.io/manual/getting-started/postgresql-clusters/extensions/system_stats) is installed.
{% endhint %}

## Add Connection

### Through API

Please consult the API documentation for further information

{% content-ref url="../../implementation/platform-usage/api-reference/connection" %}
[connection](https://docs.datasentinel.io/manual/implementation/platform-usage/api-reference/connection)
{% endcontent-ref %}

### Through UI

Open tools menu:

<div align="left"><figure><img src="https://1072624949-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlcWi6G1jtNuyGT9C0pkc%2Fuploads%2FHhccaxD3bTyFJnLO7r7q%2Ftools_icon2.png?alt=media&#x26;token=0700ef7b-35a4-4a9c-96c0-fefd38affb4c" alt=""><figcaption></figcaption></figure></div>

Click on **Agentless settings:**

<div align="left"><figure><img src="https://1072624949-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlcWi6G1jtNuyGT9C0pkc%2Fuploads%2F57k5apGSeSq8KneISjia%2Ftools_menu2.png?alt=media&#x26;token=74afee75-26c2-45a5-a765-80bba9a8747b" alt=""><figcaption></figcaption></figure></div>

Then

<figure><img src="https://1072624949-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlcWi6G1jtNuyGT9C0pkc%2Fuploads%2F2ROpu64QuARtVEtebeCn%2Fagentless1.gif?alt=media&#x26;token=27f0e4f2-d86d-48f6-ba46-8ea93e735724" alt=""><figcaption><p>Adding a connection through the User Interface</p></figcaption></figure>

## Limit configuration

Table and query monitoring limits can be configured for monitored PostgreSQL instances (since [version 2025.11](https://docs.datasentinel.io/manual/release-notes#v2025.11))

Datasentinel monitors table and index activity **only if** the number of tables in the connected instance is below the configured limit.\
Query activity is also tracked, with each unique query assigned an ID and stored in a daily cache. If the number of collected queries exceeds the set limit, **query monitoring is automatically disabled for the remainder of the day** to manage resource usage.

{% hint style="warning" %}
Limits use default values if not set. (Refer to [Agent limit settings](https://docs.datasentinel.io/manual/implementation/agent-usage/cli#change-table-monitoring-limit) section for more details).
{% endhint %}

To set custom values:

{% stepper %}
{% step %}

### <sup>Edit configuration file</sup>

```bash
/datasentinel/soft/datasentinel_backend/config/datasentinel.yml
```

{% endstep %}

{% step %}

### <sup>Set desired values</sup>

```
agent:
  tables-monitoring-limit: 5000
  query-monitoring-limit: 15000

```

{% endstep %}

{% step %}

### <sup>Restart dispatcher service</sup>

```
sudo systemctl stop datasentinel_dispatcher
sudo systemctl start datasentinel_dispatcher
```

{% endstep %}
{% endstepper %}

{% hint style="warning" %}
Custom limits apply to all monitored instances using the agentless method.
{% endhint %}
