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

# Default Metrics Reference

> Complete reference of all metrics exported by Tyk Gateway, Tyk Dashboard, Tyk MDCB, and Tyk Developer Portal when OpenTelemetry is enabled.

## Availability

| Component | Version | Edition |
| :- | :- | :- |
| Tyk Gateway | Available since [v5.13.0](https://tyk.io/docs/developer-support/release-notes/gateway.md#5-13-0-release-notes) | Community & Enterprise |
| Tyk Dashboard | Available since v5.16.0 | Enterprise |
| Tyk MDCB | Available since v2.14.0 | Enterprise |
| Tyk Developer Portal | Available since v1.20.0 | Enterprise |

## Tyk Gateway Metrics

When `opentelemetry.metrics.enabled` is set to `true`, Tyk Gateway automatically exports four groups of metrics:

1. [Request metrics](#request-metrics): Rate, Errors, and Duration (RED) for every API request
2. [Go runtime metrics](#go-runtime-metrics): Memory, goroutines, and GC health
3. [Configuration state metrics](#configuration-state-metrics): API/policy load counts and reload events
4. [Token exchange metrics](#token-exchange-metrics): Volume, latency, and cache hit-rate for [token exchange](https://tyk.io/docs/api-management/authentication/token-exchange.md) (Enterprise only)

All metrics are exported as OpenTelemetry-semantic-convention-compliant instruments and include [resource attributes](#resource-attributes) that identify the gateway instance.

### Request Metrics

These four instruments cover the standard RED signals for every API proxied by the gateway.

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `http.server.request.duration` | Histogram | seconds | End-to-end request latency (client to gateway to upstream and back). |
| `tyk.gateway.request.duration` | Histogram | seconds | Time spent inside the gateway only (middleware processing, routing). Excludes upstream response time. |
| `tyk.upstream.request.duration` | Histogram | seconds | Time spent waiting for the upstream service to respond. |
| `tyk.api.requests.total` | Counter | requests | Total number of requests processed. |

For how to use the three latency histograms together, see [Request Metrics](https://tyk.io/docs/api-management/metrics/metrics-concepts.md#request-metrics). The histograms can also carry exemplars that link a data point to a trace. See [Exemplars](https://tyk.io/docs/api-management/metrics/metrics-concepts.md#exemplars).

#### Default Dimensions

Default dimensions vary by instrument:

| Instrument | `http.request.method` | `http.response.status_code` | `tyk.api.id` | `tyk.response_flag` |
| - | :-: | :-: | :-: | :-: |
| `http.server.request.duration` | Yes | Yes | Yes | Yes |
| `tyk.gateway.request.duration` | Yes | - | Yes | Yes |
| `tyk.upstream.request.duration` | Yes | - | Yes | Yes |
| `tyk.api.requests.total` | Yes | Yes | Yes | - |

| Dimension | Description |
| - | - |
| `http.request.method` | HTTP request method (`GET`, `POST`, etc.). |
| `tyk.api.id` | The Tyk API ID. |
| `http.response.status_code` | HTTP response status code (`200`, `404`, `500`, etc.). |
| `tyk.response_flag` | Tyk 3-letter error classification code (for example `AKI`, `URS`, `CBO`), or the HTTP status code string (for example `"200"`) for successful requests or when error classification is absent. See the [full list of response flags](https://tyk.io/docs/api-management/logs/access-logs.md#error-classification). |

You can add more dimensions to any instrument using [custom metrics](https://tyk.io/docs/api-management/metrics/custom-metrics.md).

### Go Runtime Metrics

Tyk Gateway, Tyk Dashboard, and Tyk MDCB export the same set of Go runtime metrics. For what these mean and how to read them, see [Go Runtime Metrics](https://tyk.io/docs/api-management/metrics/metrics-concepts.md#go-runtime-metrics) in the concepts page.

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `go.memory.used` | Gauge | bytes | Current heap memory in use. |
| `go.memory.limit` | Gauge | bytes | Soft memory limit set via `GOMEMLIMIT`. |
| `go.memory.allocated` | Gauge | bytes | Total bytes allocated to the heap. |
| `go.memory.allocations` | Counter | bytes | Cumulative bytes allocated since startup. |
| `go.memory.gc.goal` | Gauge | bytes | Target heap size for the next GC cycle. |
| `go.goroutine.count` | Gauge | goroutines | Number of active goroutines. Useful for detecting goroutine leaks. |
| `go.processor.limit` | Gauge | threads | Number of OS threads available (`GOMAXPROCS`). |
| `go.config.gogc` | Gauge | percent | GC target percentage (`GOGC` env var). |

### Configuration State Metrics

These metrics reflect the operational state of the gateway's loaded configuration. For how to use them, see [Configuration State Metrics](https://tyk.io/docs/api-management/metrics/metrics-concepts.md#configuration-state-metrics).

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.gateway.apis.loaded` | Gauge | APIs | Number of API definitions currently loaded and active. |
| `tyk.gateway.policies.loaded` | Gauge | policies | Number of policies currently loaded and active. |
| `tyk.gateway.config.reload.total` | Counter | reloads | Cumulative number of configuration reload events since startup. |
| `tyk.gateway.config.reload.duration` | Histogram | seconds | Time taken to complete each configuration reload cycle. |

### Token Exchange Metrics

> [!NOTE]
>
> Token exchange is an [Enterprise-only](https://tyk.io/docs/api-management/authentication/token-exchange.md) feature, available from Tyk 5.15.0. These metrics are only emitted on APIs with `oauth2.tokenExchange` configured.

These metrics cover every [token exchange](https://tyk.io/docs/api-management/authentication/token-exchange.md) decision the gateway makes when exchanging an inbound token for a downstream token (RFC 8693).

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.oauth2.exchange.requests` | Counter | exchanges | Total token exchange decisions, labeled by outcome and provider. Recorded on every attempt, including cache hits. |
| `tyk.oauth2.exchange.duration` | Histogram | seconds | Time to obtain the exchanged token: the IdP round-trip on a cache miss, or the cache lookup on a hit. Recorded on every attempt, so cache hits land in the lowest buckets while live IdP calls dominate the upper ones. |
| `tyk.oauth2.exchange.cache_hit` | Counter | hits | Number of exchange requests served from the token exchange cache. A separate signal, not a distinct outcome: a warm-cache exchange still increments `tyk.oauth2.exchange.requests` with `outcome="ok"`. |

#### Dimensions

All three metrics carry the following dimensions:

| Instrument | outcome | provider |
| - | :-: | :-: |
| `tyk.oauth2.exchange.requests` | Yes | Yes |
| `tyk.oauth2.exchange.duration` | Yes | Yes |
| `tyk.oauth2.exchange.cache_hit` | - | Yes |

| Dimension | Description |
| - | - |
| `outcome` | One of `ok`, `idp_error`, `misconfig`, `no_matching_provider`, or `step_up_required` ([jwt-bearer grant](https://tyk.io/docs/api-management/authentication/token-exchange.md#grant-type) only). |
| `provider` | The operator-defined `name` of the token exchange provider (`oauth2.tokenExchange.providers[].name`). A handful of values per API, so safe as a label. |

Identity, audience, and requested scopes are never metric labels or dimensions. They're only available in structured logs and audit events. See [Token exchange observability](https://tyk.io/docs/api-management/authentication/token-exchange.md#observability).

### Resource Attributes

Every metric exported from a gateway instance carries resource attributes, metadata that identifies the source. These are set once at startup and attached to all metrics.

#### Tyk-Specific Resource Attributes

| Attribute | Always Present | Example | Description |
| - | - | - | - |
| `tyk.gw.id` | Yes | `gw-prod-eu-west-1-a` | Unique gateway ID. |
| `tyk.gw.dataplane` | Yes | `true` | Whether the gateway is running in a distributed Data Plane |
| `tyk.gw.group.id` | No | `prod-eu-west-1` | Present only for Data Plane gateways, identifies the group. |
| `tyk.gw.tags` | No | `["region:eu", "env:prod"]` | Present only when the gateway has [segment tags](https://tyk.io/docs/api-management/api-sharding.md#what-is-api-sharding-) configured. |

#### Standard OTel Resource Attributes

| Category | Attributes |
| - | - |
| Service | `service.name`, `service.version`, `service.instance.id` |
| Host | `host.name`, `host.arch`, `host.ip` |
| Process | `process.pid` |

To use resource attributes as labels in Prometheus, see [Resource Attributes in Prometheus](https://tyk.io/docs/api-management/metrics/metrics-concepts.md#resource-attributes-in-prometheus).

Tyk Dashboard and Tyk MDCB also carry `control_plane_id`. See [Control Plane Identity](https://tyk.io/docs/api-management/metrics/metrics-concepts.md#control-plane-identity).

## Tyk Dashboard Metrics

The Tyk Dashboard example dashboard shows its datastore connections, connected gateways, license usage, and pool saturation.

![Tyk Dashboard example dashboard in Grafana showing datastore and Redis connection status, connected gateways, late heartbeats, license seats used, license expiry, and connection pool saturation](https://mintcdn.com/tyk/rL0KI-DLxnO1RWhd/img/observability/grafana-dashboard-metrics.png?fit=max\&auto=format\&n=rL0KI-DLxnO1RWhd\&q=85\&s=c58718b02aa875eafdf14e06d5433208)

### Uptime

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `process.uptime` | Gauge | seconds | Time the process has been running. Confirms that the OTLP metrics pipeline works. Present once metrics are enabled, independent of any family flag. |

### Gateway Node Registry

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.dashboard.gateways.connected` | Gauge | gateways | Gateways currently registered with Tyk Dashboard, by node version, segmentation, and tags. |
| `tyk.dashboard.gateways.heartbeat_timestamp` | Gauge | unix timestamp (seconds) | Time of the last heartbeat from a registered gateway, by node ID, hostname, node version, segmentation, tags, address, and process ID. |
| `tyk.dashboard.gateways.loaded_apis` | Gauge | APIs | Number of APIs loaded on a registered gateway, by the same labels as the heartbeat. Only reported for gateways that send their counts. |
| `tyk.dashboard.gateways.loaded_policies` | Gauge | policies | Number of policies loaded on a registered gateway, by the same labels as the heartbeat. Only reported for gateways that send their counts. |

Full label detail (node version, tags, address, process ID) depends on the connecting gateway sending node metadata headers. Older gateways report a limited label set until you upgrade them. See [Connectivity and Fleet Health](https://tyk.io/docs/api-management/metrics/metrics-concepts.md#connectivity-and-fleet-health).

### Management API

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `http.server.request.duration` | Histogram | seconds | Tyk Dashboard API request latency, by HTTP method, route (the registered route pattern, or `unmatched`), and status class (`1xx` to `5xx`). |
| `http.server.active_requests` | UpDownCounter | requests | Tyk Dashboard API requests currently in flight, by HTTP method. |

### License

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.dashboard.license.gateways_limit` | Gauge | gateways | Number of gateway connections allowed under the current license. -1 means unlimited. 0 means the license could not be verified. |
| `tyk.dashboard.license.gateways_used` | Gauge | gateways | Number of gateway connections currently in use against the license. Not reported until the first successful read. |
| `tyk.dashboard.license.expiry_timestamp` | Gauge | unix timestamp (seconds) | Expiry time of the Tyk Dashboard license. 0 means the license could not be verified. |

See [Expiry and Build Info](https://tyk.io/docs/api-management/metrics/metrics-concepts.md#expiry-and-build-info).

### Change Propagation

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.dashboard.notifications.published` | Counter | notifications | Configuration change notifications published to gateways, by channel (`tyk.cluster.notifications`, `tyk.cluster.keyspace.ops`) and resource type. |
| `tyk.dashboard.notifications.failures` | Counter | notifications | Configuration change notifications that failed to publish, including marshal errors, by channel and resource type. |

### Objects and Governance

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.dashboard.objects.orgs.count` | Gauge | organizations | Number of organizations. |
| `tyk.dashboard.objects.apis.count` | Gauge | APIs | Number of APIs, by organization, API type (`classic`, `oas`, `mcp`), and state (`active`, `inactive`). |
| `tyk.dashboard.objects.policies.count` | Gauge | policies | Number of policies, by organization and state (`active`, `draft`, `deny`). |
| `tyk.dashboard.objects.users.count` | Gauge | users | Number of Tyk Dashboard users, by organization and state (`active`, `inactive`). |
| `tyk.dashboard.objects.rulesets.count` | Gauge | rulesets | Number of governance rulesets, by organization, resource type (`oas-api`, `mcp-api`, `unknown`), and state (`active`, `inactive`). |
| `tyk.dashboard.governance.apis.count` | Gauge | APIs | Number of APIs by governance compliance status (`compliant`, `non_compliant`, `unassessed`), by organization, scope (`overall`, `category`), and category. |
| `tyk.dashboard.governance.rulesets.count` | Gauge | rulesets | Number of governance rulesets per category view, by organization, category, resource type, and state. Only reported when category views are configured. |

Tyk Dashboard refreshes these counts every 300 seconds by default, independently of the export interval. To change it, set `opentelemetry.metrics.objects_metrics.collection_interval`.

The governance metrics are only exported when the license includes governance and `opentelemetry.metrics.objects_metrics.governance` is not set to `false`. The inventory metrics keep exporting without them.

### Dependency Pressure

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.dashboard.redis.pool.active` | Gauge | connections | Active connections in the shared Redis pool, by component (`temporal_storage`), store (`redis`), and pool (`shared`). |
| `tyk.dashboard.redis.pool.idle` | Gauge | connections | Idle connections in the shared Redis pool, by component, store, and pool. |
| `tyk.dashboard.redis.pool.max` | Gauge | connections | Configured maximum size of the Redis pool, by component, store, and pool. Not reported when the pool is unbounded or Redis runs as a cluster client. |
| `tyk.dashboard.datastore.pool.active` | Gauge | connections | Active datastore connections, by component (`main`, `analytics`, `logs`, `uptime`), store (`mongo`, `postgres`, `mysql`), and pool (`read`, `write`, `shared`). |
| `tyk.dashboard.datastore.pool.idle` | Gauge | connections | Idle datastore connections, by component, store, and pool. |
| `tyk.dashboard.datastore.pool.max` | Gauge | connections | Configured maximum size of a datastore pool, by component, store, and pool. Not reported when `max_open_connections` is unset. |
| `tyk.dashboard.datastore.pool.wait_duration` | Counter | seconds | Cumulative time that requests have waited for a datastore connection, by component, store, and pool. |

See [Dependency and Pool Metrics](https://tyk.io/docs/api-management/metrics/metrics-concepts.md#dependency-and-pool-metrics).

### Self Health

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.dashboard.health` | Gauge | boolean | Whether a dependency is healthy (1) or not (0), by component (`main`, `analytics`, `logs`, `uptime`, `temporal_storage`) and store (`mongo`, `postgres`, `mysql`, `redis`). |

### Certificate Expiry

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.dashboard.cert.expiry_timestamp` | Gauge | unix timestamp (seconds) | Expiry time of a Tyk Dashboard TLS certificate, by certificate type (`http_tls`) and domain. Not reported when TLS is off. |

### Build Info and Exporter Health

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.dashboard.build.info` | Gauge | info | Always 1. Carries the Tyk Dashboard version and Go version as labels. |
| `tyk.dashboard.telemetry.exporter.healthy` | Gauge | boolean | Whether the metrics exporter itself is healthy (1) or not (0), by provider. A fully failed exporter cannot report 0, so also alert when the series is absent. |

## Tyk MDCB Metrics

The Tyk MDCB example dashboard shows its dependency health, connection pools, and RPC requests.

![Tyk MDCB example dashboard in Grafana showing dependency health, connection pool saturation, connections in use, idle and pool size, and RPC requests by result and latency](https://mintcdn.com/tyk/rL0KI-DLxnO1RWhd/img/observability/grafana-mdcb-metrics.png?fit=max\&auto=format\&n=rL0KI-DLxnO1RWhd\&q=85\&s=7c7b4febc108ad2714f85e3e207252b3)

### Uptime

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `process.uptime` | Gauge | seconds | Time since the Tyk MDCB replica started. Confirms that the OTLP metrics pipeline works. Present once metrics are enabled, independent of any family flag. |

### Connectivity and Churn

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.mdcb.gateway.connected` | Gauge | gateways | Whether a gateway is currently connected to Tyk MDCB (1 per connected node), by gateway, hostname, organization, group, version, and whether it is segmented. |
| `tyk.mdcb.gateway.apis_loaded` | Gauge | APIs | Number of APIs currently loaded on a connected gateway, by gateway, hostname, organization, group, and version. |
| `tyk.mdcb.gateway.policies_loaded` | Gauge | policies | Number of policies currently loaded on a connected gateway, by gateway, hostname, organization, group, and version. |
| `tyk.mdcb.gateway.connect_errors` | Counter | errors | Failed gateway connection attempts, by error type (`eof`, `timeout`, `tls`, `bad_request`, `invalid_credentials`, `malformed_session`, `hybrid_not_enabled`, `hybrid_check_error`, `node_register_error`). |
| `tyk.mdcb.gateway.reconnects` | Counter | reconnects | Reconnection attempts from a gateway that was already registered, by gateway, hostname, organization, and group. |
| `tyk.mdcb.gateway.last_heartbeat_timestamp` | Gauge | unix timestamp (seconds) | Time of the last heartbeat received from a gateway, by gateway, hostname, and group. |

See [Connectivity and Fleet Health](https://tyk.io/docs/api-management/metrics/metrics-concepts.md#connectivity-and-fleet-health).

### RPC

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.mdcb.rpc.requests` | Counter | calls | RPC calls handled, by method, gateway, group, and result (`ok`, `denied`, `error`). |
| `tyk.mdcb.rpc.bytes` | Counter | bytes | Payload size of RPC traffic, counted before encoding and compression, by method, gateway, group, and direction (`inbound`, `outbound`). |
| `tyk.mdcb.rpc.duration` | Histogram | seconds | Time to handle an RPC call, by method. |

### Configuration and Key Sync Health

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.mdcb.sync.last_success_timestamp` | Gauge | unix timestamp (seconds) | Time of the last successful sync, by group, resource type (`keys`, `certs`, `oauth`, `apis`, `policies`), and sync mode (`synchronizer`, `on_demand`). |
| `tyk.mdcb.sync.failures` | Counter | failures | Failed sync attempts, by group, resource type, error type, and sync mode. |
| `tyk.mdcb.sync.duration` | Histogram | seconds | Time to complete a batched synchronizer sync, by resource type. |
| `tyk.mdcb.keyspace.events` | Counter | events | Key-space events processed, by event type. |

### Analytics Ingestion

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.mdcb.analytics.records` | Counter | records | Analytics records processed, by organization, analytics type (`raw`, `aggregated`, `mcp`, `mcp_aggregated`), and result (`accepted`, `stored`, `failed`). Aggregated types count documents, not requests. |
| `tyk.mdcb.analytics.purge.duration` | Histogram | seconds | Time to hand a batch of analytics records to storage, by analytics type and result (`stored`, `failed`). |
| `tyk.mdcb.analytics.bytes` | Counter | bytes | Volume of analytics data ingested. |

### Dependency Pressure

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.mdcb.connection_pool.active` | Gauge | connections | Active connections in a dependency pool, by component (`rpc_server`, `datastore`, `temporal_storage`) and store (`mongo`, `postgres`, `redis`). Store is not set for `rpc_server`. |
| `tyk.mdcb.connection_pool.idle` | Gauge | connections | Idle connections in a dependency pool, by component and store. Not reported for `rpc_server` or for backends that do not report it. |
| `tyk.mdcb.connection_pool.max` | Gauge | connections | Configured maximum size of a dependency pool, by component and store. Not reported when the pool is unbounded. |
| `tyk.mdcb.connection_pool.rejected` | Counter | connections | Connections refused because a pool was at its limit, by component (currently `rpc_server` only). |

See [Dependency and Pool Metrics](https://tyk.io/docs/api-management/metrics/metrics-concepts.md#dependency-and-pool-metrics).

### Self Health

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.mdcb.health` | Gauge | boolean | Whether a dependency is healthy (1) or not (0), by component (`datastore`, `temporal_storage`, `rpc_server`) and store (`mongo`, `postgres`, `redis`). |

### Certificate and License Expiry

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.mdcb.cert.expiry_timestamp` | Gauge | unix timestamp (seconds) | Expiry time of a certificate, by certificate type (`rpc_tls`, `http_tls`). Not reported when TLS is off or the certificate cannot be parsed. |
| `tyk.mdcb.license.expiry_timestamp` | Gauge | unix timestamp (seconds) | Expiry time of the Tyk MDCB license. Not reported when the license has no expiry. |

See [Expiry and Build Info](https://tyk.io/docs/api-management/metrics/metrics-concepts.md#expiry-and-build-info).

### Build Info and Exporter Health

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.mdcb.build.info` | Gauge | info | Always 1. Carries the Tyk MDCB version and Go version as labels. |
| `tyk.mdcb.telemetry.exporter.healthy` | Gauge | boolean | Whether the metrics exporter itself is healthy (1) or not (0), by provider. A fully failed exporter cannot report 0, so also alert when the series is absent. |

See [Expiry and Build Info](https://tyk.io/docs/api-management/metrics/metrics-concepts.md#expiry-and-build-info).

## Tyk Developer Portal Metrics

The Tyk Developer Portal example dashboard shows the sync status for each provider.

![Tyk Developer Portal example dashboard in Grafana showing provider sync status, Tyk Dashboard reachability, time since last successful sync, failed syncs by cause, syncs per hour, and sync duration](https://mintcdn.com/tyk/rL0KI-DLxnO1RWhd/img/observability/grafana-portal-provider-sync.png?fit=max\&auto=format\&n=rL0KI-DLxnO1RWhd\&q=85\&s=34f3873baa780b0b68d753df99babc28)

### Uptime

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `process.uptime` | Gauge | seconds | Process uptime canary. Confirms that the OTLP metrics pipeline works. Present once metrics are enabled, independent of any family flag. |

### Provider Sync Health

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.portal.provider.sync.last_success_timestamp` | Gauge | unix timestamp (seconds) | Unix timestamp of the last successful sync between the portal and its Tyk Dashboard provider, per provider. Keeps its last good value when a sync stalls, so a stalled sync never reads as healthy. |
| `tyk.portal.provider.sync.failures` | Counter | failures | Count of failed provider syncs, by provider and error type (`auth`, `network`, `timeout`, `dashboard_error`, `init`, `db`, `other`). |
| `tyk.portal.provider.sync.duration` | Histogram | seconds | Duration of each provider sync attempt, by provider and result (`success` or `failure`). |
| `tyk.portal.provider.reachable` | Gauge | boolean | Whether the portal reached its Tyk Dashboard provider on the last sync attempt: 1 reachable, 0 not. Stays at 1 on an internal (`db`) failure, because the provider did answer. |

See [Provider Sync Health](https://tyk.io/docs/api-management/metrics/metrics-concepts.md#provider-sync-health).

### Self Health

| Metric Name | Type | Unit | Description |
| - | - | - | - |
| `tyk.portal.health` | Gauge | boolean | Whether a portal dependency is healthy (1) or not (0), by component (`database`, `storage`) and store, which is the engine behind it (`sqlite3`, `mysql`, `postgres` for database; `fs`, `db`, `s3` for storage). |

See [Dependency and Pool Metrics](https://tyk.io/docs/api-management/metrics/metrics-concepts.md#dependency-and-pool-metrics).
