# Metrics

NetObserv Flow exposes the `/metrics` endpoint to provide Prometheus-compatible statistics related to its performance and the resources it uses.

The endpoint returns data in a Prometheus text-based exposition format. Please refer to the [Prometheus documentation](https://prometheus.io/docs/introduction/overview) to learn more.

### Information

This section describes the information metrics that can be retrieved from the `/metrics` endpoint.

#### app\_info

`app_info` provides application details. The following is an example of an `app_info` record:

```shell
app_info{arch="arm64",cpus="8",env="native",hostname="M1-MacBook-Pro.local",os="darwin",run_id="b1214e11-198f-43e7-81f1-c9986e9b3ff7",version="7.5"} 1
```

The `app_info` data provides the following labels:

| Label      | Description                          |
| ---------- | ------------------------------------ |
| `arch`     | environment running application      |
| `cpus`     | number of cpus available             |
| `env`      | native install or Docker             |
| `hostname` | name of machine                      |
| `os`       | operating system running application |
| `run_id`   | run id of application                |
| `version`  | version of the collector             |

#### license\_info

`license_info` provides license details. The following is an example of a `license_info` record:

```shell
license_info{account_id="account_id",application="flowcoll",expiration="1772150400",instance_name="default",level="7"} 1
```

The `license_info` record provides the following labels:

| Label           | Description                         |
| --------------- | ----------------------------------- |
| `account_id`    | account id of license               |
| `application`   | name of the application             |
| `expiration`    | license expiration date (unix time) |
| `instance_name` | name of the collector instance      |
| `level`         | license level                       |

#### license\_flow\_records\_per\_second

`license_flow_records_per_second` provides the maximum flow records per second that the collector is provisioned for according to the license and configurations. The following is an example of a `license_flow_records_per_second` record:

```shell
license_flow_records_per_second{application="snmpcoll",instance_name="default"} 4000
```

The `license_flow_records_per_second` record provides the following labels:

| Label           | Description                    |
| --------------- | ------------------------------ |
| `application`   | name of the application        |
| `instance_name` | name of the collector instance |

### Flow UDP Server

The following statistics are provided for the UDP Server input.

#### udp\_server\_packet\_queue\_util

`udp_server_packet_queue_util` provides the utilization of the packet queue, which stores received packets waiting to be processed.

```shell
udp_server_packet_queue_util{application="flowcoll"} 0
```

The `udp_server_packet_queue_util` record provides the following labels:

| Label         | Description             |
| ------------- | ----------------------- |
| `application` | name of the application |

#### udp\_server\_packets\_received\_total

`udp_server_packets_received_total` provides the total count of packets received by the UDP Server.

```shell
udp_server_packets_received_total{application="flowcoll",port="9995"} 0
```

The `udp_server_packets_received_total` record provides the following labels:

| Label         | Description                          |
| ------------- | ------------------------------------ |
| `application` | name of the application              |
| `port`        | port on which the UDP server listens |

#### udp\_server\_bytes\_received\_total

`udp_server_bytes_received_total` provides the total count of bytes received by the UDP Server.

```shell
udp_server_bytes_received_total{application="flowcoll",port="9995"} 0
```

The `udp_server_bytes_received_total` record provides the following labels:

| Label         | Description                          |
| ------------- | ------------------------------------ |
| `application` | name of the application              |
| `port`        | port on which the UDP server listens |

### Processor

#### record\_queue\_util

Ratio of the record queue size divided by its capacity.

```shell
record_queue_util{application="flowcoll"} 0
```

The `record_queue_util` record provides the following labels:

| Label         | Description             |
| ------------- | ----------------------- |
| `application` | name of the application |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.elastiflow.com/flowcoll/overview/metrics.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
