Envío de métricas personalizadas de un recurso de Azure al almacén de métricas de Azure Monitor mediante la API RESTSend custom metrics for an Azure resource to the Azure Monitor metric store by using a REST API

En este artículo muestra cómo enviar métricas personalizadas de los recursos de Azure al almacén de métricas Azure Monitor a través de una API de REST.This article shows you how to send custom metrics for Azure resources to the Azure Monitor metrics store via a REST API. Una vez que las métricas estén en Azure Monitor, puede hacer con ellas lo mismo que con las métricas estándar.After the metrics are in Azure Monitor, you can do all the things with them that you do with standard metrics. Por ejemplo, puede crear gráficos o alertas, y enrutarlos a otras herramientas externas.Examples are charting, alerting, and routing them to other external tools.

Nota

La API de REST solo permite el envío de métricas personalizadas de los recursos de Azure.The REST API only permits sending custom metrics for Azure resources. Para enviar métricas de recursos en distintos entornos o de forma local, puede usar Application Insights.To send metrics for resources in different environments or on-premises, you can use Application Insights.

Creación y autorización de una entidad de servicio para la emisión de métricasCreate and authorize a service principal to emit metrics

Cree una entidad de servicio en el inquilino de Azure Active Directory según las instrucciones que encontrará en Creación de una entidad de servicio.Create a service principal in your Azure Active Directory tenant by using the instructions found at Create a service principal.

Tenga en cuenta lo siguiente al realizar este proceso:Note the following while you go through this process:

  • Puede escribir cualquier dirección URL para la dirección URL de inicio de sesión.You can enter any URL for the sign-in URL.
  • Cree un nuevo secreto de cliente para esta aplicación.Create a new client secret for this app.
  • Guarde la clave y el identificador de cliente para usarlos en pasos posteriores.Save the key and the client ID for use in later steps.

Asigne a la aplicación que creó como parte del paso 1, Supervisión del publicador de métricas, permisos para el recurso frente al cual desea emitir métricas.Give the app created as part of step 1, Monitoring Metrics Publisher, permissions to the resource you wish to emit metrics against. Si va a usar la aplicación para emitir métricas personalizadas frente a muchos recursos, puede conceder estos permisos en el nivel de suscripción o de grupo de recursos.If you plan to use the app to emit custom metrics against many resources, you can grant these permissions at the resource group or subscription level.

Obtención de un token de autorizaciónGet an authorization token

Abra un símbolo del sistema y ejecute el comando siguiente:Open a command prompt and run the following command:

curl -X POST https://login.microsoftonline.com/<yourtenantid>/oauth2/token -F "grant_type=client_credentials" -F "client_id=<insert clientId from earlier step>" -F "client_secret=<insert client secret from earlier step>" -F "resource=https://monitoring.azure.com/"

Guarde el token de acceso de la respuesta.Save the access token from the response.

Access token

Emisión de la métrica a través de la API de RESTEmit the metric via the REST API

  1. Pegue el siguiente código JSON en un archivo y guárdelo como  custommetric.json en el equipo local.Paste the following JSON into a file, and save it as custommetric.json on your local computer. Actualice el parámetro de tiempo en el archivo JSON:Update the time parameter in the JSON file:

    { 
        "time": "2018-09-13T16:34:20", 
        "data": { 
            "baseData": { 
                "metric": "QueueDepth", 
                "namespace": "QueueProcessing", 
                "dimNames": [ 
                  "QueueName", 
                  "MessageType" 
                ], 
                "series": [ 
                  { 
                    "dimValues": [ 
                      "ImagesToProcess", 
                      "JPEG" 
                    ], 
                    "min": 3, 
                    "max": 20, 
                    "sum": 28, 
                    "count": 3 
                  } 
                ] 
            } 
        } 
    } 
    
  2. En la ventana del símbolo del sistema, publique los datos de la métrica:In your command prompt window, post the metric data:

    • azureRegion.azureRegion. Debe coincidir con la región de implementación del recurso para el que se van a emitir las métricas.Must match the deployment region of the resource you're emitting metrics for.

    • resourceID.resourceID. El identificador de recurso del recurso de Azure con respecto al que realiza el seguimiento de la métrica.Resource ID of the Azure resource you're tracking the metric against.

    • AccessToken.AccessToken. Pegue el token que haya adquirido anteriormente.Paste the token that you acquired previously.

      curl -X POST https://<azureRegion>.monitoring.azure.com/<resourceId>/metrics -H "Content-Type: application/json" -H "Authorization: Bearer <AccessToken>" -d @custommetric.json 
      
  3. Cambie la marca de tiempo y los valores del archivo JSON.Change the timestamp and values in the JSON file.

  4. Repita los dos pasos anteriores varias veces para tener datos durante varios minutos.Repeat the previous two steps a few times, so you have data for several minutes.

Solución de problemasTroubleshooting

Si recibe un mensaje de error en alguna parte del proceso, tenga en cuenta la siguiente información de solución de problemas:If you receive an error message with some part of the process, consider the following troubleshooting information:

  1. No se pueden emitir métricas con respecto a una suscripción o grupo de recursos como el recurso de Azure.You can't issue metrics against a subscription or resource group as your Azure resource.
  2. No se puede colocar en el almacén una métrica si pasan más de 20 minutos desde su creación.You can't put a metric into the store that's over 20 minutes old. El almacén de métricas está optimizado para las alertas y los gráficos en tiempo real.The metric store is optimized for alerting and real-time charting.
  3. El número de nombres de dimensión debe coincidir con los valores y viceversa.The number of dimension names should match the values and vice versa. Compruebe los valores.Check the values.
  4. Se pueden emitir métricas con respecto a una región que no es compatible con las métricas personalizadas.You might be emitting metrics against a region that doesn’t support custom metrics. Consulte las regiones admitidas.See supported regions.

Visualización de las métricasView your metrics

  1. Inicie sesión en Azure Portal.Sign in to the Azure portal.

  2. En el menú de la izquierda, seleccione Monitor.In the left-hand menu, select Monitor.

  3. En la página Monitor, seleccione Métricas.On the Monitor page, select Metrics.

    Seleccione Métricas

  4. Cambie el período de agregación a Últimos 30 minutos.Change the aggregation period to Last 30 minutes.

  5. En el menú desplegable Recursos, seleccione el recurso con respecto al que emitió la métrica.In the resource drop-down menu, select the resource you emitted the metric against.

  6. En el menú desplegable Espacios de nombres, seleccione QueueProcessing.In the namespaces drop-down menu, select QueueProcessing.

  7. En el menú desplegable Métricas, seleccione QueueDepth.In the metrics drop-down menu, select QueueDepth.

Pasos siguientesNext steps