# io.Connect Browser

Source: https://docs.interop.io/insights/signals/metrics/io-connect-browser/index.html

## Overview

The following sections describe all default platform metrics published by **io.Connect Browser**, the type of [Instrument](https://opentelemetry.io/docs/specs/otel/metrics/api/#instrument) used for their implementation, and any additional attributes they may have in their data points.

All published metrics have [common resource attributes](https://docs.interop.io/insights/signals/overview/index.md#common_resource_attributes) and [common metrics attributes](https://docs.interop.io/insights/signals/metrics/overview/index.md#common_metrics_attributes).

> ⚠️ *Note that some of the metrics available in **io.Connect Desktop** aren't supported in **io.Connect Browser** due to limitations of modern browsers.*

> ℹ️ *For details on the structure of the metrics payloads and the attributes common to all metrics, see the [Metrics > Overview](https://docs.interop.io/insights/signals/metrics/overview/index.md) section.*

> ℹ️ *For details on configuring the default platform metrics in **io.Connect Browser**, see the [Configuration > io.Connect Browser](https://docs.interop.io/insights/configuration/io-connect-browser/index.md) section.*

## Platform

The following sections describe the available metrics related to platform performance.

### platform_error

| Instrument Type | Unit | Description |
|-----------------|------|-------------|
| `Counter` | number | The number of platform errors received during each platform session. |

The metric doesn't carry the error text or any other details about the error in order to avoid publishing attributes with unbounded values. Use the [logs](https://docs.interop.io/insights/signals/logs/index.md) signal if you need the actual error records.

### platform_startup

| Instrument Type | Unit | Description |
|-----------------|------|-------------|
| `Gauge` | milliseconds | The time it took to load the io.Connect platform. |

Measures the time it takes for the [`@interopio/browser-platform`](https://www.npmjs.com/package/@interopio/browser-platform) library to initialize.

Can be configured as a `Histogram`.

Additional attributes:

| Attribute | Description |
|-----------|-------------|
| `"api"` | Version string of the [`@interopio/browser-platform`](https://www.npmjs.com/package/@interopio/browser-platform) library. |

## Apps

The following sections describe the available metrics related to app performance.

### app_count

| Instrument Type | Unit | Description |
|-----------------|------|-------------|
| `UpDownCounter` | number | The number of app instances currently running. |

The metric reflects how many app instances are running at the moment. It's incremented when an app instance is started and decremented when one is stopped.

Additional attributes:

| Attribute | Description |
|-----------|-------------|
| `"application"` | The name of the app within the io.Connect framework for which the `"app_count"` metric was published. |

### app_duration

| Instrument Type | Unit | Description |
|-----------------|------|-------------|
| `Gauge` | milliseconds | The time an app has been on focus during each platform session. |

Each period on focus is measured separately - when an app loses focus, the duration of that period is recorded as an individual value. All values accumulated since the last export are published at each publishing interval.

The currently focused app isn't reported until it loses focus.

Can be configured as a `Histogram`.

Additional attributes:

| Attribute | Description |
|-----------|-------------|
| `"application"` | The name of the app within the io.Connect framework for which the `"app_duration"` metric was published. |

### app_error

| Instrument Type | Unit | Description |
|-----------------|------|-------------|
| `Counter` | number | The number of app errors received during each platform session. |

The metric reports the errors received in the handlers for the `"error"` and `"unhandledrejection"` events in web apps.

The metric doesn't carry the error message or any other details about the error in order to avoid publishing attributes with unbounded values. Use the [logs](https://docs.interop.io/insights/signals/logs/index.md) signal if you need the actual error records.

Additional attributes:

| Attribute | Description |
|-----------|-------------|
| `"application"` | The name of the app within the io.Connect framework for which the `"app_error"` metric was published. |

### app_started

| Instrument Type | Unit | Description |
|-----------------|------|-------------|
| `Counter` | number | The number of times an app has been started during each platform session. |

Additional attributes:

| Attribute | Description |
|-----------|-------------|
| `"application"` | The name of the app within the io.Connect framework for which the `"app_started"` metric was published. |

### app_startup

| Instrument Type | Unit | Description |
|-----------------|------|-------------|
| `Gauge` | milliseconds | The time it took to start an app. |

Measures the interval from receiving the request for starting the app until the io.Connect API has been initialized in it.

Can be configured as a `Histogram`.

Additional attributes:

| Attribute | Description |
|-----------|-------------|
| `"api"` | Version string of the [`@interopio/browser`](https://www.npmjs.com/package/@interopio/browser) library. |
| `"application"` | The name of the app within the io.Connect framework for which the `"app_startup"` metric was published. |

### app_stopped

| Instrument Type | Unit | Description |
|-----------------|------|-------------|
| `Counter` | number | The number of times an app has been stopped during each platform session. |

Additional attributes:

| Attribute | Description |
|-----------|-------------|
| `"application"` | The name of the app within the io.Connect framework for which the `"app_stopped"` metric was published. |

## Workspaces

The following sections describe the available metrics related to [Workspaces](https://docs.interop.io/desktop/capabilities/windows/workspaces/overview/index.md) performance.

### workspace_count

| Instrument Type | Unit | Description |
|-----------------|------|-------------|
| `UpDownCounter` | number | The number of Workspaces currently open. |

This metric reflects how many Workspaces are open at the moment. It's incremented when a Workspace is opened and decremented when it's closed.

Renaming a Workspace is also handled by this metric - the count for the previous Workspace Layout name is decremented and the count for the new one is incremented.

Additional attributes:

| Attribute | Description |
|-----------|-------------|
| `"layout"` | The name of the Workspace for which the metric was published. The value will be `"unknown"` if not tied to a specific Workspace Layout - e.g., in case of creating a new Workspace, or initialization of a Workspaces App instance with multiple Workspaces in it. |

### workspace_started

| Instrument Type | Unit | Description |
|-----------------|------|-------------|
| `Counter` | number | The number of times a Workspace has been started during each platform session. |

The metric is published against the Workspace Layout name at the moment the Workspace is started. Renaming a Workspace isn't tracked - after a rename, the counts accumulated under the previous name stay as they are and the counts for the new name start from zero.

Additional attributes:

| Attribute | Description |
|-----------|-------------|
| `"layout"` | The name of the Workspace for which the metric was published. The value will be `"unknown"` if not tied to a specific Workspace Layout - e.g., in case of creating a new Workspace, or initialization of a Workspaces App instance with multiple Workspaces in it. |

### workspace_stopped

| Instrument Type | Unit | Description |
|-----------------|------|-------------|
| `Counter` | number | The number of times a Workspace has been stopped during each platform session. |

The metric is published against the Workspace Layout name at the moment the Workspace is stopped. Renaming a Workspace isn't tracked - after a rename, the counts accumulated under the previous name stay as they are and the counts for the new name start from zero.

Additional attributes:

| Attribute | Description |
|-----------|-------------|
| `"layout"` | The name of the Workspace for which the metric was published. The value will be `"unknown"` if not tied to a specific Workspace Layout - e.g., in case of creating a new Workspace, or initialization of a Workspaces App instance with multiple Workspaces in it. |

## Layouts

The following sections describe the available metrics related to [Global Layouts](https://docs.interop.io/desktop/capabilities/windows/layouts/overview/index.md) performance.

### layout_startup

| Instrument Type | Unit | Description |
|-----------------|------|-------------|
| `Gauge` | milliseconds | The time it took to restore a Global Layout. |

Measures the interval from initiating the operation for restoring the Global Layout until all its components (individual windows, window groups, Workspaces) have been loaded.

Can be configured as a `Histogram`.

Additional attributes:

| Attribute | Description |
|-----------|-------------|
| `"layout"` | The name of the Global Layout for which the `"layout_startup"` metric was published. |
