Conexión a un origen de datos de Azure Monitor - Amazon Managed Grafana

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Conexión a un origen de datos de Azure Monitor

El origen de datos de Azure Monitor admite varios servicios en la nube de Azure:

  • El servicio Azure Monitor es el servicio de plataforma que proporciona un único origen para supervisar los recursos de Azure. Para obtener más información, consulte Consulta del servicio Azure Monitor.

  • El servidor de Información de aplicaciones es un servicio extensible de administración del rendimiento de aplicaciones (APM) para desarrolladores web en múltiples plataformas y se puede utilizar para supervisar su aplicación web publicada. Detectará automáticamente las anomalías de rendimiento. Para obtener más información, consulte Consulta del servicio Application Insights Analytics.

  • Azure Log Analytics (o Azure Logs) le permite acceder a los datos de registro recopilados por Azure Monitor. Para obtener más información, consulte Consulta del servicio Azure Log Analytics.

  • Utilice el servicio Análisis de Información de aplicaciones para consultar los datos de Información de aplicaciones con el mismo lenguaje de consulta que se utiliza para Azure Log Analytics. Para obtener más información, consulte Consulta del servicio Application Insights Analytics.

Adición del origen de datos

El origen de datos puede acceder a las métricas de cuatro servicios diferentes. Puede configurar el acceso a los servicios que utiliza. También es posible utilizar las mismas credenciales para varios servicios si así lo ha configurado en Azure AD.

  1. Al acceder desde el menú principal de Grafana, los orígenes de datos recién instalados se pueden agregar inmediatamente en la sección Orígenes de datos. A continuación, pulse el botón Agregar origen de datos en la esquina superior derecha. El origen de datos de Azure Monitor estará disponible para su selección en la sección Nube de la lista de orígenes de datos.

  2. En el campo de nombre, Grafana rellenará automáticamente un nombre para el origen de datos: Azure Monitor o algo así como Azure Monitor - 3. Si está configurando varios orígenes de datos, cambie el nombre por uno más informativo.

  3. Si utiliza Azure Monitor, necesitará cuatro datos de Azure Portal (para instrucciones detalladas, consulte el vínculo proporcionado anteriormente):

    • ID de inquilino (Azure Active Directory, propiedades, ID de directorio)

    • ID de cliente (Azure Active Directory, registros de aplicaciones, elija su aplicación, ID de aplicación)

    • Secreto de cliente (Azure Active Directory, registros de aplicaciones, elija su aplicación, claves)

    • ID de suscripción predeterminado (suscripciones, elegir suscripción, información general, ID de suscripción)

  4. Pegue estos cuatro elementos en los campos de la sección de detalles de la API de Azure Monitor.

    • El ID de suscripción se puede cambiar por consulta. Guarde el origen de datos y actualice la página para ver la lista de suscripciones disponibles para el ID de cliente especificado.

  5. Si también utiliza el servicio Azure Log Analytics, debe especificar estos dos valores de configuración o volver a utilizar el ID de cliente y el secreto del paso anterior.

    • ID de cliente (Azure Active Directory, registros de aplicaciones, elija su aplicación, ID de aplicación)

    • Secreto de cliente (Azure Active Directory, registros de aplicaciones, elija su aplicación, claves, crear una clave, utilizar secreto de cliente)

  6. Si utiliza Información de aplicaciones, necesitará dos datos del Azure Portal (para instrucciones detalladas, consulte el vínculo proporcionado anteriormente):

    • Application ID

    • Clave de API

  7. Pegue estos dos elementos en los campos correspondientes de la sección de detalles de la API de Información de aplicaciones.

  8. Para comprobar que los detalles de configuración sean correctos, pulse el botón Guardar y probar.

Como alternativa, en el paso 4, si va a crear una nueva aplicación de Azure Active Directory, utilice la CLI de Azure:

az ad sp create-for-rbac -n "http://localhost:3000"

Elección de un servicio

En el editor de consultas de un panel, después de elegir el origen de datos de Azure Monitor, el primer paso consiste en seleccionar un servicio. Hay cuatro opciones:

  • Azure Monitor

  • Application Insights

  • Azure Log Analytics

  • Insights Analytics

El editor de consultas cambia en función de la opción que seleccione. Azure Monitor es el predeterminado.

Consulta del servicio Azure Monitor

El servicio Azure Monitor proporciona métricas de todos los servicios de Azure que se ejecutan. Ayuda a comprender el rendimiento de las aplicaciones en Azure y detecta de forma proactiva los problemas que afectan a las aplicaciones.

Si sus credenciales de Azure Monitor le dan acceso a varias suscripciones, elija antes la suscripción adecuada.

Entre los ejemplos de métricas que puede obtener del servicio se encuentran los siguientes:

  • Microsoft.Compute/virtualMachines - Percentage CPU

  • Microsoft.Network/networkInterfaces - Bytes sent

  • Microsoft.Storage/storageAccounts - Used Capacity

El editor de consultas le permite consultar múltiples dimensiones en métricas que las admiten. Las métricas que admiten varias dimensiones son las que figuran en la Lista de métricas compatibles con Azure Monitor y que tienen un valor o varios en la columna Dimensión de la métrica.

Formato de las claves de leyenda con alias para Azure Monitor

El formato de leyenda predeterminado para la API de Azure Monitor es:

metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}

Pueden ser largos, pero puede cambiar este formato mediante alias. En el campo Formato de leyenda, puede combinar los siguientes alias de la forma que desee.

Ejemplos de Azure Monitor:

  • Blob Type: {{ blobtype }}

  • {{ resourcegroup }} - {{ resourcename }}

Patrones de alias para Azure Monitor

  • {{ resourcegroup }} = sustituido por el valor del grupo de recursos

  • {{ namespace }} = sustituido por el valor del espacio de nombres (por ejemplo, Microsoft.Compute/virtualMachines)

  • {{ resourcename }} = sustituido por el valor del nombre del recurso

  • {{ metric }} = sustituido por el nombre de la métrica (por ejemplo, Porcentaje de CPU)

  • {{ dimensionname }}= Legacy a partir de 7.1+ (por compatibilidad con versiones anteriores) reemplazado por el de la primera dimensiónkey/label (as sorted by the key/label) (por ejemplo, blobtype)

  • {{ dimensionvalue }}= La versión antigua a partir de la versión 7.1+ (por motivos de compatibilidad con versiones anteriores) se sustituyó por el valor de la primera dimensión (ordenado por la clave/etiqueta) (por ejemplo,) BlockBlob

  • {{ arbitraryDim }}= Disponible en 7.1+ reemplazado por el valor de la dimensión correspondiente. (por ejemplo, {{ blobtype }} se convierte en) BlockBlob

Creación de variables de plantilla para Azure Monitor

En lugar de codificar elementos como el nombre del servidor, la aplicación y el sensor en las consultas de métricas, puede utilizar variables en su lugar. Las variables se muestran como cuadros de selección desplegables en la parte superior del panel de control. Puede usar estos cuadros desplegables para cambiar los datos que se muestran en su panel de control.

Tenga en cuenta que el servicio Azure Monitor aún no admite varios valores. Para visualizar varias series temporales (por ejemplo, las métricas del servidor1 y servidor2), agregue varias consultas para poder verlas en el mismo gráfico o en la misma tabla.

El complemento del origen de datos de Azure Monitor proporciona las siguientes consultas que puede especificar en el campo Consulta de la vista de edición de variables. Puede utilizarlas para rellenar la lista de opciones de una variable.

Nombre Descripción
Subscriptions() Devuelve una lista de suscripciones.
ResourceGroups() Devuelve una lista de grupos de recursos.
ResourceGroups(12345678-aaaa-bbbb-cccc-123456789aaa) Devuelve una lista de grupos de recursos para una suscripción especificada.
Namespaces(aResourceGroup) Devuelve una lista de espacios de nombres para el grupo de recursos especificado.
Namespaces(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup) Devuelve una lista de espacios de nombres para el grupo de recursos y la suscripción especificados.
ResourceNames(aResourceGroup, aNamespace) Devuelve una lista de nombres de recursos.
ResourceNames(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace) Devuelve una lista de nombres de recursos para una suscripción especificada.
MetricNamespace(aResourceGroup, aNamespace, aResourceName) Devuelve una lista de espacios de nombres de métricas.
MetricNamespace(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace, aResourceName) Devuelve una lista de espacios de nombres de métricas para una suscripción especificada.
MetricNames(aResourceGroup, aNamespace, aResourceName) Devuelve una lista de nombres de métricas.
MetricNames(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace, aResourceName) Devuelve una lista de nombres de métricas para una suscripción especificada.

Ejemplos:

  • Consulta de grupos de recursos: ResourceGroups()

  • Pasar una variable de nombre de métrica: Namespaces(cosmo)

  • Encadenamiento de variables de plantilla: ResourceNames($rg, $ns)

  • No entrecomille los parámetros: MetricNames(hg, Microsoft.Network/publicIPAddresses, grafanaIP)

Para obtener más información acerca de las plantillas y sus variables, consulte Plantillas.

Lista de métricas de Azure Monitor admitidas

No todas las métricas devueltas por la API de Azure Monitor tienen valores. Para facilitar la creación de una consulta, el origen de datos de Grafana tiene una lista de métricas de Azure Monitor admitidas e ignora las métricas que nunca tendrán valores. Esta lista se actualiza periódicamente a medida que se agregan nuevos servicios y métricas a la nube de Azure.

Alertas de Azure Monitor

Grafana Alerting es compatibles con el servicio Azure Monitor. Esto no es compatible con Azure Alerts. Para obtener más información sobre Grafana Alerting, consulte Alertas de Grafana.

Consulta del servicio de Información de aplicaciones

Formato de las claves de las leyendas con alias para Información de aplicaciones

El formato de leyenda predeterminado es:

metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}

En el campo Formato de leyenda, los siguientes alias se pueden combinar de la forma que quiera.

Ejemplos de Información de aplicaciones:

  • city: {{ client/city }}

  • {{ metric }} [Location: {{ client/countryOrRegion }}, {{ client/city }}]

Patrones de alias para Información de aplicaciones

  • {{ groupbyvalue }}= Legacy a partir de Grafana 7.1+ (para compatibilidad con versiones anteriores) (reemplazado por el de la primera dimensión) key/label (as sorted by the key/label

  • {{ groupbyname }}= Legacy a partir de Grafana 7.1+ (por compatibilidad con versiones anteriores) reemplazado por el valor de la primera dimensión (ordenado por la clave/etiqueta) (por ejemplo,) BlockBlob

  • {{ metric }} = sustituido por el nombre de la métrica (por ejemplo, solicitudes o recuento)

  • {{ arbitraryDim }} = Disponible en la versión 7.1 y posteriores se sustituyó por el valor de la dimensión correspondiente, por ejemplo, {{ client/city }} se convierte en Chicago)

Expresiones de filtro para Información de aplicaciones

El campo de filtro toma una expresión de filtro. OData

Ejemplos:

  • client/city eq 'Boydton'

  • client/city ne 'Boydton'

  • client/city ne 'Boydton' and client/city ne 'Dublin'

  • client/city eq 'Boydton' or client/city eq 'Dublin'

Plantillas con variables para Información de aplicaciones

Utilice una de las siguientes consultas en el campo Consulta de la vista de edición de variables.

Para obtener más información acerca de las plantillas y sus variables, consulte Plantillas.

Nombre Descripción
AppInsightsMetricNames() Devuelve una lista de nombres de métricas.
AppInsightsGroupBys(aMetricName) Devuelve una lista de cláusulas group by del nombre de la métrica especificada.

Ejemplos:

  • Consulta de nombres de métricas: AppInsightsMetricNames()

  • Pasar una variable de nombre de métrica: AppInsightsGroupBys(requests/count)

  • Encadenamiento de variables de plantilla: AppInsightsGroupBys($metricnames)

Alertas en Información de aplicaciones

Información de aplicaciones es compatible con Grafana Alerting. Esto no es compatible con Azure Alerts. Para obtener más información sobre Grafana Alerting, consulte Alertas de Grafana.

Consulta del servicio Azure Log Analytics

Las consultas se escriben en el nuevo lenguaje de consultas de Azure Log Analytics (o KustoDB). Una consulta de Log Analytics se puede formatear como datos de serie temporal o como datos de tabla.

Si sus credenciales le dan acceso a varias suscripciones, elija la suscripción adecuada antes de introducir las consultas.

Consultas de series temporales

Las consultas de series temporales son para el panel de gráficos y para otros paneles, como el SingleStat panel. Cada consulta debe contener al menos una columna de fecha y hora y una columna de valores numéricos. El resultado debe ordenarse de manera ascendente según la columna de fecha y hora.

El ejemplo de código siguiente muestra una consulta que devuelve el recuento agregado que se agrupa por hora.

Perf | where $__timeFilter(TimeGenerated) | summarize count() by bin(TimeGenerated, 1h) | order by TimeGenerated asc

Una consulta también puede tener una o más columnas no numéricas ni de fecha y hora, y esas columnas se consideran dimensiones y se convierten en etiquetas en la respuesta. Por ejemplo, una consulta que devuelve el recuento agregado agrupado por hora, ordenador y CounterName.

Perf | where $__timeFilter(TimeGenerated) | summarize count() by bin(TimeGenerated, 1h), Computer, CounterName | order by TimeGenerated asc

También puede seleccionar columnas de valores numéricos adicionales (con o sin varias dimensiones). Por ejemplo, obtener un recuento y un valor promedio por hora CounterName, ordenador y InstanceName:

Perf | where $__timeFilter(TimeGenerated) | summarize Samples=count(), ["Avg Value"]=avg(CounterValue) by bin(TimeGenerated, $__interval), Computer, CounterName, InstanceName | order by TimeGenerated asc
nota

Consejo: En la consulta anterior, se utilizan la sintaxis de Kusto y Samples=count()["Avg Value"]=... se utilizan para cambiar el nombre de esas columnas. La segunda sintaxis permite el espacio. Esto cambia el nombre de la métrica que utiliza Grafana. Como resultado, los elementos como las leyendas de las series y las columnas de las tablas coincidirán con lo que se especifique. En este ejemplo, Samples se muestra en lugar de _count.

Consultas de tablas

Las consultas de tablas se utilizan principalmente en el panel de tablas y muestran una lista de columnas y filas. Esta consulta de ejemplo devuelve filas con las seis columnas especificadas.

AzureActivity | where $__timeFilter() | project TimeGenerated, ResourceGroup, Category, OperationName, ActivityStatus, Caller | order by TimeGenerated desc

Formato del nombre de visualización de Log Analytics

El formato predeterminado de nombre para mostrar es:

metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}

Esto se puede personalizar con la opción de campo de nombre para mostrar.

Macros de Azure Log Analytics

Para facilitar la redacción de consultas, Grafana proporciona varias macros que puede usar en la cláusula where de una consulta:

  • $__timeFilter(): se expande hasta TimeGenerated ≥ datetime(2018-06-05T18:09:58.907Z) and TimeGenerated ≤ datetime(2018-06-05T20:09:58.907Z) donde están las fechas y horas de inicio y fin del selector de hora de Grafana.

  • $__timeFilter(datetimeColumn): se expande hasta datetimeColumn ≥ datetime(2018-06-05T18:09:58.907Z) and datetimeColumn ≤ datetime(2018-06-05T20:09:58.907Z) donde están las fechas y horas de inicio y fin del selector de hora de Grafana.

  • $__timeFrom(): devuelve la fecha y hora desde el selector de Grafana. Ejemplo: datetime(2018-06-05T18:09:58.907Z).

  • $__timeTo(): devuelve la fecha y hora desde el selector de Grafana. Ejemplo: datetime(2018-06-05T20:09:58.907Z).

  • $__escapeMulti($myVar): se debe utilizar con variables de plantilla con varios valores que contengan caracteres no válidos. Si $myVar tiene los siguientes dos valores como cadena '\\grafana-vm\Network(eth0)\Total','\\hello!', se expande a @'\\grafana-vm\Network(eth0)\Total', @'\\hello!'. Si utiliza variables de un solo valor, no es necesaria esta macro, escape la variable insertada en su lugar: @'\$myVar'.

  • $__contains(colName, $myVar): se debe utilizar con variables de plantilla de valores múltiples. Si $myVar tiene el valor 'value1','value2', se expande a colName in ('value1','value2').

    Si utiliza la opción Todo, active la casilla Opción Incluir todo y, en el campo Valor Personalizar todo, ingrese el siguiente valor: all. Si $myVar tiene el valor all, la macro se expandirá hasta 1 == 1. En el caso de las variables de plantilla con numerosas opciones, esto aumenta el rendimiento de la consulta, ya que no se crea una cláusula extensa “where…in”.

Variables integradas de Azure Log Analytics

También hay algunas variables de Grafana que se pueden usar en las consultas de Azure Log Analytics:

  • $__interval: Grafana calcula el intervalo de tiempo mínimo que se puede utilizar para agrupar por tiempo en las consultas. Devuelve un intervalo de tiempo como, por ejemplo, 5m o 1h que se puede utilizar en la función bin, por ejemplo, summarize count() by bin(TimeGenerated, $__interval). Para obtener más información acerca de las variables de intervalo, consulte Adición de una variable de intervalo.

Plantillas con variables para Azure Log Analytics

Cualquier consulta de Log Analytics que devuelva una lista de valores se puede usar en el campo Consulta de la vista de edición de variables. También hay una función de Grafana para Log Analytics que devuelve una lista de espacios de trabajo.

Para obtener información sobre las plantillas y sus variables, consulte Plantillas y variables.

Nombre Descripción
workspaces() Devuelve una lista de los espacios de trabajo de la suscripción predeterminada.
workspaces(12345678-aaaa-bbbb-cccc-123456789aaa) Devuelve una lista de los espacios de trabajo de la suscripción especificada (el parámetro puede estar entre comillas o sin comillas).

En la tabla siguiente se muestran ejemplos de consultas de variables.

Consultar Descripción
subscriptions() Devuelve una lista de suscripciones de Azure.
workspaces() Devuelve una lista de espacios de trabajo para la suscripción predeterminada.
workspaces("12345678-aaaa-bbbb-cccc-123456789aaa") Devuelve una lista de espacios de trabajo para una determinada suscripción.
workspaces("$subscription") Con una variable de plantilla para el parámetro de suscripción.
workspace("myWorkspace").Heartbeat \| distinct Computer Devuelve una lista de máquinas virtuales.
workspace("$workspace").Heartbeat \| distinct Computer Devuelve una lista de máquinas virtuales con la variable de plantilla.
workspace("$workspace").Perf \| distinct ObjectName Devuelve una lista de objetos de la tabla Perf.
workspace("$workspace").Perf \| where ObjectName == "$object" \| distinct CounterName Devuelve una lista de nombres de métricas de la tabla Perf.

El siguiente ejemplo de código muestra una consulta de series temporales con variables.

Perf | where ObjectName == "$object" and CounterName == "$metric" | where TimeGenerated >= $__timeFrom() and TimeGenerated <= $__timeTo() | where $__contains(Computer, $computer) | summarize avg(CounterValue) by bin(TimeGenerated, $__interval), Computer | order by TimeGenerated asc

Vínculos profundos que van desde los paneles de Grafana al editor de consultas de Log Analytics en Azure Portal

Elija una serie temporal en el panel para ver un menú contextual con un enlace a Ver en Azure Portal. Al elegir ese enlace, se abre el editor de consultas de Azure Log Analytics en Azure Portal y se ejecuta la consulta desde el panel de Grafana.

Si actualmente no ha iniciado sesión en Azure Portal, el enlace abre la página de inicio de sesión. El enlace proporcionado es válido para cualquier cuenta, pero solo muestra la consulta si su cuenta tiene acceso al espacio de trabajo de Azure Log Analytics especificado en la consulta.

Alertas de Azure Log Analytics

Información de aplicaciones es compatible con Grafana Alerting. Esto no es compatible con Azure Alerts. Para obtener más información acerca de las alertas en los espacios de trabajo de Grafana, consulte Alertas de Grafana.

Consulta del servicio Application Insights Analytics

Si cambia el tipo de servicio a Insights Analytics, estará disponible un editor similar al servicio Log Analytics. Este servicio también utiliza el lenguaje Kusto, por lo que las instrucciones para consultar los datos son idénticas a Consulta del servicio Azure Log Analytics, salvo que, en su lugar, se consultan los datos de Application Insights Analytics.