

# Especificación de metadatos personalizados
<a name="CloudWatch-RUM-custom-metadata"></a>

CloudWatch RUM adjunta datos adicionales a cada evento en forma de metadatos. Los metadatos de eventos constan de atributos en forma de pares clave-valor. Puede usar estos atributos para buscar o filtrar eventos en la consola de CloudWatch RUM. De forma predeterminada, CloudWatch RUM crea algunos metadatos que puede usar. Para obtener más información acerca de los metadatos predeterminados, consulte [Metadatos del evento de RUM](CloudWatch-RUM-datacollected.md#CloudWatch-RUM-datacollected-metadata).

También puede utilizar el cliente web de CloudWatch RUM para agregar metadatos personalizados a los eventos de CloudWatch RUM. Algunos metadatos personalizados pueden ser atributos de sesión y atributos de página.

Para agregar metadatos personalizados, debe utilizar la versión 1.10.0 o posterior del cliente web de CloudWatch RUM.

## Requisitos y sintaxis
<a name="CloudWatch-RUM-custom-metadata-syntax"></a>

Cada evento puede incluir hasta 10 atributos personalizados en los metadatos. Los requisitos de sintaxis para los atributos personalizados son los siguientes:
+ **Claves**
  + Máximo de 128 caracteres
  + Puede contener caracteres alfanuméricos, caracteres de dos puntos (:) y guiones bajos (\$1).
  + No puede empezar por `aws:`.
  + No puede constar exclusivamente de ninguna de las palabras clave reservadas que figuren en la siguiente sección. Puede usar esas palabras clave como parte de un nombre de clave más largo.
+ **Valores**
  + Máximo de 256 caracteres
  + Deben ser cadenas, números o valores booleanos

**Palabras clave reservadas**

No puede utilizar las siguientes palabras clave reservadas como nombres de clave completos. Puede utilizar las siguientes palabras clave como parte de un nombre de clave más largo, por ejemplo `applicationVersion`.
+ `browserLanguage`
+ `browserName`
+ `browserVersion`
+ `countryCode`
+ `deviceType`
+ `domain`
+ `interaction`
+ `osName`
+ `osVersion`
+ `pageId`
+ `pageTags`
+ `pageTitle`
+ `pageUrl`
+ `parentPageId`
+ `platformType`
+ `referrerUrl`
+ `subdivisionCode`
+ `title`
+ `url`
+ `version`

**nota**  
CloudWatch RUM elimina los atributos personalizados de los eventos de RUM si un atributo incluye una clave o un valor inválido, o si ya se ha alcanzado el límite de 10 atributos personalizados por evento. 

## Adición de atributos de sesión
<a name="CloudWatch-RUM-session-attributes"></a>

Si configura atributos de sesión personalizados, se agregan a todos los eventos de una sesión. Los atributos de sesión se configuran durante la inicialización del cliente web de CloudWatch RUM o en tiempo de ejecución mediante el comando `addSessionAttributes`.

Por ejemplo, puede agregar la versión de su aplicación como un atributo de sesión. A continuación, en la consola de CloudWatch RUM, puede filtrar los errores por versión para ver si hay un aumento en la tasa de errores asociado a una versión concreta de la aplicación. 

**Agregar un atributo de sesión en la inicialización, ejemplo de NPM**

La sección de código en negrita agrega el atributo de sesión.

```
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
}
```

**Agregar un atributo de sesión en tiempo de ejecución, ejemplo de NPM**

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

**Agregar un atributo de sesión en la inicialización, ejemplo de script incrustado**

La sección de código en negrita agrega el atributo de sesión.

```
<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>
```

**Agregar un atributo de sesión en tiempo de ejecución, ejemplo de script incrustado**

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

## Adición de atributos de página
<a name="CloudWatch-RUM-page-attributes"></a>

Si configura atributos de página personalizados, se agregan a todos los eventos de la página actual. Los atributos de página se configuran durante la inicialización del cliente web de CloudWatch RUM o en tiempo de ejecución mediante el comando `recordPageView`.

Por ejemplo, puede agregar una plantilla de página como un atributo de página. A continuación, en la consola de CloudWatch RUM, puede filtrar los errores por plantillas de página para ver si hay un aumento en la tasa de errores asociado a una plantilla de página concreta de la aplicación. 

**Agregar un atributo de página en la inicialización, ejemplo de NPM**

La sección de código en negrita agrega el atributo de página.

```
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);
```

**Agregar un atributo de página en tiempo de ejecución, ejemplo de NPM**

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

**Agregar un atributo de página en la inicialización, ejemplo de script incrustado**

La sección de código en negrita agrega el atributo de página.

```
<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>
```

**Agregar un atributo de página en tiempo de ejecución, ejemplo de script incrustado**

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

## Filtrar por atributos de metadatos en la consola
<a name="CloudWatch-RUM-custom-attiributes-console"></a>

Para filtrar las visualizaciones en la consola de CloudWatch RUM con cualquier atributo de metadatos integrado o personalizado, utilice la barra de búsqueda. En la barra de búsqueda, puede especificar hasta 20 términos de filtro en forma de **clave=valor** para aplicarlos a las visualizaciones. Por ejemplo, para filtrar datos únicamente para el navegador Chrome, puede añadir el término de filtro **browserName=Chrome**.

De forma predeterminada, la consola RUM de CloudWatch recupera los 100 atributos, claves y valores más comunes para mostrarlos en el menú desplegable de la barra de búsqueda. Para agregar más atributos de metadatos como términos de filtro, ingresa la clave y el valor del atributo completos en la barra de búsqueda. 

Un filtro puede incluir hasta 20 términos de filtro y puede guardar hasta 20 filtros por monitor de aplicación. Al guardar un filtro, se guarda en el menú desplegable **Saved filters** (Filtros guardados). También puede eliminar un filtro guardado. 