• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Crea una propuesta

exportación de streaming de datos: envíe sus datos a un AWS Kinesis Firehose o Azure evento Hub

Con nuestra característica de exportación de streaming, disponible con Data Plus, puede enviar sus datos a AWS Kinesis Firehose o Azure Event Hub a medida que New Relic los ingiere. Explicaremos cómo crear y actualizar una regla de transmisión usando NerdGraph y cómo ver las reglas existentes. Puede utilizar el explorador NerdGraph para realizar estas llamadas.

¿Qué es la exportación por streaming?

A medida que su organización New Relic ingiere los datos, nuestra característica de exportación de streaming envía esos datos a un AWS Kinesis Firehose o Azure Event Hub. Puede configurar reglas personalizadas, que se definen mediante NRQL, para controlar qué tipos de datos de New Relic exportará. También puede optar por comprimir estos datos antes de exportarlos, utilizando nuestra nueva característica Exportar compresión .

Algunos ejemplos de cosas para las que puede utilizar la exportación de streaming:

  • Para llenar un lago de datos
  • Mejorar la formación en IA/ML
  • Retención a largo plazo por motivos de cumplimiento, legales o de seguridad

Puede deshabilitar o habilitar las reglas de exportación de transmisión cuando lo desee. Pero tenga en cuenta que la exportación de streaming solo envía datos ingeridos actualmente, lo que significa que si la desactiva y la vuelve a habilitar, los datos ingeridos cuando estaba desactivada no se enviarán con esta característica. Para exportar datos pasados, puede utilizar la 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.

Requisitos relacionados con los permisos:

Debe tener un AWS Kinesis Firehose o Azure evento Hub configurado para recibir datos de New Relic. Si aún no lo ha hecho, puede seguir nuestros pasos a continuación para AWS o Azure.

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.
  • No se admiten consultas anidadas.
  • Admite tipos de datos almacenados en NRDB, y no datos de intervalo de tiempo de métrica.

Configurar una AWS Kinesis Firehose

Para configurar la exportación de transmisión de datos a AWS, primero debe configurar Amazon Kinesis Firehose. Lo guiaremos a través de ese procedimiento en los siguientes tres pasos.

Paso 1. Cree un Firehose para exportar en streaming

Cree un Firehose dedicado para transmitir sus datos de New Relic a:

  1. Vaya a Amazon Kineses Data Firehose.

  2. Cree un flujo de entrega.

  3. Asigne un nombre a la secuencia (usará este nombre más adelante en el registro de la regla).

  4. 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).

Paso 2. Crear una política de acceso de escritura de IAM Firehose

  1. Vaya al IAM y seleccione

    Policies

    .

  2. Cree una política.

  3. Seleccione el servicio Firehose y luego seleccione PutRecord y PutRecordBatch.

  4. Para Resources, seleccione la transmisión de entrega, agregue ARN y seleccione la región de su transmisión.

  5. Ingrese su número de cuenta de AWS y luego ingrese el nombre del flujo de entrega que desee en el cuadro de nombre.

  6. Cree la política.

Paso 3. Cree una función de IAM para otorgar acceso de escritura a New Relic

Para configurar la función de IAM:

  1. Navegue hasta IAM y haga clic en

    Roles

    .

  2. Cree un rol para una cuenta de AWS y luego seleccione

    for another AWS account

    .

  3. Ingrese el ID de la cuenta de exportación de New Relic: 888632727556.

  4. Seleccione

    Require external ID

    e ingrese el ID de la cuenta New Relic desde la que desea exportar.

  5. Haga clic en

    Permissions

    y luego seleccione la política que creó anteriormente.

  6. Agregue un nombre de función (esto se usará en el registro de exportación) y una descripción.

  7. Crea el rol.

Una vez hecho esto, puede trabajar en la configuración de sus reglas de exportación usando NerdGraph. Para más información sobre eso, sigue leyendo.

Configurar un centro de eventos de Azure

Para configurar la exportación de transmisión de datos a Azure, primero debe configurar un centro de eventos. Lo guiaremos a través de ese procedimiento en los siguientes tres pasos.

Alternativamente, puede seguir la guía de Azure aquí.

Paso 1. Crear un namespacede eventos Hubs

  1. Navegue hasta Event Hubs dentro de su cuenta de Microsoft Azure.

  2. Siga los pasos para crear un namespace de eventos Hubs. Recomendamos habilitar la inflación automática para garantizar que reciba todos sus datos.

  3. Asegúrese de que el acceso público esté habilitado; usaremos una Política de acceso compartido para autenticarse de forma segura con su evento Hub.

  4. Una vez que namespace de tu evento Hubs esté implementado, haz clic en

    Go to resource

    .

Paso 2. Crea un centro de eventos

  1. En la columna de la izquierda, haga clic en

    Event Hubs

    .

  2. Luego haga clic en

    +Event Hub

    para crear un centro de eventos.

  3. Ingrese el nombre del centro de eventos deseado. Guárdelo, ya que lo necesitará más adelante para crear la regla de exportación de streaming.

  4. Una vez creado el centro de eventos, haga clic en el centro de eventos.

Paso 3. Cree y adjunte una política de acceso compartido

  1. En la columna de la izquierda, vaya a

    Shared access policies

    .

  2. Haga clic en

    +Add

    cerca de la parte superior de la página.

  3. Elija un nombre para su política de acceso compartido.

  4. Marque

    Send

    y haga clic en

    Create

    .

  5. Haga clic en la política creada y copie el

    Connection string–primary key

    . Guarde esto, ya que lo usaremos para autenticar y enviar datos a su centro de eventos.

Una vez hecho esto, puede trabajar en la configuración de sus reglas de exportación usando NerdGraph. Para más información sobre eso, sigue leyendo.

Campos importantes

La mayoría de las llamadas NerdGraph de exportación de streaming de datos que cubriremos utilizan algunos campos relacionados con su cuenta:

Para AWS Kinesis Firehose:

Para centros de eventos de Azure:

  • eventHubConnectionString: Cadena de conexión de Azure Event Hub. Se parece a: Endpoint=sb://<NamespaceName>.servicebus.windows.net/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<KeyValue>;EntityPath=<EventHubName>
  • eventHubName: El nombre del centro de eventos. Por ejemplo: my-event-hub.

Cómo crear una regla de exportación de streaming

Primero, decida qué datos desea exportar. Luego, con una llamada a NerdGraph, crearás las reglas de transmisión que deseas usando NRQL. Daremos algunos ejemplos.

Crear una secuencia

Cuando crea una nueva regla de transmisión, necesitará todos los siguientes campos. A continuación se muestra un ejemplo de creación de una regla de transmisión que se exporta a AWS Kinesis Firehose:

mutation {
streamingExportCreateRule(
accountId: YOUR_NR_ACCOUNT_ID
ruleParameters: {
description: "ADD_RULE_DESCRIPTION"
name: "PROVIDE_RULE_NAME"
nrql: "SELECT * FROM NodeStatus"
payloadCompression: DISABLED
}
awsParameters: {
awsAccountId: "YOUR_AWS_ACCOUNT_ID"
deliveryStreamName: "FIREHOSE_STREAM_NAME"
region: "SPECIFY_AWS_REGION"
role: "firehose-role"
}
) {
id
status
}
}

A continuación se muestra un ejemplo de creación de una regla de transmisión que se exporta a un centro de eventos de Azure:

mutation {
streamingExportCreateRule(
accountId: YOUR_NR_ACCOUNT_ID
ruleParameters: {
description: "ADD_RULE_DESCRIPTION"
name: "PROVIDE_RULE_NAME"
nrql: "SELECT * FROM NodeStatus"
payloadCompression: DISABLED
}
azureParameters: {
eventHubConnectionString: "YOUR_EVENT_HUB_SAS_CONNECTION_STRING"
eventHubName: "YOUR_EVENT_HUB_NAME"
}
) {
id
status
}
}

Obtendrá un resultado inmediatamente con un ID de regla y un estado. El estado se mostrará como CREATION_IN_PROGRESS. Puede utilizar la identificación de la regla para verificar si la regla se creó correctamente.

La regla puede tardar hasta seis minutos en completar su creación debido a que la validación de la política lleva algún tiempo.

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, recibirá un mensaje como: "La regla de exportación se está actualizando actualmente mediante otra solicitud. Espere y vuelva a intentarlo 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.

Una vez que se crea una regla de transmisión, puede verla.

Actualizar una transmisión

Cuando actualice una nueva regla de transmisión, necesitará todos los siguientes campos. A continuación se muestra un ejemplo de cómo actualizar una regla de transmisión:

Manguera contra incendios AWS Kinesis:

mutation {
streamingExportUpdateRule(
id: RULE_ID
ruleParameters: {
description: "ADD_RULE_DESCRIPTION"
name: "PROVIDE_RULE_NAME"
nrql: "YOUR_NRQL_QUERY"
payloadCompression: DISABLED
}
awsParameters: {
awsAccountId: "YOUR_AWS_ACCOUNT_ID"
deliveryStreamName: "FIREHOSE_STREAM_NAME"
region: "SPECIFY_AWS_REGION"
role: "firehose-role"
}
) {
id
status
}
}

Centro de eventos de Azure:

mutation {
streamingExportUpdateRule(
id: RULE_ID
ruleParameters: {
description: "ADD_RULE_DESCRIPTION"
name: "PROVIDE_RULE_NAME"
nrql: "YOUR_NRQL_QUERY"
payloadCompression: DISABLED
}
azureParameters: {
eventHubConnectionString: "YOUR_EVENT_HUB_SAS_CONNECTION_STRING"
eventHubName: "YOUR_EVENT_HUB_NAME"
}
) {
id
status
}
}

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. Por favor, vuelve a comprobarlo más tarde”. La actualización completa puede tardar hasta seis minutos.

Puede comprobar si la regla está actualizada llamando a streamingRule para recuperar la regla. Durante el período en que la regla se actualiza, la regla está bloqueada y ninguna otra acción de mutación puede actuar sobre la regla. Si está intentando 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 mediante otra solicitud. Espere y vuelva a intentarlo más tarde". Un usuario puede actualizar una regla de cualquier estado excepto una regla eliminada.

Deshabilitar una transmisión

Para deshabilitar una regla, solo necesita proporcionar el ID de la regla. Aquí hay un ejemplo de cómo deshabilitar una transmisión:

mutation {
streamingExportDisableRule(id: RULE_ID) {
id
status
message
}
}

Solo puede deshabilitar la regla cuando la regla tiene un estado de ENABLED. Si intenta deshabilitar una regla que se encuentra en otro estado, se devuelve el mensaje de error "La regla de exportación no se puede habilitar o deshabilitar debido a que el estado no está permitido". No puede desactivar la regla si está bloqueada debido a que se está realizando otra mutación.

Habilitar una transmisión

Si desea habilitar una regla, solo necesita proporcionar el ID de la regla. A continuación se muestra un ejemplo de cómo habilitar una transmisión:

mutation {
streamingExportEnableRule(id: RULE_ID) {
id
status
message
}
}

Solo puedes habilitar la regla cuando tiene un estado de DISABLED. Si intenta habilitar una regla que se encuentra en otro estado, se devuelve un mensaje de error como "La regla de exportación no se puede habilitar o deshabilitar debido a que el estado no está permitido". No puede habilitar la regla si está bloqueada debido a que se está realizando otra mutación.

Eliminar una secuencia

Deberá proporcionar un ID de regla para eliminar una transmisión. He aquí un ejemplo:

mutation {
streamingExportDeleteRule(id: RULE_ID) {
id
...
}
}

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 reactivar nuevamente. La regla aún se puede ver dentro de las primeras 24 horas después de 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.

Ver transmisiones

Puede consultar información sobre una regla de transmisión específica consultando el ID de la cuenta y el ID de la regla. He aquí un ejemplo:

Manguera contra incendios AWS Kinesis:

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

Centro de eventos de Azure:

{
actor {
account(id: YOUR_NR_ACCOUNT_ID) {
streamingExport {
streamingRule(id: "RULE_ID") {
azure {
eventHubConnectionString
eventHubName
}
createdAt
description
id
message
name
nrql
status
updatedAt
payloadCompression
}
}
}
}
}

También puede consultar todas las transmisiones existentes. He aquí un ejemplo:

{
actor {
account(id: YOUR_NR_ACCOUNT_ID) {
streamingExport {
streamingRules {
aws {
awsAccountId
region
deliveryStreamName
role
}
azure {
eventHubConnectionString
eventHubName
}
createdAt
description
id
message
name
nrql
status
updatedAt
payloadCompression
}
}
}
}
}

Exportar compresión

Opcionalmente, podemos comprimir carga antes de exportarla, aunque esto está deshabilitado por defecto. Esto puede ayudar a evitar alcanzar el límite de datos ingeridos y ahorrar dinero en costos de ingreso.

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: Comprimir 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:

  1. Descargue manualmente el objeto.
  2. Separe el objeto en dos archivos separados copiando los datos comprimidos en un archivo nuevo.
  3. 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:

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:

  1. Siga esta guía hasta el paso 16.
  • En el paso 13, puede optar por utilizar el mismo centro de eventos como salida sin romper nada, aunque no recomendamos esto si tiene la intención de continuar con el paso 17 y comenzar el trabajo, ya que no se ha probado.
  1. En el panel izquierdo de su trabajo de análisis de transmisión, haga clic en

    Inputs

    y luego haga clic en la entrada que configuró.

  2. 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
  1. Haga clic en

    Save

    en la parte inferior del panel.

  2. 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.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.