> ## Documentation Index
> Fetch the complete documentation index at: https://metoro.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# System Requirements

This page outlines the system requirements for running various Metoro components in your environment.

<Info>
  There are three main components which run in your Kubernetes cluster:

  1. **The node agent** - Runs on each node in your Kubernetes cluster
  2. **The exporter** - Runs multiple replicas depending on load and scales with a Horizontal Pod Autoscaler
  3. **The Redis cache** - One replica per cluster
</Info>

Each component has specific resource requirements as detailed below. All requirements are approximate and assume a relatively up-to-date CPU. Testing is performed on AWS M5 instances running on a Skylake 8175M.

<Tabs>
  <Tab title="Node Agent">
    The node agent's resource requirements scale with several factors, primarily:

    * The number of requests being made to / from the node agent
    * The number of logs being collected

    <Warning>
      At a minimum, each node agent requires:

      * 0.05 cores
      * 100Mi memory
    </Warning>

    For each additional:

    * 1000 requests/second: +0.2 cores CPU, +0.2GB memory, +0.1MB/s network
    * 1000 logs/second: +0.05 cores CPU, +0.1GB memory, +0.1MB/s network

    ### Resource Scaling Table

    | Requests per second | Logs per second | CPU (cores) | Memory (GB) | Network (MB/s) |
    | ------------------- | --------------- | ----------- | ----------- | -------------- |
    | 1000                | 1000            | 0.25        | 0.3         | 0.2            |
    | 2000                | 2000            | 0.5         | 0.6         | 0.4            |
    | 3000                | 3000            | 0.75        | 0.9         | 0.6            |
    | 4000                | 4000            | 1.0         | 1.2         | 0.8            |
    | 5000                | 5000            | 1.25        | 1.5         | 1.0            |

    <Note>
      These requirements are approximate and may vary based on:

      * Number of containers being monitored
      * Types of metrics being collected
      * Frequency of metric collection
      * Network conditions
      * Size of individual log lines
    </Note>
  </Tab>

  <Tab title="Exporter">
    The resources required mainly scale with the number of traces/logs being collected across all nodes.

    For each additional:

    * 1000 traces/second: +0.05 cores CPU, +0.1GB memory, +0.1MB/s network
    * 1000 logs/second: +0.02 cores CPU, +0.1GB memory, +0.1MB/s network

    ### Resource Scaling Table

    | Traces per second | Logs per second | CPU (cores) | Memory (GB) | Network (MB/s) |
    | ----------------- | --------------- | ----------- | ----------- | -------------- |
    | 1000              | 1000            | 0.07        | 0.2         | 0.2            |
    | 2000              | 2000            | 0.14        | 0.4         | 0.4            |
    | 3000              | 3000            | 0.21        | 0.6         | 0.6            |
    | 4000              | 4000            | 0.28        | 0.8         | 0.8            |
    | 5000              | 5000            | 0.35        | 1.0         | 1.0            |

    <Note>
      These requirements are approximate and may vary based on:

      * Number of containers being monitored
      * Types of metrics being collected
      * Frequency of metric collection
      * Network conditions
      * Size of individual log lines
    </Note>
  </Tab>

  <Tab title="Redis Cache">
    <Info>
      Redis is used for temporary storage and caching of metrics data.
    </Info>

    Redis has minimal resource requirements:

    * 0.05 cores CPU
    * 20Mi memory
  </Tab>
</Tabs>

***

### Example Cluster Configuration

For a cluster with:

* 100 nodes
* 1000 requests per second per node
* 1000 logs per second per node

The resources required are:

* **100 node agents**: 0.25 cores, 0.3GB memory, 0.2MB/s network per node
* **1 cluster exporter**: Processing 100k traces/second, 100k logs/second across all nodes
  * Total: 7 cores, 20GB memory, 20MB/s network (split across N replicas)
* **1 Redis cache**: 50m cores, 20Mi memory

<Tip>
  **Total cluster resources required**

  * 32 cores CPU
  * 50GB memory
  * 40MB/s network
</Tip>

## Default Resource Requests

The default resource requests for the node-agent are:

* 0.3 cores, 300Mi memory

The default resource requests for the exporter are:

* 1 core, 2GB memory

You should tune these requests to meet your specific needs.
