Publicación de métricas personalizadas mediante la API
Publique métricas personalizadas en el servicio Monitoring.
Las configuraciones de agente son otra forma de publicar métricas personalizadas en Monitoring. Con las configuraciones de agente, la API no es necesaria para publicar métricas personalizadas. Ahora puede utilizar configuraciones de agente para ingerir datos de métricas en métricas personalizadas. Por ejemplo, exponga las métricas de una máquina virtual (VM) mediante un punto final HTTP en formato Prometheus.
Una métrica personalizada es una métrica que se diseña para recopilar y analizar datos.
Por ejemplo, cree una métrica productOrder
(en un espacio de nombres de métrica, mymetricsnamespace
) para realizar un seguimiento de los pedidos de productos por país y división, con metadatos adicionales para las notas y categorías de productos.
Antes de empezar
Políticas de IAM: para publicar métricas personalizadas, debe recibir el tipo de acceso necesario en una política escrita por un administrador. Este requisito se aplica tanto si está utilizando la API de REST con un SDK, una CLI u otra herramienta. Si obtiene un mensaje que indica que no tiene permiso o no está autorizado, consulte al administrador. Puede que no tenga el tipo de acceso necesario en el compartimento actual.
Administradores: para obtener una política de ejemplo, consulte Publicar métricas personalizadas (protección de Monitoring).
Consideraciones
Cuando defina métricas personalizadas, tenga en cuenta lo siguiente:
- Para el espacio de nombres de métrica, no utilice un prefijo reservado (
oci_
ooracle_
). - Asegúrese de que las métricas personalizadas no exceden los límites. Por ejemplo, tenga en cuenta el rango válido de dimensiones y el número máximo de flujos para métricas personalizadas. Consulte PostMetricData.
- Defina las métricas teniendo en cuenta la agregación. Aunque las métricas personalizadas se pueden publicar con una frecuencia de hasta un segundo (frecuencia mínima de un segundo), el intervalo mínimo de agregación es de un minuto.
- Defina métricas teniendo en cuenta los límites de retorno. Los límites para los datos devueltos incluyen 100.000 puntos de datos máximo e intervalos de tiempo máximos (determinados por la resolución, lo cual está relacionado con el intervalo). Consulte MetricData. Consulte también Límites de Monitoring.
- Asegúrese de que los valores de registro de hora estén cerca de la hora actual. Para que un punto de datos se tenga en cuenta, su registro de hora debe ser cercano a la hora actual (menos de dos horas en el pasado y menos de 10 minutos en el futuro). Consulte PostMetricData.
- Después de publicar métricas personalizadas, puede acceder a ellas de la misma forma que accede a cualquier otra métrica almacenada por el servicio Monitoring: Ver gráficos en la consola, consultar métricas mediante la CLI o la API y crear alarmas.
- Al recuperar métricas personalizadas, puede buscar coincidencias con un grupo de recursos. En blanco (nulo) para un grupo de recursos devuelve datos de métrica que no tienen un grupo de recursos.
Clientes de publicación de métricas
Para obtener información sobre el desarrollo de un cliente de publicación de métricas, consulte la Guía para desarrolladores. Para obtener un ejemplo de cliente, consulte MonitoringMetricPostExample.java.
Para obtener más información sobre el uso de la API y la firma de solicitudes, consulte la documentación de la API de REST y Credenciales de seguridad. Para obtener información sobre los SDK, consulte Los SDK y la CLI.
Esta tarea no se puede realizar en la consola. - Nota
A diferencia de otros comandos de Monitoring que utilizan puntos finalestelemetry
, este comando requiere un punto finaltelemetry-ingestion
.Utilice el comando oci monitoring metric-data post, el parámetro
--endpoint
y los parámetros necesarios para publicar métricas personalizadas:oci monitoring metric-data post --metric-data <json_file_path> --endpoint https://telemetry-ingestion.<region>.oraclecloud.com
Para obtener una lista completa de parámetros y valores para los comandos de la CLI, consulte la Command Line Reference for Monitoring.
Archivo JSON de ejemplo para la solicitudEl archivo JSON de ejemplo incluye los siguientes elementos.
- Espacio de nombres de métricas:
mymetricsnamespace
- Nombre de métrica:
productOrder
- Dimensión Product
- Dimensión Country
- Grupo de recursos (
DivisionX
,DivisionY
) - Metadatos adicionales para categoría y nota
[ { "compartmentId": "$compartmentId", "datapoints": [ { "count": 10, "timestamp": "2023-01-08T04:18:01+00:00", "value": 5.0 }, { "count": 3, "timestamp": "2023-01-08T05:11:01+00:00", "value": 10.0 } ], "dimensions": { "product": "ball", "country": "NL" }, "metadata": { "category": "toys", "note": "national holiday" }, "name": "productOrder", "namespace": "mymetricsnamespace", "resourceGroup": "divisionX" }, { "compartmentId": "$compartmentId", "datapoints": [ { "count": 7, "timestamp": "2023-01-08T03:22:01+00:00", "value": 3.0 }, { "count": 11, "timestamp": "2023-01-08T05:08:03+00:00", "value": 2 } ], "dimensions": { "product": "The Road to Nowhere", "country": "FR" }, "metadata": { "category": "books", "note": "start second semester" }, "name": "productOrder", "namespace": "mymetricsnamespace", "resourceGroup": "divisionY" } ]
Respuesta de ejemplo{ "data": { "failed-metrics": [], "failed-metrics-count": 0 } }
- Espacio de nombres de métricas:
- Nota
A diferencia de otras operaciones de Monitoring que utilizan puntos finalestelemetry
, esta operación necesita un punto finaltelemetry-ingestion
.Ejecute la operación PostMetricData para publicar métricas personalizadas.
Ejemplo de una solicitud por lotesEn este ejemplo se muestra una única solicitud que contiene puntos de datos para métricas de dos nombres de espacio de métricas .
[ { "namespace":"myFirstNamespace", "compartmentId":"ocid1.compartment.oc1..exampleuniqueID", "resourceGroup":"myFirstResourceGroup", "name":"successRate", "dimensions":{ "resourceId":"ocid1.exampleresource.region1.phx.exampleuniqueID", "appName":"myAppA" }, "metadata":{ "unit":"percent", "displayName":"MyAppA Success Rate" }, "datapoints":[ { "timestamp":"2023-01-10T22:19:20Z", "value":83.0 }, { "timestamp":"2023-01-10T22:19:40Z", "value":90.1 } ] }, { "namespace":"myFirstNamespace", "compartmentId":"ocid1.compartment.oc1..exampleuniqueID", "resourceGroup":"mySecondResourceGroup", "name":"successRate", "dimensions":{ "resourceId":"ocid1.exampleresource.region1.phx.differentuniqId", "appName":"myAppA" }, "metadata":{ "unit":"percent", "displayName":"MyAppA Success Rate" }, "datapoints":[ { "timestamp":"2023-01-10T22:19:10Z", "value":100.0 }, { "timestamp":"2023-01-10T22:19:30Z", "value":100.0 } ] }, { "namespace":"mySecondNamespace", "compartmentId":"ocid1.compartment.oc1..exampleuniqueID", "name":"deliveryRate", "dimensions":{ "resourceId":"ocid1.exampleresource.region1.phx.exampleuniqueID", "appName":"myAppB" }, "metadata":{ "unit":"bytes", "displayName":"MyAppB Delivery Rate" }, "datapoints":[ { "timestamp":"2023-01-10T22:19:00Z", "value":87.0, "count":60 }, { "timestamp":"2023-01-10T22:19:00Z", "value":96.0, "count":30 } ] } ]
Más información
Para ver los casos de uso comunes con métricas personalizadas, consulte Tutorial de métricas personalizadas. Para solucionar problemas de consulta, consulte Solución de problemas de consultas.