

End of support notice: On October 7, 2026, AWS will end support for AWS Proton. After October 7, 2026, you will no longer be able to access the AWS Proton console or AWS Proton resources. Your deployed infrastructure will remain intact. For more information, see [AWS Proton Service Deprecation and Migration Guide](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html).

# Monitoring AWS Proton
<a name="monitoring"></a>

Monitoring is an important part of maintaining the reliability, availability, and performance of AWS Proton and your AWS solutions. The following section describes monitoring tools that you can use with AWS Proton.

# Automate AWS Proton with EventBridge
<a name="event-bridge"></a>

You can monitor AWS Proton events in Amazon EventBridge. EventBridge delivers a stream of real-time data from your own applications, software-as-a-service (SaaS) applications, and AWS services. You can configure events to respond to AWS resource state changes. EventBridge routes this data then to *target* services such as AWS Lambda and Amazon Simple Notification Service. These events are the same as those that appear in Amazon CloudWatch Events. CloudWatch Events delivers a near real-time stream of system events that describe changes in AWS resources. For more information, see [What Is Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/) in the *Amazon EventBridge User Guide*.

Use EventBridge to be notified of state changes in the AWS Proton provisioning workflows.

## Event types
<a name="event-types"></a>

Events are composed of rules that include an event pattern and targets. You configure a rule by choosing event pattern and target objects:

Event pattern  
Each rule is expressed as an event pattern with the source and type of events to monitor and the event targets. To monitor events, you create a rule with the service that you're monitoring as the event source. For example, you can create a rule with an event pattern that uses AWS Proton as an event source to trigger a rule when there are changes in a deployment state.

Targets  
The rule receives a selected service as the event target. You can set up a target service to send notifications, capture state information, take corrective action, initiate events, or take other actions.

Event objects contain standard fields of ID, account, AWS Region, detail-type, source, version, resource, time (optional). The detail field is a nested object containing custom fields for the event.

AWS Proton events are emitted on a best effort basis. Best effort delivery means that the service attempts to send all events to EventBridge, but in some rare cases an event might not be delivered.

For each AWS Proton resource that can emit events, the following table lists the detail-type value, detail fields, and (where available) a reference to a list of values for the `status` and `previousStatus` detail fields. When a resource is deleted, the `status` detail field value is `DELETED`.


| Resource | Detail-type value | Detail fields | 
| --- | --- | --- | 
|  `EnvironmentTemplate`  |  AWS Proton Environment Template Status Change  |  `name` `status` `previousStatus`  | 
|  `EnvironmentTemplateVersion`  |  AWS Proton Environment Template Version Status Change  |  `name` `majorVersion` `minorVersion` `status` `previousStatus` [status values](https://docs.aws.amazon.com/proton/latest/APIReference/API_EnvironmentTemplateVersion.html#proton-Type-EnvironmentTemplateVersion-status)  | 
|  `ServiceTemplate`  |  AWS Proton Service Template Status Change  |  `name` `status` `previousStatus`  | 
|  `ServiceTemplateVersion`  |  AWS Proton Service Template Version Status Change  |  `name` `majorVersion` `minorVersion` `status` `previousStatus` [status values](https://docs.aws.amazon.com/proton/latest/APIReference/API_ServiceTemplateVersion.html#proton-Type-ServiceTemplateVersion-status)  | 
|  `Environment`  |  AWS Proton Environment Status Change  |  `name` `status` `previousStatus`  | 
|  `Service`  |  AWS Proton Service Status Change  |  `name` `status` `previousStatus` [status values](https://docs.aws.amazon.com/proton/latest/APIReference/API_Service.html#proton-Type-Service-status)  | 
|  `ServiceInstance`  |  AWS Proton Service Instance Status Change  |  `name` `serviceName` `status` `previousStatus`  | 
|  `ServicePipeline`  |  AWS Proton Service Pipeline Status Change  |  `serviceName` `status` `previousStatus`  | 
|  `EnvironmentAccountConnection`  |  AWS Proton Environment Account Connection Status Change  |  `id` `status` `previousStatus` [status values](https://docs.aws.amazon.com/proton/latest/APIReference/API_EnvironmentAccountConnection.html#proton-Type-EnvironmentAccountConnection-status)  | 
|  `Component`  |  AWS Proton Component Status Change  |  `name` `status` `previousStatus`  | 

## AWS Proton event examples
<a name="event-examples"></a>

The following examples show the ways that AWS Proton can send events to EventBridge.

**Service template**

```
{
    "source": "aws.proton",
    "detail-type": ["AWS Proton Service Template Status Change"],
    "time": "2021-03-22T23:21:40.734Z",
    "resources": ["arn:aws:proton:region_id:123456789012:service-template/sample-service-template-name"],
    "detail": {
        "name": "sample-service-template-name",
        "status": "PUBLISHED",
        "previousStatus": "DRAFT"
    }
}
```

**Service template version**

```
{
    "source": "aws.proton",
    "detail-type": ["AWS Proton Service Template Version Status Change"],
    "time": "2021-03-22T23:21:40.734Z",
    "resources": ["arn:aws:proton:region_id:123456789012:service-template/sample-service-template-name:1.0"],
    "detail": {
        "name": "sample-service-template-name",
        "majorVersion": "1",
        "minorVersion": "0",
        "status": "REGISTRATION_FAILED",
        "previousStatus": "REGISTRATION_IN_PROGRESS"
    }
}
```

**Environment**

```
{
    "source": "aws.proton",
    "detail-type": ["AWS Proton Environment Status Change"],
    "time": "2021-03-22T23:21:40.734Z",
    "resources": ["arn:aws:proton:region_id:123456789012:environment/sample-environment"],
    "detail": {
        "name": "sample-environment",
        "status": "DELETE_FAILED",
        "previousStatus": "DELETE_IN_PROGRESS"
    }
}
```

# EventBridgeTutorial: Send Amazon Simple Notification Service alerts for AWS Proton service status changes
<a name="event-tutorial-sns"></a>

In this tutorial, you use an AWS Proton pre-configured *event rule* that captures status changes for your AWS Proton service. EventBridge sends the status changes to an Amazon SNS topic. You subscribe to the topic and Amazon SNS sends you status change emails for your AWS Proton service.

## Prerequisites
<a name="event-tutorial-sns-prereq"></a>

You have an existing AWS Proton service with an `Active` status. As part of this tutorial, you can add service instances to this service, and then delete the instances.

If you need to create an AWS Proton service, see [Getting started with AWS Proton](ag-getting-started.md). For more information, see [AWS Proton quotas](ag-limits.md) and [Edit a service](ag-svc-update.md).

## Step 1: Create and subscribe to an Amazon SNS topic
<a name="event-tutorial-sns-step1"></a>

Create an Amazon SNS topic to serve as an *event target* for the *event rule* that you create in Step 2.

**Create an Amazon SNS topic**

1. Log in and open the [Amazon SNS console](https://console.aws.amazon.com//sns/v3/).

1. In the navigation pane, choose **Topics**, **Create topic**.

1. In **Create topic** page:

   1. Choose **Type** **Standard**.

   1. For **Name**, enter **tutorial-service-status-change** and choose **Create topic**.

1. In the **tutorial-service-status-change** detail page, choose **Create subscription**.

1. In the **Create subscription** page:

   1. For **Protocol**, choose **Email**.

   1. For **Endpoint**, enter an email address that you currently have access to and choose **Create subscription**.

1. Check your email account and wait to receive a subscription confirmation email message. When you receive it, open it and choose **Confirm subscription**.

## Step 2: Register an event rule
<a name="event-tutorial-ebridge-step2"></a>

Register an *event rule* that captures status changes for your AWS Proton service. For more information, see [Prerequisites](#event-tutorial-sns-prereq).

**Create an event rule.**

1. Open the [Amazon EventBridge console](https://console.aws.amazon.com//events/).

1. In the navigation pane, choose **Events**, **Rules**.

1. In the **Rules** page, in the **Rules** section, choose **Create rule**.

1. In the **Create rule** page:

   1. In the **Name and description** section, for **Name**, enter **tutorial-rule**.

   1. In the **Define pattern** section, choose **Event pattern**.

      1. For **Event matching pattern**, choose **Pre-defined by service**.

      1. For **Service provider**, choose **AWS**.

      1. For **Service name**, choose **AWS Proton**.

      1. For **Event type**, choose **AWS Proton Service Status Change**.

         The **Event pattern** appears in a text editor.

      1. Open the [AWS Proton console](https://console.aws.amazon.com//proton/).

      1. In the navigation pane, choose **Services**.

      1. In **Services** page, choose the name of your AWS Proton service.

      1. In **Service details** page, copy the service Amazon Resource Name (ARN).

      1. Navigate back to the *EventBridge console* and your tutorial rule and choose **Edit** at the text editor.

      1. In the text editor, for `"resources":`, enter the service ARN that you copied in step viii.

         ```
         {
             "source": ["aws.proton"],
             "detail-type": ["AWS Proton Service Status Change"],
             "resources": ["arn:aws:proton:region-id:123456789012:service/your-service"]
         }
         ```

      1. **Save** the event pattern.

   1. In the **Select targets** section:

      1. For **Target**, choose **SNS topic**.

      1. For **Topic**, choose **tutorial-service-status-change**.

   1. Choose **Create**.

## Step 3: Test your event rule
<a name="event-tutorial-ebridge-step3"></a>

Verify that your *event rule* is working by adding an instance to your AWS Proton service.

1. Switch to the [AWS Proton console](https://console.aws.amazon.com//proton/).

1. In the navigation pane, choose **Services**.

1. In **Services** page, choose the name of your service.

1. In **Service details** page, choose **Edit**.

1. In **Configure service** page, choose **Next**.

1. In **Configure custom settings** page, in the **Service instances** section, choose **Add new instance**.

1. Complete the form for your **New instance**:

   1. Enter a **Name** for your new instance.

   1. Select the *same compatible environments* that you chose for your existing instances.

   1. Enter values for the required inputs.

   1. Choose **Next**.

1. Review your inputs and choose **Update**.

1. After the **Service status** is `Active`, check your email to verify you received AWS notifications that give status updates.

   ```
   {
       "version": "0",
       "id": "af76c382-2b3c-7a0a-cf01-936dff228276",
       "detail-type": "AWS Proton Service Status Change",
       "source": "aws.proton",
       "account": "123456789012",
       "time": "2021-06-29T20:40:16Z",
       "region": "region-id",
       "resources": ["arn:aws:proton:region-id:123456789012:service/your-service"],
       "detail": {
           "previousStatus": "ACTIVE",
           "status": "UPDATE_IN_PROGRESS",
           "name": "your-service"
       }
   }
   ```

   ```
   {
       "version": "0",
       "id": "87131e29-ad95-bda2-cd30-0ce825dfb0cd",
       "detail-type": "AWS Proton Service Status Change",
       "source": "aws.proton",
       "account": "123456789012",
       "time": "2021-06-29T20:42:27Z",
       "region": "region-id",
       "resources": ["arn:aws:proton:region-id:123456789012:service/your-service"],
       "detail": {
           "previousStatus": "UPDATE_IN_PROGRESS",
           "status": "ACTIVE",
           "name": "your-service"
       }
   }
   ```

## Step 4: Clean up
<a name="event-tutorial-ebridge-step4"></a>

Delete your Amazon SNS topic and subscription and delete your EventBridge rule.

**Delete your Amazon SNS topic and subscription.**

1. Navigate to the [Amazon SNS console](https://console.aws.amazon.com//sns/v3/).

1. In the navigation panel, choose **Subscriptions**.

1. In the **Subscriptions** page, choose the subscription that you made to the topic named `tutorial-service-status-change` and then choose **Delete**.

1. In the navigation panel, choose **Topics**.

1. In the **Topics** page, choose the topic named `tutorial-service-status-change` and then choose **Delete**.

1. A modal prompts you to verify the deletion. Follow the instructions and choose **Delete**.

**Delete your EventBridge rule.**

1. Navigate to the [Amazon EventBridge console](https://console.aws.amazon.com//events/).

1. In the navigation pane, choose **Events**, **Rules**.

1. In the **Rules** page, choose the rule named `tutorial-rule` and then choose **Delete**.

1. A modal prompts you to verify the deletion. Choose **Delete**.

**Delete the added service instance.**

1. Navigate to the [AWS Proton console](https://console.aws.amazon.com//proton/).

1. In the navigation pane, choose **Services**.

1. In the **Services** page, choose the name of your service.

1. In the **Service** detail page, choose **Edit** and then **Next**.

1. In **Configure custom settings** page, in the **Service instances** section, choose **Delete** for the service instance that you created as part of this tutorial and then choose **Next**.

1. Review your inputs and choose **Update**.

1. A modal prompts you to verify the deletion. Follow the instructions and choose **Yes, delete**.

# Keep infrastructure up to date with the AWS Proton dashboard
<a name="monitoring-dashboard"></a>

The AWS Proton dashboard provides a summary of AWS Proton resources in your AWS account, with a particular focus on *staleness*—how updated deployed resources are. A deployed resource is up to date when it uses the recommended version of its associated template. An out-of-date deployed resource might need a major or minor template version update.

## View the dashboard in the AWS Proton console
<a name="w2aac28b9b7"></a>

To view the AWS Proton dashboard, open the [AWS Proton console](https://console.aws.amazon.com//proton/), and then, in the navigation pane, choose **Dashboard**.

### Resources
<a name="w2aac28b9b7b9"></a>

![\[Resources tab\]](http://docs.aws.amazon.com/proton/latest/userguide/images/dashboard.png)


The first tab of the dashboard displays counts of all resources in your account. The resources tab shows the number of your service instances, services, environments, and components, as well as your resource templates. It also breaks down resource counts for each deployed resource type by the status of resources of that type. A service instance table shows details of each service instance—its deployment status, the AWS Proton resources that it's associated with, the updates that are available to it, and some time stamps.

You can filter the service instance list by any table property. For example, you can filter to see service instances with deployments within a specific time window, or service instances that are out of date relative to major or minor version recommendations.

Choose a service instance name to navigate to the service instance detail page, where you can act to make appropriate version updates. Choose any other AWS Proton resource name to navigate to its detail page, or choose a resource type to navigate to the respective resource list.

### Deployment history
<a name="w2aac28b9b7c13"></a>

![\[Deployment history tab\]](http://docs.aws.amazon.com/proton/latest/userguide/images/deployment-history.png)


The deployment history tab lets you see details about your deployments. In the deployment history table, you can keep track of the deployment status, as well as environment and deployment ID. You can choose the resource name or the deployment ID to see even more details, such as a deployment status message and resource outputs. The table also allows you to filter on any table property.