

# Explore related telemetry
<a name="ExploreRelated"></a>

Computer systems can generate a large amount of telemetry, including both metrics and logs, and complex systems even more so. When looking at a specific set of telemetry, it can be a challenge to find other telemetry related to your initial set. It can take advanced training to gain the skills needed to find issues and troubleshoot them. Because systems are complex, understanding what is going on can involve viewing metrics and logs from many different services and resources, requiring context switching and navigating between systems.

The Amazon CloudWatch **Explore related** feature offers access to AWS resource relationships, related metrics, and logs across service consoles, enhancing observability and efficiency for operators of all skill levels. When viewing alarms or anomalies in CloudWatch dashboards, or metrics in AWS, users can quickly find and view metrics and logs for related resources in your system.

CloudWatch provides visibility into metrics and logs tied to specific resources, and the **Explore related** pane extends that by allowing you to correlate your infrastructure resources to your workloads with all of their associated telemetry. This gives you quick access to the information you need to troubleshoot infrastructure-related issues. You view the relationship between resources, and their related telemetry in the **Explore related** pane. The **Explore related** pane is accessed from CloudWatch or from other AWS consoles showing resources or telemetry.

**Note**  
**Explore related** is currently limited in accounts set up as monitoring accounts in CloudWatch cross-account observability. You should access **Explore related** from the source accounts where the resources are originally created and managed. In source accounts, you can navigate between connected resources, and view related logs and metrics.

The following topics discuss the details of exploring related telemetry.

**Topics**
+ [

## What is related telemetry?
](#what-is-related-telemetry)
+ [

## How to access the Explore related pane
](#access-related-telemetry)
+ [

## Navigating related telemetry
](#using-related-telemetry)
+ [

## Using the topology map
](#using-related-telemetry-map)
+ [

## Finding a specific resource
](#using-related-telemetry-find)
+ [

## Permissions and prerequisites needed to view and explore related telemetry
](#related-telemetry-permissions)
+ [

# How does CloudWatch find related telemetry?
](how-does-related-telemetry-work.md)
+ [

# AWS services that support related telemetry
](services-with-related-telemetry.md)
+ [

# How to add related information to custom telemetry sent to CloudWatch
](adding-your-own-related-telemetry.md)

## What is related telemetry?
<a name="what-is-related-telemetry"></a>

Related telemetry is metrics and log data from resources that are related to the current resource or service. Traditionally, you might look at the metrics and logs that are related to a single load balancer, or all telemetry related to Amazon EC2. The **Explore related** feature in Amazon CloudWatch adds an interactive *topology map*. The map is a resource-centric view where you can find metrics and logs for a specific resource, but you can also see how that resource is connected to other resources.

For example, if you are looking at the telemetry for a load balancer in the **Explore related** pane, besides the metrics and logs associated with that load balancer, the maps shows you the target groups for that load balancer. Selecting one of the target groups will then show you the Amazon EC2 instances associated with that target group. At each step in this process, the telemetry, including metrics and logs, for the selected resources are shown, making it easy to quickly find the telemetry you are looking for, or to explore the telemetry, looking for the cause of a specific issue.

## How to access the Explore related pane
<a name="access-related-telemetry"></a>

Within the CloudWatch console, there are multiple ways to access telemetry related to your current view. For example, if you are looking at a graph on a dashboard, and you want to view telemetry related to that graph or an aspect of the graph, you can choose to explore related data directly from that graph. From many places in the console, you can choose an **Explore related** menu item, or select a compass icon (![\[Compass icon representing navigation or direction in a user interface.\]](http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/images/compass-icon.png)) to show the **Explore related** pane.

You can access the exploring experience from entry points throughout the CloudWatch console (and other AWS consoles), including:
+ **Metrics navigation** – When you choose **Metrics** then **All metrics** from the CloudWatch console left hand menu, the tile for any supported service or metric source will show the compass icon that brings up related telemetry in the bottom right corner.
+ **Metric legend** – When viewing any metric graph (in CloudWatch or other AWS consoles), hovering over the legend of the graph shows information about the data, as well as an **Explore related** button that brings up the related telemetry.
+ **Metric datapoints** – When viewing any metric graph, hovering over a datapoint in the graph shows information about the metric, as well as a compass icon, to bring up the related telemetry.
+ **Metric search** – When searching for metrics in CloudWatch, if you choose a found metric name, you can select **Explore related** from the menu that pops up, which will bring up the related telemetry.
+ **Console toolbar** – In many AWS console pages, the console toolbar (usually in the upper right of the console) includes a CloudWatch service icon, which will bring up CloudWatch tools, including the **Explore related** pane.

Depending on where you access the pane from, the default context of the pane will show an appropriate filter, if possible.

## Navigating related telemetry
<a name="using-related-telemetry"></a>

When you select any of the entry points to the **Explore related** pane, it appears on the right side of the CloudWatch console. This pane gives you access to view and find telemetry related to *entities*, in your system. An entity is a resource, such as an Amazon EC2 instance, or a service, such as an application that you have built. You can work within this pane without interrupting your current workflow, because it opens to the side of your initial page.

The following image shows the **Explore related** pane focused on a single Amazon EC2 instance, and the associated entities.

![\[The Explore related pane, with a single Amazon EC2 instance in focus, and its associated entities.\]](http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/images/compass-explore-main.png)


The top of the **Explore related** pane is a visual *topology map* (map) of the current entity and other related entities. The currently selected entity sets the focus for the pane. There are two ways to select an entity.
+ [Topology map](#using-related-telemetry-map) – The *map* is a visual display of the current entity with focus. It also displays any related entities, allowing you to navigate around the set of resources and services that are related to each other.
+ [Find other resources](#using-related-telemetry-find) – You can use the **Find other resources** button to filter and search for entities to use as the focus.

The bottom part of the pane shows you an automated search of metrics and logs for the current focal entity.

By default, the focus is set to an entity matching the location from which you accessed the **Explore related** pane. For example, if you accessed it by clicking the compass icon associated with a metric from a specific Amazon EC2 instance, then the focus will be set to that Amazon EC2 instance.

When you select an AWS resource for the focus in the **Explore related** pane, you can navigate to the resource-specific console for the selected resource. For example, if you have selected an Amazon EC2 instance, you can select the **View in EC2 console** link to open the Amazon EC2 console with that instance selected.

When you set a focus, the metrics and logs are automatically filtered to show the telemetry related to your focus.
+ **Metrics** – Each metric is shown as a graph for the time period that you have chosen.

  Much like any dashboard graph in CloudWatch, you can hover over or select a graph to get more information about the metric graph, and to see options including viewing in CloudWatch metrics. Choosing to view in CloudWatch will open the metrics view with the same viewing context as the **Explore related** pane, including resource and time range.
+ **Log patterns** – CloudWatch analyzes the log groups associated with the focal resource and shows common patterns in those logs. For more information about log patterns, see [Pattern analysis](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData_Patterns.html) in the *Amazon CloudWatch Logs User Guide*.

  You can select **Compare timerange** to choose another time range and compare logs across the two time ranges.

  You can select **View in Logs Insights** to analyze the logs in CloudWatch Logs Insights with the same options as your current view, including resource, log group, and time range. For more information, see [Analyzing log data with CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) in the *Amazon CloudWatch Logs User Guide*.
+ **Log groups** – The [log groups](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) that contain the logs are shown.

  You can select the log groups and then perform one of the following actions:
  + Choose **Start tailing in Live Tail** to view a streaming list of new log events as they are ingested for the selected log groups. The Live Tail session is started in the CloudWatch console. For more information on Live Tail, see [Troubleshoot with CloudWatch Logs LiveTail](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs_LiveTail.html) in the *Amazon CloudWatch Logs User Guide*.
  + Choose **Query in Logs Insights** to open Logs Insights with a query scoped to just those log groups, applying your current context, including resources and time range.

## Using the topology map
<a name="using-related-telemetry-map"></a>

The *topology map* (map) is a visual display of the current focal entity and its related resources or services. You can use this interactive visualization to see the connections between different resources and services, and explore the relationships between components in your system. For example, if you are viewing *load balancer* resource, the map will show connected *target group* resources. Selecting a target group will display the associated instances. The visualization of connectivity helps operators understand and explore the relationships between different resources and services in your system.

You can drag the map, and zoom in and out, to see more of the associated entities, or to focus on fewer entities.

When you select an associated entity, like a target group, the pane's focus shifts to show telemetry for that entity. The map updates to center on the selected target group, displaying its connections to other entities, such as the load balancer and and any Amazon EC2 instances that are specified in that target group. As you navigate through different entities in the map, the metrics and logs at the bottom of the pane dynamically update, providing you with relevant telemetry for the newly selected resources.

## Finding a specific resource
<a name="using-related-telemetry-find"></a>

If a resource doesn't appear on the topology map, you can use the **Find other resources** feature to locate it. You can filter resources by tag or type, then select the ones you are looking for. After you have found resources to focus on, you are returned to the topology map, with those resources selected, to browse associated entities and telemetry.

**Note**  
There are many reasons why you might not see your resources on the topology map. For example:  
It's not related to the current focal entity.
You don't have [permissions](#related-telemetry-permissions) to access associated entities or telemetry.
The [resource or service](services-with-related-telemetry.md) may not support telemetry or associated entities.

By using **Find other resources**, you can discover and visualize resources that may not be directly connected or visible in the current map. This ensures that you can access and analyze all relevant components of your infrastructure.

**Select a resource with Find resources.**

1. Open the **Explore related** pane from any of the [entry points](#access-related-telemetry) in the CloudWatch console.

1. Choose **Find resources**.

1. Choose the time frame for which you want to view logs or metrics.

1. Choose **Resource types**, then select the type of the resource you want to focus on from the drop down list, for example, **EC2 instances**.

1. Optionally, filter the set of resources by providing a tag to filter on. You can do this by selecting the **Filter resources by tags** filter, or by choosing the label that says **5 tags found** (the number will depend on the tags in your system). This gives you a list of tags to choose from.

   After you have selected the tags, the list of resources is automatically filtered to only those that are associated with those tags.

1. Optionally, choose one or more specific resources from the ones found that match your filters.

1. Choose **Show on map** to return to the **Topology map** with your resources selected.

Your list of **Metrics** and **Logs** is now filtered to just logs and metrics that are associated with that resource type. You can choose the **Metrics** or **Logs** tab to view the kind of telemetry that you want to view.

## Permissions and prerequisites needed to view and explore related telemetry
<a name="related-telemetry-permissions"></a>

To explore related telemetry, you must be getting entity information with the telemetry from your workloads, and you must have the proper permissions to view that data.

Many services send entity information automatically. For workloads that use the CloudWatch agent, you must have at least version `1.300049.1` of the agent, and you must configure it correctly. For information about configuring the agent, see [How to add related information to custom telemetry sent to CloudWatch](adding-your-own-related-telemetry.md). For workloads running on Amazon EKS, you must have at least version `v2.3.1-eksbuild.1` of the Amazon CloudWatch Observability EKS add-on. For more information about this add-on, see [Quick start with the Amazon CloudWatch Observability EKS add-on](Container-Insights-setup-EKS-addon.md).

To explore related telemetry you must be signed in with certain permissions. Exploring related telemetry is a read-only activity, and requires at least read-only access to CloudWatch.

The permissions needed for viewing associations between telemetry and entities are: `logs:ListLogGroupsForEntity`, `logs:ListEntitiesForLogGroup`, `cloudwatch:ListEntitiesForMetric`, and `application-signals:ListObservedEntities`.

Each of the following AWS managed policies will provide the CloudWatch permissions needed to access related telemetry in the CloudWatch console:
+ [CloudWatchFullAccessV2](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/CloudWatchFullAccessV2.html) – Provides full access to CloudWatch.
+ [CloudWatchReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/CloudWatchReadOnlyAccess.html) – Provides read-only access to CloudWatch.
+ [ReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/ReadOnlyAccess.html) – Provides read-only access to AWS services and resources.

Additionally, you must have at least read-only access (`Describe*` and `Get*`) to any resources in the topology map, in order for CloudWatch to discover and display relationships.

For more details about using policies to control access, see [Managing access using policies](auth-and-access-control-cw.md#security_iam_access-manage).

# How does CloudWatch find related telemetry?
<a name="how-does-related-telemetry-work"></a>

The CloudWatch **Explore related** pane shows you metrics and logs that are related to each other, but how does that work?

Metrics and logs that are sent to CloudWatch can include an optional *entity* to which they are related. Typically, the entity will be a representation of what the telemetry is about. For example, a metric about CPU usage is about an Amazon EC2 instance, and will use that instance as its entity. When you view that metric in the **Explore related** pane, it shows you other telemetry for that same instance.

The *topology map* (map) in the **Explore related** pane displays the currently selected resource, along with *related resources*. For AWS resources, CloudWatch automatically displays other resources that it knows are related. For example, if you are viewing an Amazon EC2 instance, the map will also display any Amazon EBS volumes that are attached to the instance. Selecting a volume shows telemetry for the volume, and the map is updated to display resources related to the volume. It also displays resources that are part of the same *service*.

The entity information associated with your telemetry defines the resource that the telemetry is associated with, such as the Amazon EC2 instance. However, it can also include contextual data about the resource. For example, if you have a website application that includes resources such as an Amazon EC2 instance and a database, the entity information can include the website application as a service. In this case, the topology map shows the service as a related entity, and when you select it, it displays the instances and database. This can make finding all the telemetry for a service simpler.

**Note**  
CloudWatch must have received telemetry with entity information within the last three hours in order to find related resources and telemetry.

## Where does the entity data come from?
<a name="how-does-related-telemetry-work-entity"></a>

There are different ways that CloudWatch gets entities for telemetry:
+ Most telemetry sent to CloudWatch from AWS services are associated with resources automatically. For a complete list of supported resources, see [AWS services that support related telemetry](services-with-related-telemetry.md).
+ The CloudWatch agent automatically adds entity information to the telemetry that it sends to CloudWatch.
**Note**  
You may need to update your CloudWatch agent to the latest version to include entity data. For more information, see [Collect metrics, logs, and traces using the CloudWatch agent](Install-CloudWatch-Agent.md), and [Configure CloudWatch agent service and environment names for related entities](CloudWatch-Agent-configure-related-telemetry.md).
+ When you are submitting your own telemetry, you can add entity information to the data. For more information, see [How to add related information to custom telemetry sent to CloudWatch](adding-your-own-related-telemetry.md).
+ CloudWatch makes a best effort to recognize the entity information associated with other telemetry (for example, custom telemetry that you send to CloudWatch without any entity information).

## Where does service data come from?
<a name="how-does-related-telemetry-work-service"></a>

Besides recognizing the natural connections between resources, such as an instance resource and an attached volume resource, CloudWatch can also group resources by *service*. For example, a service might be a website application. An Amazon EC2 instance with a web server, and another with a database might both be part of the same service, and are connected on the topology map based on that service.

There are different ways that CloudWatch gets a service name for telemetry, including:
+ Application signals or otel instrumented telemetry use the `OTEL_SERVICE_NAME` environment variable used by supported OpenTelemetry instrumentation libraries to set the service name.
+ The CloudWatch agent configuration allows configuring a service name. For more information, see [Configure CloudWatch agent service and environment names for related entities](CloudWatch-Agent-configure-related-telemetry.md).
+ Kubernetes workloads use a corresponding name from the cluster, such as the Deployment, ReplicaSet, Pod, or Container, for the service name.
+ For Amazon EC2 workloads, the service can come from tags (the `service`, `application`, or `app` tags).
**Note**  
To use tags to generate service names, you must first [set up instance metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/work-with-tags-in-IMDS.html#allow-access-to-tags-in-IMDS) for the Amazon EC2 instance.
+ When you are submitting your own telemetry, you can add service information to the data. For more information, see [How to add related information to custom telemetry sent to CloudWatch](adding-your-own-related-telemetry.md).
+ When it cannot use the above, CloudWatch uses the name of the IAM role that sends the metrics as the service name. This, for example, can provide a service name for Amazon ECS telemetry.

# AWS services that support related telemetry
<a name="services-with-related-telemetry"></a>

The following table lists the AWS services that support related entity information in their CloudWatch telemetry. Services or resources that are not listed in the table do not have related entity information exposed in CloudWatch.

**Note**  
For services that use the [CloudWatch agent](Install-CloudWatch-Agent.md), you may need to update the agent to the latest version to get related telemetry. For information about sending related entity information with your own custom metrics, see [How to add related information to custom telemetry sent to CloudWatch](adding-your-own-related-telemetry.md).


| AWS Service | Resource | Metrics | Logs | 
| --- | --- | --- | --- | 
|  Amazon API Gateway  |  `AWS::ApiGateway::Method`  |  Yes  |  No  | 
|  Amazon API Gateway  |  `AWS::ApiGateway::Resource`  |  Yes  |  No  | 
|  Amazon API Gateway  |  `AWS::ApiGateway::RestApi`  |  Yes  |  No  | 
|  Amazon API Gateway  |  `AWS::ApiGateway::Stage`  |  Yes  |  Yes  | 
|  Amazon API Gateway  |  `AWS::ApiGateway::VpcLink`  |  Yes  |  No  | 
|  Amazon API Gateway V2  |  `AWS::ApiGatewayV2::Integration`  |  Yes  |  No  | 
|  Amazon API Gateway V2  |  `AWS::ApiGatewayV2::Route`  |  Yes  |  No  | 
|  Amazon API Gateway V2  |  `AWS::ApiGatewayV2::Stage`  |  No  |  Yes  | 
|  Amazon API Gateway V2  |  `AWS::ApiGatewayV2::Api`  |  Yes  |  No  | 
|  AWS App Runner  |  `AWS::AppRunner::Service`  |  No  |  Yes  | 
|  AWS Application Migration Service  |  `AWS::MGN::SourceServer`  |  Yes  |  No  | 
|  Amazon WorkSpaces Applications  |  `AWS::AppStream::Fleet`  |  Yes  |  Yes  | 
|  AWS AppSync  |  `AWS::AppSync::GraphQLApi`  |  Yes  |  Yes  | 
|  AWS B2B Data Interchange  |  `AWS::B2BI::Transformer`  |  No  |  Yes  | 
|  AWS Backup gateway  |  `AWS::BackupGateway::Hypervisor`  |  No  |  Yes  | 
|  Amazon Bedrock  |  `AWS::Bedrock::KnowledgeBase`  |  No  |  Yes  | 
|  Amazon Bedrock  |  `AWS::Bedrock::ModelId`  |  Yes  |  No  | 
|  Amazon Chime  |  `AWS::Chime::SipMediaApplication`  |  No  |  Yes  | 
|  Amazon Chime  |  `AWS::Chime::VoiceConnector`  |  No  |  Yes  | 
|  AWS Clean Rooms  |  `AWS::CleanRooms::Membership`  |  No  |  Yes  | 
|  AWS CloudFormation  |  |  No  |  Yes  | 
|  AWS CloudFormation Hooks  |  |  No  |  Yes  | 
|  Amazon CloudFront  |  `AWS::CloudFront::Distribution`  |  Yes  |  Yes  | 
|  AWS CloudTrail  |  `AWS::CloudTrail::EventDataStore`  |  No  |  Yes  | 
|  AWS CloudTrail  |  `AWS::CloudTrail::Trail`  |  No  |  Yes  | 
|  Amazon CloudWatch  |  `AWS::CloudWatch::MetricStream`  |  Yes  |  No  | 
|  Amazon CloudWatch Logs  |  `AWS::Logs::LogGroup`  |  Yes  |  No  | 
|  Amazon CloudWatch RUM  |  `AWS::RUM::AppMonitor`  |  No  |  Yes  | 
|  Amazon CloudWatch Synthetics  |  `AWS::Synthetics::Canary`  |  Yes  |  No  | 
|  AWS CodeBuild  |  `AWS::CodeBuild::Project`  |  Yes  |  No  | 
|  Amazon CodeWhisperer  |  `AWS::CodeWhisperer::Customization`  |  No  |  Yes  | 
|  Amazon Cognito user pools  |  `AWS::Cognito::UserPool`  |  Yes  |  Yes  | 
|  AWS Config  |  `AWS::Config::ConfigRule`  |  No  |  Yes  | 
|  Amazon Connect  |  `AWS::Connect::Instance`  |  No  |  Yes  | 
|  AWS Database Migration Service  |  `AWS::DMS::ReplicationInstance`  |  Yes  |  No  | 
|  AWS Database Migration Service  |  `AWS::DMS::ReplicationTask`  |  Yes  |  No  | 
|  AWS DataSync  |  `AWS::Datasync::Agent`  |  Yes  |  No  | 
|  AWS DataSync  |  `AWS::DataSync::Task`  |  Yes  |  Yes  | 
|  AWS Directory Service  |  `AWS::DirectoryService::MicrosoftAD`  |  No  |  Yes  | 
|  Amazon DynamoDB  |  `AWS::DynamoDB::Table`  |  Yes  |  No  | 
|  DynamoDB Accelerator  |  `AWS::DAX::Cluster`  |  Yes  |  No  | 
|  Amazon EC2  |  `AWS::EC2::CapacityReservation`  |  Yes  |  No  | 
|  Amazon EC2  |  `AWS::EC2::Instance`  |  Yes  |  No  | 
|  Amazon EC2  |  `AWS::EC2::FlowLog`  |  Yes  |  No  | 
|  Amazon EC2  |  `AWS::EC2::NATGateway`  |  Yes  |  No  | 
|  Amazon EC2  |  `AWS::EC2::NetworkInterface`  |  Yes  |  Yes  | 
|  Amazon EC2  |  `AWS::EC2::Subnet`  |  Yes  |  Yes  | 
|  Amazon EC2  |  `AWS::EC2::TransitGateway`  |  Yes  |  No  | 
|  Amazon EC2  |  `AWS::EC2::TransitGatewayAttachment`  |  Yes  |  Yes  | 
|  Amazon EC2  |  `AWS::EC2::VerifiedAccessInstance`  |  No  |  Yes  | 
|  Amazon EC2  |  `AWS::EC2::Volume`  |  Yes  |  No  | 
|  Amazon EC2  |  `AWS::EC2::VPC`  |  No  |  Yes  | 
|  Amazon EC2  |  `AWS::EC2::VPNConnection`  |  Yes  |  Yes  | 
|  Amazon EC2 Auto Scaling  |  `AWS::AutoScaling::AutoScalingGroup`  |  Yes  |  No  | 
|  AWS Elastic Beanstalk  |  `AWS::ElasticBeanstalk::Environment`  |  Yes  |  No  | 
|  Amazon Elastic Container Service  |  `AWS::ECS::Cluster`  |  Yes  |  Yes  | 
|  Amazon Elastic Container Service  |  `AWS::ECS::Service`  |  Yes  |  Yes  | 
|  Amazon Elastic File System  |  `AWS::EFS::AccessPoint`  |  Yes  |  No  | 
|  Amazon Elastic File System  |  `AWS::EFS::FileSystem`  |  Yes  |  No  | 
|  Amazon Elastic File System  |  `AWS::EFS::MountTarget`  |  Yes  |  No  | 
|  Amazon Elastic Kubernetes Service  |  `AWS::EKS::Cluster`  |  Yes  |  Yes  | 
|  Amazon Elastic Kubernetes Service on AWS Fargate  |  |  No  |  Yes  | 
|  Elastic Load Balancing  |  `AWS::ElasticLoadBalancing::LoadBalancer`  |  Yes  |  No  | 
|  Elastic Load Balancing V2  |  `AWS::ElasticLoadBalancingV2::LoadBalancer`  |  Yes  |  No  | 
|  Elastic Load Balancing V2  |  `AWS::ElasticLoadBalancingV2::TargetGroup`  |  Yes  |  No  | 
|  Amazon ElastiCache  |  `AWS::ElastiCache::CacheCluster`  |  Yes  |  Yes  | 
|  AWS Elemental MediaConvert  |  `AWS::MediaConvert::Queue`  |  Yes  |  No  | 
|  AWS Elemental MediaLive  |  |  No  |  Yes  | 
|  AWS Elemental MediaLive  |  `AWS::MediaLive::Channel`  |  Yes  |  No  | 
|  AWS Elemental MediaPackage  |  `AWS::MediaPackage::Channel`  |  Yes  |  No  | 
|  AWS Elemental MediaStore  |  `AWS::MediaStore::Container`  |  Yes  |  Yes  | 
|  AWS Elemental MediaTailor  |  |  No  |  Yes  | 
|  Amazon EMR  |  `AWS::EMR::Cluster`  |  Yes  |  Yes  | 
|  Amazon EventBridge  |  `AWS::Events::Rule`  |  Yes  |  Yes  | 
|  Amazon EventBridge Pipes  |  `AWS::Pipes::Pipe`  |  Yes  |  Yes  | 
|  AWS Fault Injection Service  |  `AWS::FIS::ExperimentTemplate`  |  No  |  Yes  | 
|  Amazon FinSpace  |  `AWS::FinSpace::Environment`  |  No  |  Yes  | 
|  Amazon FSx  |  `AWS::FSx::FileSystem`  |  Yes  |  No  | 
|  Amazon GameLift Servers  |  `AWS::GameLift::Fleet`  |  Yes  |  No  | 
|  AWS Glue  |  `AWS::Glue::Job`  |  No  |  Yes  | 
|  AWS Identity Sync  |  `AWS::IdentitySync::Profile`  |  No  |  Yes  | 
|  Amazon Interactive Video Service  |  `AWS::IVSChat::LoggingConfiguration`  |  Yes  |  Yes  | 
|  AWS IoT  |  `AWS::IoT::TopicRule`  |  Yes  |  Yes  | 
|  AWS IoT 1-Click  |  `AWS::IoT1Click::Device`  |  Yes  |  No  | 
|  AWS IoT Events  |  |  No  |  Yes  | 
|  AWS IoT FleetWise  |  `AWS::IoTFleetWise::Vehicle`  |  No  |  Yes  | 
|  AWS IoT SiteWise  |  |  No  |  Yes  | 
|  AWS Key Management Service  |  `AWS::KMS::Key`  |  Yes  |  No  | 
|  Amazon Managed Service for Apache Flink  |  `AWS::KinesisAnalytics::Application`  |  Yes  |  Yes  | 
|  Amazon Data Firehose  |  `AWS::KinesisFirehose::DeliveryStream`  |  Yes  |  Yes  | 
|  Amazon Kinesis Data Streams  |  `AWS::Kinesis::Stream`  |  Yes  |  No  | 
|  Amazon Kinesis Video Streams  |  `AWS::KinesisVideo::Stream`  |  Yes  |  No  | 
|  AWS Lambda  |  `AWS::Lambda::Function`  |  Yes  |  No  | 
|  Amazon Lex  |  |  No  |  Yes  | 
|  AWS Mainframe Modernization  |  `AWS::M2::Application`  |  No  |  Yes  | 
|  Amazon Managed Streaming for Apache Kafka  |  `AWS::Kafka::Cluster`  |  Yes  |  No  | 
|  Amazon Managed Streaming for Apache Kafka  |  `AWS::KafkaConnect::Connector`  |  No  |  Yes  | 
|  Amazon Managed Streaming for Apache Kafka  |  `AWS::MSK::Cluster`  |  Yes  |  Yes  | 
|  Amazon MemoryDB  |  `AWS::Mmemorydb::Cluster`  |  Yes  |  No  | 
|  Amazon MQ  |  `AWS::AmazonMQ::Broker`  |  Yes  |  Yes  | 
|  AWS Network Firewall  |  `AWS::NetworkFirewall::Firewall`  |  Yes  |  Yes  | 
|  Amazon OpenSearch Service  |  `AWS::OpenSearchService::Domain`  |  Yes  |  No  | 
|  Amazon OpenSearch Service  |  |  No  |  Yes  | 
|  Amazon OpenSearch Service Ingestion  |  `AWS::OSIS::Pipeline`  |  No  |  Yes  | 
|  AWS Organizations  |  `AWS::Organizations::Organization`  |  No  |  Yes  | 
|  AWS Outposts  |  `AWS::Outposts::Outpost`  |  Yes  |  No  | 
|  Amazon Managed Service for Prometheus  |  `AWS::Prometheus::Resource`  |  Yes  |  No  | 
|  Amazon Q Business  |  |  No  |  Yes  | 
|  Amazon QLDB  |  `AWS::QLDB::Ledger`  |  Yes  |  No  | 
|  Amazon Quick  |  `AWS::Quicksight::Dashboard`  |  Yes  |  No  | 
|  Amazon Quick  |  `AWS::Quicksight::DataSet`  |  Yes  |  No  | 
|  Amazon Redshift  |  `AWS::Redshift::Cluster`  |  Yes  |  Yes  | 
|  Amazon Redshift Serverless  |  `AWS::RedshiftServerless::Workgroup`  |  Yes  |  No  | 
|  Amazon Relational Database Service  |  `AWS::RDS::DBCluster`  |  Yes  |  Yes  | 
|  Amazon Relational Database Service  |  `AWS::RDS::DBInstance`  |  Yes  |  Yes  | 
|  Amazon Route 53  |  `AWS::Route53::HealthCheck`  |  Yes  |  Yes  | 
|  Amazon Route 53  |  `AWS::Route53::HostedZone`  |  Yes  |  No  | 
|  Amazon Route 53 Resolver  |  `AWS::Route53Resolver::ResolverEndpoint`  |  Yes  |  No  | 
|  Amazon S3  |  `AWS::S3::Bucket`  |  Yes  |  No  | 
|  Amazon SageMaker AI  |  `AWS::SageMaker::Endpoint`  |  Yes  |  No  | 
|  Amazon SageMaker AI  |  `AWS::SageMaker::Workteam`  |  No  |  Yes  | 
|  AWS Service Catalog  |  `AWS::ServiceCatalog::CloudFormationProduct`  |  Yes  |  No  | 
|  Amazon Simple Email Service  |  `AWS::SES::ConfigurationSet`  |  Yes  |  No  | 
|  Amazon Simple Notification Service  |  `AWS::SNS::Topic`  |  Yes  |  Yes  | 
|  Amazon Simple Notification Service  |  |  No  |  Yes  | 
|  Amazon Simple Queue Service  |  `AWS::SQS::Queue`  |  Yes  |  No  | 
|  AWS Step Functions  |  `AWS::StepFunctions::Activity`  |  Yes  |  No  | 
|  AWS Step Functions  |  `AWS::StepFunctions::StateMachine`  |  Yes  |  Yes  | 
|  AWS Storage Gateway  |  `AWS::StorageGateway::Gateway`  |  Yes  |  No  | 
|  AWS Storage Gateway  |  `AWS::StorageGateway::Share`  |  No  |  Yes  | 
|  AWS Transfer Family  |  `AWS::Transfer::Server`  |  Yes  |  Yes  | 
|  Amazon VPC Lattice  |  `AWS::VpcLattice::Service`  |  No  |  Yes  | 
|  AWS WAFV2  |  `AWS::WAFv2::WebAcl`  |  No  |  Yes  | 
|  Amazon WorkMail  |  `AWS::WorkMail::Organization`  |  Yes  |  No  | 
|  Amazon WorkSpaces  |  `AWS::WorkSpaces::Workspace`  |  Yes  |  Yes  | 

# How to add related information to custom telemetry sent to CloudWatch
<a name="adding-your-own-related-telemetry"></a>

When you publish your own metrics and logs to CloudWatch, the entity information needed for related telemetry is not there by default. When you send metrics to CloudWatch or logs to CloudWatch Logs (with the [PutMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html) or [PutLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html) operations), you can add entity information to those logs or metrics. The entity information is associated with the telemetry, and used in the **Explore related** feature to find related telemetry that is associated with the same entity.

The entity sent with telemetry represents a resource or service that the telemetry is associated with. For example, a metric about a service, or that comes from an AWS resource. To identify the entity associated in your code, you create a set of `KeyAttributes` and optional `Attributes` of the entity.

**Note**  
CloudWatch can only find related resources for entities that have had telemetry sent within the previous three hours. If your resource only emits sparse telemetry (less than once every 3 hours), you may want to send additional *heartbeat* telemetry, to keep the entity active within CloudWatch.

For information on how to add entity information, see [Entity information in EMF format](CloudWatch_Embedded_Metric_Format_Specification.md#entity-information-emf-format).

The following sections describe how to create the `KeyAttributes` and `Attributes` so that CloudWatch can identify the resources and services associated with the telemetry.

## Identifying the entity with the KeyAttributes object
<a name="custom-related-telemetry-keyattributes"></a>

The `KeyAttributes` property of the Entity objects ([ in CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Entity.html) or [in CloudWatch logs](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_Entity.html)) uniquely identifies the entity for CloudWatch. It is a list of key-value pairs. Entities with the same `KeyAttributes` are considered to be the same entity. Telemetry associated with the same entity are considered related, and can be easily found in the **Explore related** pane.

**Note**  
In the CloudWatch API, the property is called `KeyAttributes`. In the CloudWatch Logs API, the property is called `keyAttributes`. Here they are treated as the same property.

There are five possible types of object that an `Entity` can represent.
+ **AWS::Resource** – The entity represents an AWS resource, such as a DynamoDB table or Amazon EC2 instance.
+ **AWS::Service** – The entity represent an AWS service, such as Amazon S3. This might be used, for example, when calling the `ListBuckets` operation, which is not associated with a specific Amazon S3 resource.
+ **Service** – The entity represents a workload running in your account. For example, an application or service that you manage.
+ **Resource** – The entity represents a resource that is not managed by AWS, for example, operating system resources, such as processes or file volumes.
+ **RemoteService** – The entity represents an external service in a remote call. For example, a remote call to a database, external cache, or an external endpoint.

Depending on which of the above types you are trying to represent, you must provide the correct key-value pairs for the `KeyAttributes`. The following describes each type.

------
#### [ AWS::Resource ]

To specify an AWS Resource, you must include the following three key value pairs:
+ `"Type": "AWS::Resource"` – This key-value pair identifies the entity as an AWS resource.
+ `"ResourceType": "<resource-type>"` – The string value of the `ResourceType` is the CloudFormation [resource type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) string. For example, `AWS::DynamoDB::Table`.
+ `"Identifier": "<resource-id>"` – The primary identifier for the resource. For more information, see [primaryIdentifier](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-primaryidentifier) in the *Extension Development for CloudFormation User Guide*.

------
#### [ AWS::Service ]

To specify an AWS Service, you must include the following two key value pairs:
+ `"Type": "AWS::Service"` – This key-value pair identifies the entity as an AWS service.
+ `"Name": "<service-name>"` – The value of the `Name` is the CloudFormation [service name](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) string. For example, `AWS::DynamoDB`.

------
#### [ Service ]

To specify a service that is not operated by AWS, you must include the following three key value pairs:
+ `"Type": "Service"` – This key-value pair identifies the entity as a service.
+ `"Name": "<service-name>"` – This represents the name of the service that is sending the metrics. For example, `my-service-frontend` or `api.myservice.com`.
+ `"Environment": "<environment-name>"` – This attribute specifies where the service is hosted, or the environment to which it belongs. For example `us-west-2`, or `myservice.production`.

------
#### [ Resource ]

To specify a resource that is not provided by AWS, you must include the following three key value pairs:
+ `"Type": "Resource"` – This key-value pair identifies the entity as a resource.
+ `"ResourceType": "<resource-type>"` – A string specifying the type of resource. For example, `K8s::Pod` for a Kubernetes Pod.
+ `"Identifier": "<resource-id>"` – A string identifier for the resource. Can contain multiple names, separated by pipes. For example, a Kubernetes Pod might be represented by it's cluster name, namespace, and pod name, such as `MyCluster|MyNamespace|MyPod`.

------
#### [ RemoteService ]

To specify a remote service, you must include the following two key value pairs:
+ `"Type": "RemoteService"` – This key-value pair identifies the entity as a remote service.
+ `"Name": "<remote-service-name>"` – Specifies how the application refers to the external service in a remote call. For example, `api.test.myservice.com`.

------

## Providing additional details about the entity with the Attributes object
<a name="custom-related-telemetry-attributes"></a>

You can provide additional details about the `Entity` that you provide with your telemetry. This can include details about the platform, resource, application, or telemetry provider. The following tables describes the key words that you can use for each of these types of data.

**Note**  
In the CloudWatch API, the property is called `Attributes`. In the CloudWatch Logs API, the property is called `attributes`. Here they are treated as the same property.

**Platform details**


| Keyword | Usage | Domain of Values | Examples | 
| --- | --- | --- | --- | 
| `PlatformType` | Defines the hosted-in platform. | AWS::EKS, AWS::ECS, AWS::EC2, AWS::Lambda, K8s, Generic | `AWS::EC2` | 
| `EKS.Cluster` | Name of the Amazon EKS cluster. | Alphanumeric string with basic delimiters. | `FlyingSquad` | 
| `K8s.Cluster` | Name of the self-hosted Kubernetes cluster. | Alphanumeric string with basic delimiters. | `minicube` | 
| `K8s.Namespace` | Name of Kubernetes namespace in Amazon EKS or K8s clusters. | Alphanumeric string with basic delimiters. | `default`, `pet-clinic` | 
| `K8s.Workload` | Name of Kubernetes workload in Amazon EKS and K8s clusters. | Alphanumeric string with basic delimiters. | `frontend` | 
| `K8s.Node` | Identity of Kubernetes node in Amazon EKS and K8s clusters. | K8s node name (for example, Amazon EC2 instance DNS name). | `ip-11-22-33-44.ec2.internal` | 
| `K8s.Pod` | Identity of Kubernetes pod in Amazon EKS and K8s clusters. | K8s pod identifier. | `frontend-1234abcd56-ef7890` | 
| `EC2.AutoScalingGroup` | Name of the Amazon EC2 AutoScaling Group. | Alphanumeric string with basic delimiters. | `my-asg-name-1` | 
| `EC2.InstanceId` | Identity of the Amazon EC2 instance. | Amazon EC2 instance identifier. | `i-1234abcd5678ef90` | 
| `ECS.Cluster` | Identity of the Amazon ECS cluster. | Amazon ECS cluster name. | `MyCluster` | 
| `ECS.Service` | Identity of the Amazon ECS service. | Amazon ECS service name. | `MyService` | 
| `ECS.Task` | Identity of the Amazon ECS task. | Amazon ECS task ID. | `task-123abc` | 
| `Lambda.Function` | Identity of the Lambda function. | Lambda function name. | `MyFunction` | 
| `Host` | Name of the host for all platform types. | Sub-domain format. | `ip-111-22-33-44.example.com` | 

**Resource details**


| Keyword | Usage | Domain of Values | Examples | 
| --- | --- | --- | --- | 
| `AWS.Resource.ARN` | ARN for the AWS resource. | Alphanumeric string with basic delimiters. | `arn:aws:dynamodb:us-east-1:123456789012:table/myDynamoDBTable` | 

**Application details**


| Keyword | Usage | Domain of Values | Examples | 
| --- | --- | --- | --- | 
| `AWS.Application` | Name of the application in AppRegistry. | Alphanumeric string with basic delimiters. | `PetClinicApp` | 
| `AWS.Application.ARN` | ARN of the application in AppRegistry. | Alphanumeric string with basic delimiters. | `arn:aws:servicecatalog:us-east-1:1234567890:/applications/...` | 

**Telemetry provider details**


| Keyword | Usage | Domain of Values | Examples | 
| --- | --- | --- | --- | 
| `Telemetry.SDK` | The fingerprint of OTEL SDK version for instrumented services. | Alphanumeric string with basic delimiters. | `opentelemetry,1.32.0-aws-SNAPSHOT,java,Auto` | 
| `Telemetry.Agent` | The fingerprint of the Agent used to collect and send telemetry data. | Alphanumeric string with basic delimiters. | `CWAgent/1.300026.3, ADOTCollector/1.x` | 
| `Telemetry.Source` | Specifies the point of application where the telemetry was collected or what was used for the source of telemetry data. | ServerSpan, ClientSpan, ProducerSpan, ConsumerSpan, LocalRoot Span, JMX, OS. | `ClientSpan, JMX` | 