When you run multiple Prometheus instances across different environments, querying metrics requires switching between instances. Data delivery solves this by continuously forwarding real-time metrics from a Managed Service for Prometheus instance to another Prometheus instance -- managed or self-managed -- through remote write. This centralizes metric storage and querying in a single location.
Data delivery runs on EventBridge. After you create a delivery task, EventBridge forwards metric data from the source Managed Service for Prometheus instance to the target Prometheus instance over the remote write protocol. Only real-time data generated after task creation is forwarded. Historical data delivery is not supported.
Prerequisites
Before you begin, make sure that you have:
A Managed Service for Prometheus instance. For setup instructions, see:
An activated EventBridge service. See Activate EventBridge and grant permissions
Data delivery requires EventBridge, which has been commercially available since June 3, 2025. For pricing details, see EventBridge billing.
Supported instance types
Instance type | Restriction |
Prometheus for Alibaba Cloud services | Free instances are supported, except those with names starting with |
Prometheus for container services | None |
Prometheus for application monitoring | None |
Prometheus for Flink Serverless | None |
Prometheus for Kubernetes | None |
General-purpose Prometheus instance | Not supported for instances reporting data through OpenTelemetry endpoints. |
Limitations
Data cannot be delivered to a free Prometheus instance.
Only real-time data generated after task creation is exported. Historical data is not supported.
For cross-VPC delivery, add the vSwitch CIDR block of the target VPC to the source Prometheus instance whitelist. To find the CIDR block, go to the vSwitch page in the VPC console.
Create a delivery task
To set up data delivery, create a task in the Cloud Monitor console, configure a data source and filtering rules, and then specify a remote write target.
Log on to the Cloud Monitor console.
In the left navigation pane, choose Managed Service for Prometheus > Data Delivery.
In the top navigation bar, select the region of your source Prometheus instance and click Create Task.
Enter a Task Name and Task Description, then click OK.
On the Edit Task page, add a data source and a delivery target:
Add a data source
Click + Add Data Source and configure the following parameters.
Parameter
Description
Example
Prometheus Instance
The source Prometheus instance.
c78cb8273c02*****Data Filtering
Label-based filter that selects which metrics to deliver. Supports regular expressions. Separate multiple conditions with line breaks. All conditions are combined with logical AND.
__name__=AliyunEcs_CPUUtilization|AliyunEcs_memory_usedutilizationregionId=cn-hangzhouid=i-2ze0mxp.*Data Labeling
Custom labels appended to delivered metrics. Use these labels to identify and query delivered data in the target instance. Separate multiple labels with line breaks.
deliver_test_key1=ssssdeliver_test_key2=yyyyClick OK.
Add a delivery target
Click Add Target.
Set Destination Type to Prometheus Remote Write, configure the remote write endpoint and authentication (see Configure the remote write endpoint), and optionally configure external_labels.
Click OK.
On the Edit Task page, click OK, then click Save.
Configure the remote write endpoint
The endpoint and authentication requirements depend on the target Prometheus instance type.
Deliver to a Managed Service for Prometheus instance
Get the remote write endpoint from the target Managed Service for Prometheus instance. For details, see Configure open-source Prometheus to read monitoring data from Managed Service for Prometheus.
Specify an authentication method and provide an AccessKey pair with the required permissions. See View the AccessKey information of a RAM user.
Deliver to a self-managed Prometheus instance
Get the remote write endpoint from your self-managed Prometheus instance. See the Prometheus remote write specification.
Before the self-managed instance can receive remote write data, verify the following requirements:
Prometheus version is 2.39 or later.
The
out_of_order_time_windowTSDB setting is configured to accept out-of-order samples. See What's new in Prometheus 2.39.The
--web.enable-remote-write-receiverstartup flag is enabled. See Prometheus remote write receiver.
Configure network access
Network configuration depends on the target instance type and whether you connect over the internet or through a VPC.
Target type | Network | Configuration |
Managed Service for Prometheus instance | Internet | No additional configuration required. |
Managed Service for Prometheus instance | VPC | Select a VPC in the same region as the target instance. Set the remote write URL to the internal endpoint. |
Self-managed Prometheus instance | Internet | No additional configuration required. |
Self-managed Prometheus instance | VPC | Select a VPC and vSwitch that can reach the self-managed instance. The delivery task automatically assigns an IP address on the selected vSwitch as the outbound IP. |
If the self-managed Prometheus instance runs on ACK, it typically uses Server Load Balancer (SLB) to expose services. For details, see Service management.
Verify the delivery result
After you create and save the delivery task, verify that metric data appears in the target instance.
Log on to the Cloud Monitor console.
In the left navigation pane, choose Managed Service for Prometheus > Instances.
Click the name of the target Managed Service for Prometheus instance and then click Metric Management in the left navigation pane.
On the Metrics Explorer tab, search for metrics from the source instance. If the metrics appear, data delivery is working correctly.
What's next
Query without duplicating storage: If you only need to query metrics from a managed instance without copying data, use remote read instead of data delivery.
Manage delivery tasks: Return to Managed Service for Prometheus > Data Delivery in the Cloud Monitor console to edit or delete delivery tasks.