Plan your metrics setup
Elastic Cloud Serverless projects are autoscaled environments, fully managed by Elastic and available on Elastic Cloud. Availability This functionality is generally available and ready for production usage. The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats. Availability This functionality is generally available and ready for production usage. Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.
Serverless Observability
Generally available
Stack
Generally available
Before you ingest metrics at scale, decide on two things: the data model your metrics are stored in, and the ingest path for your deployment type. Elastic doesn't convert metrics between schemas at ingest, so the ingest path you use determines how your data is stored, which field names you query, and which prebuilt dashboards work.
The data model is the schema your metrics are stored with: the naming conventions that determine your metric and field names. Use the OpenTelemetry schema unless you need existing Elastic Common Schema (ECS) integrations, dashboards, and alerts to keep working without customization. For that and other use cases where ECS might work better, refer to Know when to keep using classic Elastic components.
- OpenTelemetry (OTel) schema
- Metrics follow the OpenTelemetry semantic conventions, for example the metric
system.cpu.utilization, with attributes stored underattributes.*andresource.attributes.*. This is the default. It matches the OpenTelemetry ecosystem and the Elastic OpenTelemetry ingest paths. - Elastic Common Schema (ECS)
- Metrics follow Elastic's original field naming conventions, for example
system.cpu.user.pct. Elastic Agent integrations write this schema, as does Metricbeat, the standalone Beats shipper for metrics. Use ECS when you need existing ECS integrations, dashboards, and alerts to keep working without customization. - Prometheus names
- Prometheus remote write uses neither schema. It stores Prometheus metric and label names as they arrive, for example the metric
node_cpu_seconds_total, with labels stored underlabels.*. You get this data model when you keep Prometheus and add Elastic as a remote write target.
Use one schema. Mixing OpenTelemetry and ECS in one deployment works, but requires two sets of field names in your queries and dashboards.
| Ingest path | Stored as | Metric values and labels |
|---|---|---|
| Managed OTLP Endpoint, Elastic Agent configured as an OTel Collector gateway, Elasticsearch OTLP/HTTP endpoint | OpenTelemetry-native | metrics.<metric_name>, with OpenTelemetry attributes under attributes.* and resource.attributes.*, in metrics-*.otel-* data streams |
| Elastic Agent integrations, Metricbeat, Beat receivers | ECS | ECS field names, for example system.cpu.user.pct, in the integration's data streams |
APM Server or managed inputs OTLP intake (the .apm endpoint) |
ECS | Legacy path that translates OTLP data to ECS. Not recommended for new setups. |
| Prometheus remote write (Managed Prometheus Remote Write endpoint or Elasticsearch endpoint) | Prometheus names, unchanged | metrics.<metric_name>, with labels as labels.<label_name> dimensions, in metrics-*.prometheus-* data streams. No conversion to OpenTelemetry or ECS. |
For the OpenTelemetry Protocol (OTLP) paths, refer to How your ingest path determines the data format. For Prometheus remote write, refer to Data mapping.
The schema you choose affects how you ingest, which metric names you query, and which dashboards work without customization:
| Aspect | OTel schema | ECS |
|---|---|---|
| Ingest using | EDOT SDKs, any OTLP-compatible client, Elastic Agent configured as an OTel Collector | Elastic Agent integrations, Metricbeat |
| Metric names | OpenTelemetry semantic conventions (system.cpu.utilization) |
ECS (system.cpu.user.pct) |
| Prebuilt dashboards | OpenTelemetry content packs from the Kibana Integrations UI | Elastic Agent integration dashboards |
| The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats. Availability Generally available since 9.5 This functionality is generally available and ready for production usage. Preview in 9.4 This functionality is in technical preview and is ready for evaluation. Use with caution in production; it is not recommended for mission-critical workloads. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features. Specific Support terms apply. Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. Elastic Cloud Serverless projects are autoscaled environments, fully managed by Elastic and available on Elastic Cloud. Availability Generally available This functionality is generally available and ready for production usage. Serverless interfaces and procedures might differ from classic Elastic Stack deployments. PromQL support | Yes | Yes, when the integration stores data as a time series data stream (TSDS) |
| Recommended for | Default | Existing ECS integrations, dashboards, and alerts |
Prometheus remote write isn't in the table because it isn't a schema you choose: metrics ingested that way always keep their Prometheus names.
PromQL support depends on storage, not schema. Elasticsearch evaluates PromQL over any TSDS matched by metrics-*, whichever ingest path filled it. OTLP and Prometheus remote write metrics always land in a TSDS. Elastic Agent integration data streams are a TSDS when the integration enables it. Refer to the PromQL reference for how Elasticsearch evaluates PromQL.
Your deployment type determines the recommended path. Use Elastic Agent integrations instead of the recommended path only when you need ECS.
| Deployment | Recommended path | Also available |
|---|---|---|
| Elastic Cloud Serverless | Managed OTLP Endpoint | - Managed Prometheus Remote Write endpoint - Elastic Agent integrations |
| Elastic Cloud Hosted | Managed OTLP Endpoint | - Managed Prometheus Remote Write endpoint
The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats.
Availability
Generally available since 9.4
This functionality is generally available and ready for production usage.
Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments.
This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.
- Elastic Agent integrations |
| Self-managed Elastic Stack, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes | Elastic Agent configured as an OTel Collector gateway | - Elasticsearch OTLP/HTTP endpoint
The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats.
Availability
Generally available since 9.2
This functionality is generally available and ready for production usage.
Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments.
This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.
- Elasticsearch Prometheus remote write endpoint The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats. Availability Generally available since 9.5 This functionality is generally available and ready for production usage. Preview in 9.4 This functionality is in technical preview and is ready for evaluation. Use with caution in production; it is not recommended for mission-critical workloads. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features. Specific Support terms apply. Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. - Elastic Agent integrations |
For configuration details for each path, refer to Ingest metrics.