指定自定义元数据 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

指定自定义元数据

CloudWatch RUM 将额外的数据作为元数据附加到每个事件。事件元数据由键值对形式的属性组成。您可以使用这些属性在 CloudWatch RUM 控制台中搜索或筛选事件。默认情况下,CloudWatch RUM 会为您创建一些元数据。有关默认元数据的更多信息,请参阅 RUM 事件元数据

您还可以使用 CloudWatch RUM Web 客户端将自定义元数据添加到 CloudWatch RUM 事件中。自定义元数据可以包括会话属性和页面属性。

要添加自定义元数据,必须使用 1.10.0 或更高版本的 CloudWatch RUM Web 客户端。

要求和语法

每个事件可以在元数据中包含多达 10 个自定义属性。自定义属性的语法要求如下:

    • 最多 128 个字符

    • 可以包含字母数字字符、冒号(:)和下划线(_)

    • 不能以 aws: 开头。

    • 不能完全由以下列出的任何保留关键字组成。可以将这些关键字用作较长键名的一部分。

    • 最多 256 个字符

    • 必须是字符串、数字或布尔值

保留关键字

您不能将以下保留关键字用作完整的键名。您可以使用以下关键字作为较长键名的一部分,例如 applicationVersion

  • browserLanguage

  • browserName

  • browserVersion

  • countryCode

  • deviceType

  • domain

  • interaction

  • osName

  • osVersion

  • pageId

  • pageTags

  • pageTitle

  • pageUrl

  • parentPageId

  • platformType

  • referrerUrl

  • subdivisionCode

  • title

  • url

  • version

注意

如果属性包含无效的键或值,或者已经达到每个事件 10 个自定义属性的限制,则 CloudWatch RUM 会从 RUM 事件中删除自定义属性。

添加会话属性

如果您配置自定义会话属性,这些属性会添加到会话的所有事件中。您可以在 CloudWatch RUM Web 客户端初始化期间或运行时使用 addSessionAttributes 命令配置会话属性。

例如,您可以将应用程序版本添加为会话属性。然后,在 CloudWatch RUM 控制台中,您可以按版本筛选错误,以确定错误率增加是否与应用程序的特定版本有关。

在初始化期间添加会话属性,NPM 示例

粗体代码部分添加了会话属性。

import { AwsRum, AwsRumConfig } from 'aws-rum-web'; try { const config: AwsRumConfig = { allowCookies: true, endpoint: "https://dataplane.rum.us-west-2.amazonaws.com", guestRoleArn: "arn:aws:iam::000000000000:role/RUM-Monitor-us-west-2-000000000000-00xx-Unauth", identityPoolId: "us-west-2:00000000-0000-0000-0000-000000000000", sessionSampleRate: 1, telemetries: ['errors', 'performance'], sessionAttributes: { applicationVersion: "1.3.8" } }; const APPLICATION_ID: string = '00000000-0000-0000-0000-000000000000'; const APPLICATION_VERSION: string = '1.0.0'; const APPLICATION_REGION: string = 'us-west-2'; const awsRum: AwsRum = new AwsRum( APPLICATION_ID, APPLICATION_VERSION, APPLICATION_REGION, config ); } catch (error) { // Ignore errors thrown during CloudWatch RUM web client initialization }

在运行时添加会话属性,NPM 示例

awsRum.addSessionAttributes({ applicationVersion: "1.3.8" })

在初始化期间添加会话属性,嵌入式脚本示例

粗体代码部分添加了会话属性。

<script> (function(n,i,v,r,s,c,u,x,z){...})( 'cwr', '00000000-0000-0000-0000-000000000000', '1.0.0', 'us-west-2', 'https://client.rum.us-east-1.amazonaws.com/1.0.2/cwr.js', { sessionSampleRate:1, guestRoleArn:'arn:aws:iam::000000000000:role/RUM-Monitor-us-west-2-000000000000-00xx-Unauth', identityPoolId:'us-west-2:00000000-0000-0000-0000-000000000000', endpoint:'https://dataplane.rum.us-west-2.amazonaws.com', telemetries:['errors','http','performance'], allowCookies:true, sessionAttributes: { applicationVersion: "1.3.8" } } ); </script>

在运行时添加会话属性,嵌入式脚本示例

<script> function addSessionAttribute() { cwr('addSessionAttributes', { applicationVersion: "1.3.8" }) } </script>

添加页面属性

如果您配置自定义页面属性,这些属性会添加到当前页面上的所有事件中。您可以在 CloudWatch RUM Web 客户端初始化期间或运行时使用 recordPageView 命令配置页面属性。

例如,您可以将页面模板添加为页面属性。然后,在 CloudWatch RUM 控制台中,您可以按页面模板筛选错误,以确定错误率增加是否与应用程序的特定页面模板有关。

在初始化期间添加页面属性,NPM 示例

粗体代码部分添加了页面属性。

const awsRum: AwsRum = new AwsRum( APPLICATION_ID, APPLICATION_VERSION, APPLICATION_REGION, { disableAutoPageView: true // optional } ); awsRum.recordPageView({ pageId:'/home', pageAttributes: { template: 'artStudio' } }); const credentialProvider = new CustomCredentialProvider(); if(awsCreds) awsRum.setAwsCredentials(credentialProvider);

在运行时添加页面属性,NPM 示例

awsRum.recordPageView({ pageId: '/home', pageAttributes: { template: 'artStudio' } });

在初始化期间添加页面属性,嵌入式脚本示例

粗体代码部分添加了页面属性。

<script> (function(n,i,v,r,s,c,u,x,z){...})( 'cwr', '00000000-0000-0000-0000-000000000000', '1.0.0', 'us-west-2', 'https://client.rum.us-east-1.amazonaws.com/1.0.2/cwr.js', { disableAutoPageView: true //optional } ); cwr('recordPageView', { pageId: '/home', pageAttributes: { template: 'artStudio' } }); const awsCreds = localStorage.getItem('customAwsCreds'); if(awsCreds) cwr('setAwsCredentials', awsCreds) </script>

在运行时添加页面属性,嵌入式脚本示例

<script> function recordPageView() { cwr('recordPageView', { pageId: '/home', pageAttributes: { template: 'artStudio' } }); } </script>

在控制台中按元数据属性筛选

要使用任何内置或自定义元数据属性在 CloudWatch RUM 控制台中筛选可视化内容,请使用搜索栏。在搜索栏中,您可以通过 key=value 的形式指定多达 20 个筛选词用于可视化内容。例如,如果要仅筛选 Chrome 浏览器的数据,可以添加筛选词 browserName=Chrome

默认情况下,CloudWatch RUM 控制台会检索 100 个最常见的属性键和值,并将它们显示在搜索栏的下拉列表中。要添加更多元数据属性作为筛选词,请在搜索栏中输入完整的属性键和值。

一个筛选条件可以包含多达 20 个筛选词,每个应用程序监视器最多可以保存 20 个筛选条件。当您保存筛选条件时,筛选条件会保存在 Saved filters(保存的筛选条件)下拉列表中。您还可以删除保存的筛选条件。