Te ofrecemos esta traducción automática para facilitar la lectura.
En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.
Con la característica de exportación de streaming disponible a través de Data Plus, puede enviar los datos a AWS Kinesis Firehose, Azure Event Hub o GCP Pub/Sub mediante la creación de reglas personalizadas usando NRQL para especificar qué datos deben exportarse. Esta guía explica cómo crear y actualizar reglas de streaming usando NerdGraph y ver las reglas existentes. Puede usar el explorador de NerdGraph para hacer estas llamadas. Además, tiene la opción de comprimir los datos antes de exportarlos con la característica de compresión de exportación.
Estos son algunos ejemplos de cómo puede usar la característica de exportación de streaming:
Para llenar un lago de datos
Mejorar la formación en IA/ML
Garantice la retención a largo plazo por motivos de cumplimiento, legales o de seguridad
Puede habilitar o deshabilitar las reglas de exportación de streaming en cualquier momento. Sin embargo, tenga en cuenta que la exportación de streaming solo procesa los datos ingeridos actualmente. Si deshabilita y luego vuelve a habilitar la característica, no se exportarán los datos ingeridos mientras estuvo desactivada. Para exportar datos pasados, debe usar la característica de exportación de datos históricos.
Requisitos y límites
Límites de datos transmitidos: la cantidad de datos que puede transmitir por mes está limitada por el total de datos ingeridos por mes. Si su cantidad de transmisión de datos excede la cantidad de datos ingeridos, podemos suspender su acceso y uso de la exportación de transmisión.
Debe tener configurado AWS Kinesis Firehose, Azure Event Hub o GCP Pub/Sub para recibir datos de New Relic. Si aún no lo ha hecho, puede seguir nuestros pasos a continuación para AWS, Azure o GCP Pub/Sub.
Requisitos NRQL:
Debe ser consulta plana, sin agregación. Por ejemplo, se admiten los formularios SELECT * o SELECT column1, column2 .
Aplicable a cualquier contenido de la cláusula WHERE , excepto a las subconsultas.
La consulta no puede tener una cláusula FACET , COMPARE WITH o LOOKUP.
Asigne un nombre al stream. Usará este nombre más adelante al registrar la regla.
Utilice Direct PUT or other sources y especifique un destino compatible con el formato de evento JSON de New Relic (por ejemplo, S3, Redshift u OpenSearch).
Crear política de acceso de escritura de IAM Firehose
Vaya a la consola de IAM e inicie sesión con el usuario.
En la navegación izquierda, haga clic en Policies y, luego, haga clic en Create policy.
Seleccione el servicio Firehose y luego seleccione PutRecord y PutRecordBatch.
Para Resources, seleccione la transmisión de entrega, agregue ARN y seleccione la región de su transmisión.
Ingrese su número de cuenta de AWS y luego ingrese el nombre del flujo de entrega que desee en el cuadro de nombre.
Cree la política.
Cree un rol de IAM para otorgar acceso de escritura a New Relic
Para configurar la función de IAM:
Navegue al IAM y haga clic en Roles.
Cree un rol para una cuenta de AWS y luego seleccione for another AWS account.
Ingrese el ID de la cuenta de exportación de New Relic: 888632727556.
Seleccione Require external ID e ingrese el ID de la cuenta New Relic desde la que desea exportar.
Haga clic en Permissions y luego seleccione la política que creó anteriormente.
Agregue un nombre de rol, que se usará durante el registro de exportación, y proporcione una descripción.
Crea el rol.
Cuando haya terminado con estos pasos, puede configurar sus reglas de exportación mediante NerdGraph.
Esta API le permite crear una regla de exportación de transmisión para enviar datos a AWS Kinesis Firehose.
Respuesta: recibe una respuesta con el ID de la regla y el estado. El estado será CREATION_IN_PROGRESS inicialmente, y la regla puede tardar hasta seis minutos en completar la creación. Puntos a tener en cuenta: antes de que la regla termine de registrarse, no puede iniciar otra acción de mutación (como Enable, Disable o Update) porque la regla está bloqueada para el proceso de creación. Si intenta otra acción de mutación antes de que la regla complete el proceso de registro, obtendrá un mensaje como: “La regla de exportación se está actualizando actualmente por otra solicitud, espere e intente nuevamente más tarde”.
Puedes utilizar Delete en cualquier momento.
La creación puede finalizar y cambiar el estado en cualquier momento dentro de los aproximadamente seis minutos necesarios para la creación de la regla. El estado cambiará a ENABLED, DISABLED o CREATION_FAILED.
Vea estos detalles sobre los valores:
ENABLED significa que la regla se creó correctamente y los datos comenzaron a transmitirse.
CREATION_FAILED significa que la regla falló en la creación. Esto puede suceder por varios motivos, pero a menudo se debe a un error en la política de AWS o en la validación de SAS de Azure.
DISABLED significa que la regla se creó pero aún no está habilitada debido a motivos como que se alcanzó el límite de flujo de filtro o que falló la creación de la regla de flujo de filtro. Si el estado sigue siendo CREATION_IN_PROGRESS después de seis minutos, eso significa que la creación de la regla falló debido a un error del sistema en nuestro servicio. Puede eliminar la regla e intentar crear una nueva nuevamente.
Esta API le permite recuperar una lista completa de todas las reglas de stream asociadas con su ID de cuenta.
Solicitud de muestra
{
actor{
account(id:YOUR_NR_ACCOUNT_ID){
streamingExport{
streamingRules{
aws{
awsAccountId
region
deliveryStreamName
role
}
createdAt
description
id
message
name
nrql
status
updatedAt
payloadCompression
}
}
}
}
}
Esta API le permite consultar información sobre una regla de flujo específica proporcionando el ID de cuenta y el ID de regla.
Solicitud de muestra
{
actor{
account(id:YOUR_NR_ACCOUNT_ID){
streamingExport{
streamingRule(id:"RULE_ID"){
aws{
awsAccountId
deliveryStreamName
region
role
}
createdAt
description
id
message
name
nrql
status
updatedAt
payloadCompression
}
}
}
}
}
Esta API le permite modificar una regla de exportación de transmisión existente.
parámetro de entrada
Parámetro
Tipo de datos
¿Es obligatorio?
Descripción
id
IDENTIFICACIÓN
Sí
El ID de la regla de transmisión a actualizar.
ruleParameters.description
Cadena
No
Una breve descripción de la regla. Utilice esto para proporcionar cualquier información o contexto adicional sobre la regla de exportación.
ruleParameters.name
Cadena
Sí
El nombre de la regla de exportación.
ruleParameters.nrql
Cadena
Sí
Un NRQL para seleccionar los telemetry data para exportar.
Respuesta: recibe una respuesta con el ID de la regla y el estado. Puntos a tener en cuenta: al actualizar, recibirá un mensaje en el campo de mensaje: “la regla de exportación se está actualizando y el proceso puede tardar unos minutos en completarse. Vuelva a comprobarlo más tarde.” Puede tardar hasta seis minutos en actualizarse por completo.
Puede comprobar si la regla está actualizada llamando a streamingRule para recuperar la regla. Durante el período en que la regla se está actualizando, la regla está bloqueada y ninguna otra acción de mutación puede actuar sobre la regla. Si intenta realizar otra acción de mutación en la misma regla, recibirá un mensaje que dice: “la regla de exportación se está actualizando actualmente por otro request, espere y vuelva a intentarlo más tarde.” Un usuario puede actualizar una regla de cualquier estado, excepto una regla eliminada.
Esta API le permite habilitar una regla de streaming existente, lo que facilita la exportación continua de datos para el procesamiento en tiempo real y la integración con otros servicios.
parámetro de entrada
Parámetro
Tipo de datos
¿Es obligatorio?
Descripción
id
IDENTIFICACIÓN
Sí
El ID de la regla de streaming que se habilitará.
Solicitud de muestra
mutation{
streamingExportEnableRule(id:RULE_ID){
id
status
message
}
}
Respuesta: si intenta habilitar una regla que está en otro estado, devuelve el mensaje de error como: “La regla de exportación no se puede habilitar ni deshabilitar debido a que el estado no está permitido”. No puede habilitar la regla si la regla está bloqueada debido a que se está realizando otra mutación.
Importante
Solo puede habilitar la regla cuando tiene un estado de DISABLED.
Esta API le permite deshabilitar una regla de streaming existente, lo que detiene la exportación continua de datos.
parámetro de entrada
Parámetro
Tipo de datos
¿Es obligatorio?
Descripción
id
IDENTIFICACIÓN
Sí
El ID de la regla de streaming que se va a deshabilitar.
Solicitud de muestra
mutation{
streamingExportDisableRule(id:RULE_ID){
id
status
message
}
}
Respuesta: si intenta deshabilitar una regla que está en otro estado, devuelve un mensaje de error como “The export rule can't be enabled or disabled due to status not being allowed”. No puede deshabilitar la regla si está bloqueada debido a que se está realizando otra mutación.
Importante
Solo puede deshabilitar la regla cuando tiene un estado de ENABLED.
Esta API le permite eliminar una regla de transmisión y detener toda la exportación de datos relacionada con esa regla.
parámetro de entrada
Parámetro
Tipo de datos
¿Es obligatorio?
Descripción
id
IDENTIFICACIÓN
Sí
El ID de la regla de transmisión a eliminar.
Solicitud de muestra
mutation{
streamingExportDeleteRule(id:RULE_ID){
id
}
}
Importante
La eliminación se puede realizar en una regla de cualquier estado a menos que ya esté eliminada. Una vez que se elimina una regla, no se puede volver a reactivar. La regla aún se puede ver dentro de las primeras 24 horas posteriores a la eliminación llamando a la API steamingRule con el ID de la regla. Después de 24 horas, la regla ya no se podrá buscar a través de NerdGraph.
Configurar un centro de eventos de Azure
Para configurar la exportación de streaming de datos a Azure, primero debe configurar un Event Hub. Siga estos pasos:
Alternativamente, puede seguir la guía de Azure aquí.
Crear un namespace de Event Hubs
Desde la cuenta de Microsoft Azure, navegue a Event Hubs.
Siga los pasos para crear un namespace de eventos Hubs. Recomendamos habilitar la inflación automática para garantizar que reciba todos sus datos.
Asegúrese de que el acceso público esté habilitado, ya que utilizaremos una política de acceso compartido para autenticarnos de forma segura con el Event Hub.
Una vez que namespace de tu evento Hubs esté implementado, haz clic en Go to resource.
Crear un Event Hub
En la columna de la izquierda, haga clic en Event Hubs.
Para crear un Event Hub, haga clic en +Event Hub.
Ingrese el nombre del Event Hub deseado. Guarde esto, ya que lo necesitará más adelante para crear la regla de exportación de transmisión.
Para Retention, seleccione DeleteCleanup policy y el Retention time (hrs) deseado.
Importante
Actualmente, la exportación de transmisión no es compatible con Event Hubs con una política de retención de Compact.
Una vez creado el Event Hub, haga clic en Event Hub.
Crear y adjuntar una política de acceso compartido
En la columna de la izquierda, vaya a Shared access policies.
Haga clic en +Add cerca de la parte superior de la página.
Elija un nombre para su política de acceso compartido.
Marque Send y haga clic en Create.
Haga clic en la política creada y copie el Connection string–primary key. Guárdelo, ya que lo necesitará más adelante para autenticarse y enviar datos a su Event Hub.
Cuando haya terminado con estos pasos, puede configurar sus reglas de exportación mediante NerdGraph.
Esta API le permite crear una regla de exportación de transmisión para enviar datos a un centro de eventos de Azure.
Respuesta: recibe una respuesta con el ID de la regla y el estado. El estado será CREATION_IN_PROGRESS inicialmente, y puede tomar hasta seis minutos para que la regla complete su creación.
Esta API le permite recuperar una lista completa de todas las reglas de stream asociadas con su ID de cuenta.
Solicitud de muestra
{
actor{
account(id:YOUR_NR_ACCOUNT_ID){
streamingExport{
streamingRules{
azure{
eventHubConnectionString
eventHubName
}
createdAt
description
id
message
name
nrql
status
updatedAt
payloadCompression
}
}
}
}
}
Esta API le permite consultar información sobre una regla de flujo específica proporcionando el ID de cuenta y el ID de regla.
Solicitud de muestra
{
actor{
account(id:YOUR_NR_ACCOUNT_ID){
streamingExport{
streamingRule(id:"RULE_ID"){
azure{
eventHubConnectionString
eventHubName
}
createdAt
description
id
message
name
nrql
status
updatedAt
payloadCompression
}
}
}
}
}
Esta API le permite modificar una regla de exportación de transmisión existente.
parámetro de entrada
Parámetro
Tipo de datos
¿Es obligatorio?
Descripción
id
IDENTIFICACIÓN
Sí
El ID de la regla de transmisión a actualizar.
ruleParameters.description
Cadena
No
Una breve descripción de la regla. Utilice esto para proporcionar cualquier información o contexto adicional sobre la regla de exportación.
ruleParameters.name
Cadena
Sí
El nombre de la regla de exportación.
ruleParameters.nrql
Cadena
Sí
Un NRQL para seleccionar los telemetry data para exportar.
Respuesta: recibe una respuesta con el ID de la regla y el estado.
Para habilitar una regla de streaming existente, lo que facilita la exportación continua de datos para el procesamiento en tiempo real y la integración con otros servicios, consulte aquí.
Para deshabilitar una regla de streaming existente, lo que detiene la exportación continua de datos, consulte aquí.
Para eliminar una regla de streaming y detener toda la exportación de datos relacionada con esa regla, consulte aquí.
Configurar un Pub/Sub de GCP
Para configurar la exportación de streaming de datos a GCP, primero debe configurar un Pub/Sub. Siga estos pasos:
Crear un tema de Pub/Sub
Desde la consola de GCP, navegue a la página de Pub/Sub.
Haga clic en Create topic.
Ingrese un ID de tema y haga clic en Create.
Configure los permisos en Pub/Sub
En la columna derecha del tema creado, haga clic en More actions.
Seleccione View permissions.
Haga clic en Add Principal y, en el cuadro de nuevos principales, ingrese el correo electrónico de la cuenta de servicio que le proporcionamos:
Región de EE. UU. (predeterminado): us-prod-uds-streaming-export@h0c17c65df9291b526b433650e6a0a.iam.gserviceaccount.com
Región de la UE: eu-prod-uds-streaming-export@h0c17c65df9291b526b433650e6a0a.iam.gserviceaccount.com
Región de JP: uds-jp-production@unifieddatastreams.iam.gserviceaccount.com
En la sección Assign roles, busque Pub/Sub Publisher y haga clic en Save.
Cuando haya terminado con estos pasos, puede configurar sus reglas de exportación mediante NerdGraph.
Esta API le permite crear una regla de exportación de streaming para enviar datos a GCP Pub/Sub.
DISABLED: por defecto, las cargas no se comprimirán antes de exportarse.
GZIP: seleccione esto para comprimir las cargas antes de exportarlas.
gcpParameters.gcpProjectId
Cadena
Sí
Este parámetro representa el identificador único para su proyecto de GCP. Por ejemplo:
google-project-id
gcpParameters.pubsubTopicId
Cadena
Sí
Este parámetro especifica el tema en GCP Pub/Sub, utilizado para enviar y recibir mensajes dentro de las aplicaciones en la cloud. Por ejemplo:
pub-sub-topic-id.
Solicitud de muestra
mutation{
streamingExportCreateRule(
accountId:YOUR_NR_ACCOUNT_ID
ruleParameters:{
description:"ADD_RULE_DESCRIPTION"
name:"PROVIDE_RULE_NAME"
nrql:"SELECT * FROM NodeStatus"
payloadCompression:DISABLED
}
gcpParameters:{
gcpProjectId:"project-id"
pubsubTopicId:"pub-sub-topic-id"
}
){
id
status
}
}
Respuesta: recibe una respuesta con el ID de la regla y el estado. El estado será CREATION_IN_PROGRESS inicialmente, y puede tomar hasta seis minutos para que la regla complete su creación.
Esta API le permite recuperar una lista completa de todas las reglas de stream asociadas con su ID de cuenta.
Solicitud de muestra
{
actor{
account(id:YOUR_NR_ACCOUNT_ID){
streamingExport{
streamingRules{
gcp{
gcpProjectId
pubsubTopicId
}
createdAt
description
id
message
name
nrql
status
updatedAt
payloadCompression
}
}
}
}
}
Esta API le permite consultar información sobre una regla de flujo específica proporcionando el ID de cuenta y el ID de regla.
Solicitud de muestra
{
actor{
account(id:YOUR_NR_ACCOUNT_ID){
streamingExport{
streamingRule(id:"RULE_ID"){
gcp{
gcpProjectId
pubsubTopicId
}
createdAt
description
id
message
name
nrql
status
updatedAt
payloadCompression
}
}
}
}
}
Esta API le permite modificar una regla de exportación de transmisión existente.
parámetro de entrada
Parámetro
Tipo de datos
¿Es obligatorio?
Descripción
id
IDENTIFICACIÓN
Sí
El ID de la regla de transmisión a actualizar.
ruleParameters.description
Cadena
No
Una breve descripción de la regla. Utilice esto para proporcionar cualquier información o contexto adicional sobre la regla de exportación.
ruleParameters.name
Cadena
Sí
El nombre de la regla de exportación.
ruleParameters.nrql
Cadena
Sí
Un NRQL para seleccionar los telemetry data para exportar.
DISABLED: por defecto, las cargas no se comprimirán antes de exportarse.
GZIP: seleccione esto para comprimir las cargas antes de exportarlas.
gcpParameters.gcpProjectId
Cadena
Sí
Este parámetro representa el identificador único para el proyecto de Google Cloud Platform (GCP). Por ejemplo:
google-project-id
gcpParameters.pubsubTopicId
Cadena
Sí
Este parámetro especifica el tema en Google Cloud Pub/Sub, utilizado para enviar y recibir mensajes dentro de las aplicaciones cloud. Por ejemplo:
pub-sub-topic-id.
Solicitud de muestra
mutation{
streamingExportUpdateRule(
id:RULE_ID
ruleParameters:{
description:"ADD_RULE_DESCRIPTION"
name:"PROVIDE_RULE_NAME"
nrql:"YOUR_NRQL_QUERY"
payloadCompression:DISABLED
}
gcpParameters:{
gcpProjectId:"project-id"
pubsubTopicId:"pub-sub-topic-id"
}
){
id
status
}
}
Respuesta: recibe una respuesta con el ID de la regla y el estado.
Para habilitar una regla de streaming existente, lo que facilita la exportación continua de datos para el procesamiento en tiempo real y la integración con otros servicios, consulte aquí.
Para deshabilitar una regla de streaming existente, lo que detiene la exportación continua de datos, consulte aquí.
Para eliminar una regla de streaming y detener toda la exportación de datos relacionada con esa regla, consulte aquí.
Comprender la compresión de exportación
Puede elegir comprimir los datos antes de exportarlos. Esta característica está desactivada por defecto. La compresión puede ayudar a evitar exceder el límite de datos y reducir los costos de datos salientes.
Puede habilitar la compresión utilizando el campo payloadCompression debajo de ruleParameters. Este campo puede tener cualquiera de los siguientes valores:
DISABLED: la carga no se comprimirá antes de exportarse. Si no se especifica, payloadCompression adoptará de forma predeterminada este valor.
GZIP: comprime la carga con el formato GZIP antes de exportar.
GZIP es el único formato de compresión disponible actualmente, aunque es posible que optemos por ofrecer más formatos en el futuro.
Cuando la compresión está habilitada en una regla de exportación de AWS existente, el siguiente mensaje de Kinesis Firehose puede contener datos comprimidos y sin comprimir. Esto se debe al almacenamiento en búfer dentro de Kinesis Firehose. Para evitar esto, puede deshabilitar temporalmente la regla de exportación antes de habilitar la compresión o crear una nueva secuencia de Kinesis Firehose para que fluyan solo los datos comprimidos.
Si encuentra este problema y está exportando a S3 u otro sistema de almacenamiento de archivos, puede ver la parte comprimida de los datos siguiendo estos pasos:
Descargue manualmente el objeto.
Separe el objeto en dos archivos separados copiando los datos comprimidos en un archivo nuevo.
Descomprima el nuevo archivo de datos solo comprimido.
Una vez que tenga los datos comprimidos, puede volver a cargarlos en S3 (o cualquier otro servicio que esté utilizando) y eliminar el archivo antiguo.
Tenga en cuenta que en S3 u otro sistema de almacenamiento de archivos, los objetos pueden constar de varias cargas codificadas en GZIP que se añaden consecutivamente. Por lo tanto, su biblioteca de descompresión debería tener la capacidad de manejar dicha carga GZIP concatenada.
Descompresión automática en AWS
Una vez que sus datos hayan llegado a AWS, es posible que desee opciones para descomprimirlos automáticamente. Si está transmitiendo esos datos a un depósito S3, hay dos formas de habilitar la descompresión automática:
Los puntos de acceso funcionan como métodos separados mediante los cuales se puede acceder y descargar objetos en depósitos de S3. AWS proporciona una característica llamada Puntos de acceso de objetos Lambda, que realizan una función Lambda en cada objeto S3 al que se accede a través del punto de acceso. Siga estos pasos para habilitar dicho punto de acceso:
Navegue a esta página y haga clic en el enlace al repositorio sin servidor.
El Supporting Access Point de este punto de acceso Lambda deberá configurarse en el punto de acceso que configuró en el depósito S3.
Bajo Transformation Configuration:
Seleccione GetObject.
Especifique la función Lambda DecompressGZFunction, u otra función necesaria si utiliza un formato de compresión diferente.
AWS descomprimirá automáticamente los objetos descargados de S3, si esos objetos tienen los metadatos correctos configurados. Hemos escrito una función que aplica automáticamente estos metadatos a cada nuevo objeto descargado a un objeto S3 establecido. Aquí se explica cómo configurarlo:
Navegue aquí, clone el repositorio localmente y siga los pasos proporcionados en el archivo README para generar un archivo ZIP que contenga la función Lambda.
Haga clic en Change default execution role > Use an existing role. Ingrese aquí el rol que creó en el paso 2.
Desplácese hacia abajo y haga clic en Create function.
Una vez creada la función, haga clic en Upload from y seleccione .zip or .jar file en el menú desplegable.
Haga clic en Upload en el cuadro que aparece y seleccione el archivo ZIP creado en el paso 1.
Una vez que haya finalizado la carga, haga clic en Save para salir del cuadro emergente.
Edite Runtime settings agregando el controlador. En nuestra función proporcionada, el controlador es metadatasetter.App::handleRequest.
Todo lo que queda por hacer ahora es habilitar esta función Lambda para que se active al crear objetos S3. Haga clic en Add trigger para comenzar a configurarlo.
En el menú desplegable, seleccione S3 como fuente.
Ingrese el nombre del depósito de S3 al que desea aplicar los metadatos en el campo Bucket .
Elimine el All object create events predeterminado de los tipos de eventos. En el menú desplegable de tipos de eventos, seleccione PUT.
Marque la casilla Recursive invocation y luego haga clic en Add en la parte inferior derecha.
La función Lambda ahora comenzará a agregar automáticamente los metadatos de compresión a todos los objetos S3 recién agregados.
Descompresión automática en Azure
Si exporta datos a Azure, es posible ver versiones descomprimidas de los objetos almacenados en su centro de eventos mediante un trabajo de Stream Analytics. Para hacerlo, siga estos pasos:
En el paso 13, puede elegir usar el mismo hub de eventos como salida sin dañar nada, pero esto no se recomienda si tiene la intención de continuar con el paso 17 e iniciar el trabajo, ya que este enfoque no se ha probado.
En el panel izquierdo de su trabajo de análisis de streaming, haga clic en Inputs, luego haga clic en la entrada que configuró.
Desplácese hacia abajo hasta la parte inferior del panel que aparece a la derecha y configure la entrada con estas configuraciones:
formato de serialización de eventos: JSON
Codificación: UTF-8
tipo de compresión de eventos: GZip
Haga clic en Save en la parte inferior del panel.
Haga clic en Query en el costado de la pantalla. Usando la pestaña Input preview , ahora debería poder consultar el centro de eventos desde esta pantalla.
Descompresión automática en GCP
En GCP Cloud Storage, los objetos se descomprimirán automáticamente al descargarse si los metadatos están configurados en Content-Encoding: gzip. Para obtener más detalles, consulte la documentación de GCP.