AWS Cloud Operations & Migrations Blog

Automate CloudWatch Dashboard creation for your AWS Elemental Mediapackage and AWS Elemental Medialive

Introduction

Monitoring the health and performance of your media services is critical to ensuring a seamless viewing experience for your customers. Amazon CloudWatch provides powerful monitoring capabilities for AWS resources. Setting up comprehensive dashboards can be a time-consuming process, especially for organizations managing with large number of resources across multiple regions. The Automatic CloudWatch Dashboard solution is designed to simplify and create this process by automatically creating customized CloudWatch dashboards based on your tagged resources.

You can use AutomticAutomatic CloudWatch Dashboard solution to automatically add the metrics of for up to 24 AWS services, including the AWS Elemental MediaPackage and AWS Elemental MediaLive.

You can find the full list of the supported services in the “Other Supported Services” section of this blog post.

The AWS Elemental MediaLive is a live video processing service that creates streams for delivery to broadcast TVs and internet-connected devices. While the AWS Elemental MediaPackage is a video origination and packaging service that securely and reliably delivers streaming content at scale.

In this blog post, we explore how you can leverage this solution to monitor your AWS Elemental MediaPackage and AWS Elemental MediaLive services.

Prerequisites

  1. Clone the Automatic CloudWatch Dashboard solution in a local development environment:
    git clone https://github.com/aws-samples/tag-based-cloudwatch-dashboard.git
  2. Download Python 3.
  3. Install Boto 3 Python module
    python3 -m pip install boto3
  4. Download and install Node.js 16+ (18LTS recommended)
  5. Install AWS Cloud Development Kit version 2:
    npm install -g aws-cdk@latest

Before you deploy the Automatic CloudWatch Dashboard Solution, you have to tag the AWS resources you want to include in the Dashboard. To learn more on tagging AWS resources you can refer to the Best Practice for Tagging AWS Resources documentation.

In the next section, you learn how to tag AWS Elemental Mediapackage and AWS Elemental Medialive resources.

AWS Elemental MediaPackage Tagging

AWS Elemental MediaPackage supports tagging using API and CLI. In the example we use the CLI capability:

aws mediapackage tag-resource --resource-arn <resource-arn> --tags <TagKey=TagValue>

AWS Elemental MediaLive Tagging

AWS Elemental MediaLive supports tagging using AWS Console, API and CLI. In the example we use the AWS Console capability:

1. Navigate to the AWS Elemental MediaLive console

2. Select the channel you want to monitor

3. Under the Tags tab, add the key-value pair. For example:

– Tag Key: ‘event’

– Tag Value: ‘sport_event_streaming’

Note: You can define your own tag key-value pair to be used by the Automatic CloudWatch Dashboard solution.

Figure 1: Tagging AWS Elemental Live resources

Figure 1: Tagging AWS Elemental Live resources

Architecture Overview

Figure 2: Automatic CloudWatch Dashboard architecture

Figure 2: Automatic CloudWatch Dashboard architecture

The workflow works following those steps:

1. A group of AWS resources continuously store metrics in Amazon CloudWatch data store.

2. User initiates ‘data/resource_collector.py’ script

3. The Resource Collector retrieves resource data from Resource Groups and Tagging API and respective AWS Service APIs.

4. The guidance deployment wizard saves resources data in a JSON file.

5. The deployment wizard initiates AWS CDK to synthesize and AWS CloudFormation template. CloudFormation template is based on the discovered resources and AWS monitoring best practices

6. After user confirms, the AWS CDK deploys the synthesized template to CloudWatch

Deploy Automatic CloudWatch Dashboard solution

Follow the deployment instructions in Readme.md file. In this step, you can configure the Automatic CloudWatch Dashboard solution. Update the `lib/config.json` file with your own appropriate tag key, tag values, and regions. The solution will automatically generate and deploy the dashboards, providing you with a centralized view of your media service metrics.

Key Metrics for Media Services

The Automatic CloudWatch Dashboard solution includes the following key metrics for your AWS Elemental MediaPackage and MediaLive services:

AWS Elemental MediaPackage:

  • ingressBytes
  • ingressResponseTime
  • egressResponseTime
  • egressBytes
  • egressRequestCount

AWS Elemental MediaLive: 

  • activeAlerts
  • networkIn
  • networkOut
  • inputVideoFrameRate
  • inputLossSeconds
  • droppedFrames
  • output4xxErros
  • output5xxErros
  • fillMill

For the FilMill, the current length of time (the fill period) during which MediaLive has filled the video output with fill frames. The fill period starts when the pipeline doesn’t receive content from the input within the expected time.

Result

After successfully installing the Automatic CloudWatch Dashboard for Metrics, you see a new dashboard appears in the AWS CloudWatch Dashboards section. The dashboard is named whatever you specified as the BaseName in the lib/config.json configuration file.

The Elemental MediaLive and MediaPackage metrics help you quickly identify issues with your media processing and delivery. Enable you to address issues and ensure a high-quality viewing experience for your customers.

AWS Elemental MediaPackage Dashbaord

Figure 3: AWS Elemental Mediapackage tagged resources metrics

Figure 3: AWS Elemental Mediapackage tagged resources metrics

AWS Elemental MediaLive Dashboard 

Figure 4: AWS Elemental MediaLive tagged resources metrics

Figure 4: AWS Elemental MediaLive tagged resources metrics

Other Supported Services

The Automatic CloudWatch Dashboard support up to 24 services and other will be added in the future. The supported services are:

  • Amazon API Gateway v1 (REST)
  • Amazon API Gateway v2 (HTTP, WebSockets)
  • AWS AppSync
  • Amazon Aurora
  • Auto Scaling groups
  • On-Demand Capacity Reservations
  • Amazon CloudFront
  • Amazon DynamoDB
  • Amazon EBS (as part of EC2)
  • Amazon EC2 (support for t* burstable instances, support for CloudWatch Agent)
  • ELB v1 (ELB Classic)
  • ELB v2 (ALB, NLB)
  • Amazon ECS (EC2 and Fargate)
  • Amazon EFS
  • AWS Lambda
  • AWS Elemental MediaLive
  • AWS Elemental MediaPackage
  • NAT Gateway
  • Amazon RDS
  • Amazon S3
  • Amazon SNS
  • Amazon SQS
  • AWS Transit Gateway
  • AWS WAFv2

Costs

Amazon CloudWatch Automatic dashboards are free and you pay only for custom dashboards. You incur dashboard costs from the first hour in which your custom dashboard exists.

3 Custom Dashboards referencing up to 50 metrics each per month are free. When you use Automatic CloudWatch Dashboard solution, you will be charged for the custom Cloudwatch dashboard if you already have 3 custom Dashboards. More details on the CloudWatch pricing page

Cleanup

You can follow the steps to clean up the Automatic CloudWatch Dashboard that you created as part of this blog post. on your terminal,

  1. Navigate to the project root: cd tag-based-cloudwatch-dashboard
  2. Run command cdk destroy [Replace with the Name of the Stack]. Then enter y to confirm.

Conclusion

In this blog, we demonstrated how you can use the Automatic CloudWatch dashboards to monitor the AWS Elemental Mediapackage and AWS Elemental Medialive from a central dashboard by leveraging tags. This can help you to quickly identify and resolve issues that could impact your critical resources.

About the Authors:

Imane ZEROUAL

Imane is a Senior Technical Account Manager at AWS and a proud mom of two. She has more than 12 years of industry experience including roles Networking and Mobile Packet Core Consultancy, Cloud Operations and Systems engineering. In her current role, she helps her customers run workloads in more resilient, secure, sustainable and cost efficient way.

Zoran PUCAR

Zoran is a Principal Technical Account Manager at AWS. He is experienced engineer with more than 20 years of industry experience including Operations, DevOps, Software Development, Architecture, Serverless, Networking and Observability. In his role he is a builder and trusted advisor supporting his customers with Cloud Operations