En este documento, se describe cómo crear métricas definidas por el usuario y cómo escribir esta datos de métricas con la API de Cloud Monitoring. Las métricas definidas por el usuario usan los mismos elementos que usan las métricas integradas de Cloud Monitoring:
- Un conjunto de datos
- Información sobre tipos de métricas, que te indica qué representan los datos
- Información sobre recursos supervisados, que te indica dónde se originaron los datos
Las métricas definidas por el usuario, a veces llamadas métricas personalizadas, se pueden usar de la misma manera que las métricas integradas. Es decir, puedes crear gráficos y alertas para estos datos de métricas.
Las métricas basadas en registros son una clase de métricas definidas por el usuario, pero no puedes y crearlos con la API de Cloud Monitoring. Las métricas basadas en registros derivan datos métricos de las entradas de registro, pero la API de Monitoring no proporciona ninguna forma de especificar cómo extraer datos métricos de las entradas de registro. En su lugar, usa Cloud Logging para crear métricas basadas en registros. Cuando creas una campaña una métrica basada en registros, Logging crea las estructuras descritas en este documento y envía los datos de las métricas a Cloud Monitoring por ti. Para obtener información sobre cómo crear métricas basadas en registros, consulta los siguientes documentos:
Para instrumentar tu aplicación, te recomendamos que uses un framework de instrumentación con proveedor neutro y que sea de código abierto, como OpenTelemetry, en lugar de las API específicas de proveedor y producto. o bibliotecas cliente. Para obtener más información sobre la instrumentación de tu aplicación, consulta Instrumentación y observabilidad.
Antes de comenzar
Para obtener información sobre las estructuras subyacentes de todas las métricas, consulta Métricas, series temporales y recursos.
Para usar Cloud Monitoring, debes tener un proyecto de Google Cloud con la facturación habilitada. Cuando sea necesario, haz lo siguiente:
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Asegúrate de que la API de Monitoring esté habilitada. Para obtener más información, consulta Habilita la API de Monitoring.
Para las aplicaciones que se ejecutan fuera de Google Cloud, tu proyecto de Google Cloud debe autenticar tu aplicación. Por lo general, la autenticación se configura con la creación cuenta de servicio para tu proyecto y configurando un entorno de salida.
Para obtener información sobre cómo crear una cuenta de servicio, consulta Cómo comenzar a usar la autenticación
Crear un tipo de métrica definido por el usuario
Para crear una métrica definida por el usuario, puede definir
Objeto MetricDescriptor
que especifica información diversa sobre la métrica,
o escribir datos de métricas. Cuando escribes datos de métricas, Monitoring crea el descriptor de métricas según la estructura de los datos que proporcionas.
Para obtener más información sobre el diseño de un descriptor de métrica, consulta
Descriptores de métricas para métricas definidas por el usuario.
Creación automática de descriptores de métricas
Si escribes datos de métricas cuando un descriptor de métrica para esa métrica definida por el usuario aún no existe, se crea automáticamente un descriptor de métrica. Sin embargo, este nuevo descriptor de métrica podría no ser exactamente lo que quieres. La creación automática de descriptores de métricas implica algunas suposiciones y predeterminaciones.
Cloud Monitoring crea un MetricDescriptor
nuevo cuando el objeto TimeSeries
incluido en una llamada a timeSeries.create
hace referencia a un objeto Metric
que especifica un nombre de tipo de métrica inexistente.
Cloud Monitoring usa las siguientes reglas para propagar
MetricDescriptor
:
type
: El tipo se copia desde el campotype
del objetoMetric
.name
: El nombre se crea a partir del ID del proyecto en la llamada de método y el valor detype
en el objetoMetric
labels
: Son las etiquetas que aparecen en el objetoMetric
. Cada descriptor de etiqueta en el nuevo descriptor de métrica posee los siguientes campos:key
: Es la clave de etiqueta en el objetoMetric
.valueType
:STRING
.description
: No se establece.
metricKind
: El tipo de métrica se establece enGAUGE
, a menos que lo especifiques el parámetrometricKind
del objetoTimeSeries
Cuando especificas elmetricKind
, la métrica nueva tiene ese tipo. Solo puedes especificar ClasesGAUGE
yCUMULATIVE
.valueType
: El tipo de valor se toma del valor escrito de la Se está escribiendoPoint
. El tipo de valor debe serBOOL
INT64
,DOUBLE
oDISTRIBUTION
. Cuando especificas un tipo de valor en elvalueType
delTimeSeries
. el tipo debe coincidir con el tipo dePoint
.unit
: No se establece.description
:"Auto created custom metric."
.displayName
: No se establece.
En una sola llamada a timeSeries.create
, puedes incluir varios objetos TimeSeries
que hagan referencia al mismo tipo de métrica. En ese caso, las etiquetas del nuevo descriptor de métricas consisten en la unión de todas las etiquetas de los objetos Metric
de todas las series temporales de esta llamada a create
.
Siguiente paso: Consulta Escribe métricas definidas por el usuario.
Creación manual de descriptores de métricas
Para crear un descriptor de métrica, haz lo siguiente:
Determina la estructura de tu descriptor de métrica. Para hacer estas opciones, puedes navegar por las métricas integradas y ver sus datos de series temporales:
Elige un nombre de métrica para tu métrica definida por el usuario.
Elige un nombre visible y una descripción para tu métrica. El nombre visible se usa en la consola de Google Cloud.
Elige uno o varios proyectos en los que definirás tu métrica definida por el usuario y escribe sus datos de series temporales. Cuando necesites la misma métrica en varios proyectos, realiza definiciones idénticas de la métrica en cada uno de esos proyectos.
Determina el tipo, el tipo de valor y, de manera opcional, las unidades de la métrica. No todos los tipos de valores y las clases de métricas son compatibles con las métricas definidas por el usuario. Para obtener más información sobre estos campos, consulta Tipos de valores y clases de métricas.
Elige las etiquetas de la métrica: sus nombres, tipos de valor y descripciones.
Determinar los recursos supervisados con los que se comparan los datos de métricas escrita. Elige una opción de la siguiente lista:
aws_ec2_instance
: Instancia de Amazon EC2.dataflow_job
: Trabajo de Dataflow.gae_instance
: instancia de App Engine.gce_instance
: instancia de Compute Engine.generic_node
: Nodo de procesamiento especificado por el usuario.generic_task
: Tarea definida por el usuario.gke_container
: instancia de contenedor de GKE.global
: Usa este recurso cuando no haya otro tipo de recurso y que sean adecuados. En la mayoría de los casos de uso, se usangeneric_node
ogeneric_task
mejores opciones queglobal
.k8s_cluster
: Clúster de Kubernetesk8s_container
: Contenedor de Kubernetesk8s_node
: tu nodo de Kubernetes.k8s_pod
: Pod de Kubernetes.
Crea un objeto
MetricDescriptor
y, luego, pásalo como un argumento a una llamada ametricDescriptors.create
.
Por lo general, es un error llamar
metricDescriptors.create
con el mismo tipo
como descriptor de métrica existente. Sin embargo, si todos los campos del objeto nuevo MetricDescriptor
coinciden de manera exacta con los campos del descriptor existente, no se trata de un error y no tiene efecto alguno.
En el siguiente ejemplo, crearás una métrica de indicador.
Protocolo
Para crear un descriptor de métricas, usa el método metricDescriptors.create
.
Puedes ejecutar este método usando el widget del Explorador de APIs en la
página de referencia del método. Consulta Explorador de APIs para obtener más información.
Los siguientes son los parámetros de muestra de metricDescriptors.create
:
- Nombre (URL):
projects/[PROJECT_ID]
Cuerpo de la solicitud: Proporciona un objeto
MetricDescriptor
como el siguiente:{ "name": "", "description": "Daily sales records from all branch stores.", "displayName": "Sales", "type": "custom.googleapis.com/stores/sales", "metricKind": "GAUGE", "valueType": "DOUBLE", "unit": "{USD}", "labels": [ { "key": "store_id", "valueType": "STRING", "description": "The ID of the store." }, ], }
Proporciona estos valores para los campos del widget mediante el uso del ID del proyecto en lugar de [PROJECT_ID
]:
Haz clic en el botón Ejecutar (Execute) para ejecutar el método.
Cuando creas una métrica nueva, el campo name
del
MetricDescriptor
se ignora y se puede omitir. El método create
muestra el nuevo descriptor de métrica con el campo name
completo, que en este ejemplo sería el siguiente:
"name": "projects/[PROJECT_ID]/metricDescriptors/custom.googleapis.com/stores/daily_sales"
Si, por ejemplo, quieres obtener el descriptor de una métrica, debes usar este nombre.
C#
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Consulta Cómo solucionar problemas de llamadas a la API si tienes lo siguiente: dificultad.
Siguiente paso: Consulta Escribe métricas definidas por el usuario.
Escribe métricas definidas por el usuario
Solo puedes escribir datos en tipos de métricas para las métricas definidas por el usuario. Para escribir tus datos, usa el método timeSeries.create
.
Cuando la serie temporal existe, este método agrega un dato nuevo a la serie temporal existente. Cuando la serie temporal no existe, este método la crea y agrega los datos.
Para escribir datos, pasa una lista de objetos TimeSeries
a timeSeries.create
.
El tamaño máximo de la lista es 200, y cada objeto de la lista debe especificar una serie temporal diferente:
- Los valores de los campos
metric
yresource
identifican un objetoTimeSeries
específico. Estos campos representan el tipo de métrica de los datos y el recurso supervisado desde el que se recopilaron los datos. - Omite los campos
metricKind
yvalueType
. Se ignoran cuando se escriben datos. Cada objeto
TimeSeries
debe contener solo un único objetoPoint
:- El valor y el intervalo temporal del dato deben ser coherentes con la definición del tipo de métrica. Para obtener información sobre los intervalos de tiempo para diferentes
similares, consulta
TimeInterval
. - El intervalo temporal del dato debe ser posterior a cualquier dato que ya pertenezca a la serie temporal.
- La hora de finalización del intervalo no debe superar las 25 horas en el pasado o 5 minutos en el futuro.
- El valor y el intervalo temporal del dato deben ser coherentes con la definición del tipo de métrica. Para obtener información sobre los intervalos de tiempo para diferentes
similares, consulta
Para escribir más de un punto en la misma serie temporal, usa una llamada al método
timeSeries.create
separada para cada punto. No escribas datos en una única serie temporal más rápido que un punto cada 5 segundos. Cuando agregas datos a diferentes series temporales, no hay límite de frecuencia.
Protocolo
Para escribir datos de métricas, usa el método timeSeries.create
.
Puedes ejecutar este método usando el widget del Explorador de APIs en la
página de referencia del método. Consulta Explorador de APIs para obtener más información.
Para escribir un dato en la métrica stores/daily_sales
creada en Creación manual de descriptores de métricas, haz lo siguiente:
- Ve a la página de referencia de
timeSeries.create
: - Proporciona los parámetros a continuación para el widget Explorador de API.
- Haz clic en el botón Ejecutar.
Usa los siguientes parámetros de muestra:
- name:
projects/[PROJECT_ID]
cuerpo de la solicitud: incluye una lista de objetos
TimeSeries
. La siguiente muestra solo tiene una serie temporal en la lista.{ "timeSeries": [ { "metric": { "type": "custom.googleapis.com/my_metric", "labels": { "my_label": "my_value" } }, "resource": { "type": "gce_instance", "labels": { "project_id": "[PROJECT_ID]", "instance_id": "1234567890123456789", "zone": "us-central1-f" } }, "points": [ { "interval": { "endTime": "2018-06-01T10:00:00-04:00" }, "value": { "doubleValue": 123.45 } } ] } ] }
C#
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Consulta Soluciona problemas de llamadas a la API si tienes dificultades.
Borra las métricas definidas por el usuario
Para borrar una métrica definida por el usuario, borra su descriptor de métrica. No puedes borrar los datos de series temporales almacenados en tu proyecto de Google Cloud. Sin embargo, borrar el descriptor de métrica hace que los datos sean inaccesibles. Los datos caducan y se borran de acuerdo con la política de retención de datos.
No puedes borrar el descriptor de métrica de una métrica integrada.
Para borrar tu descriptor de métrica, llama al
metricDescriptors.delete
.
Protocolo
Para borrar un descriptor de métricas, usa el método metricDescriptors.delete
.
Puedes ejecutar este método usando el widget del Explorador de APIs en la
página de referencia del método. Consulta el Explorador de APIs
para obtener más información.
Para borrar la métrica stores/daily_sales
creada en Creación manual de descriptores de métricas, sigue estos pasos:
- Ve a la página de referencia de
metricDescriptors.delete
: Proporciona el nombre del descriptor de métrica al widget del Explorador de API:
name:
projects/[PROJECT_ID]/metricDescriptors/custom.googleapis.com/stores/daily_sales
Haz clic en el botón Ejecutar.
C#
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Para autenticarte en Monitoring, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Consulta Soluciona problemas de llamadas a la API si tienes dificultades.
Modifica una métrica definida por el usuario
Para modificar una métrica definida por el usuario, debes actualizar el
MetricDescriptor
que define la métrica.
La única modificación admitida es agregar etiquetas.
Para agregar etiquetas a una métrica definida por el usuario existente, usa el método timeSeries.create
y, luego, incluye las etiquetas nuevas con los datos de las series temporales. Las etiquetas se agregan al descriptor de métrica cuando las etiquetas que intentas escribir son válidas y la cantidad total de etiquetas es inferior a 30.
Los datos de la serie temporal se escriben como si la etiqueta hubiera estado allí desde el principio.
Si quieres hacer algo más que agregar etiquetas nuevas, deberás borrar y volver a crear el descriptor de métrica. En este caso, perderás todos los datos de series temporales recopilados previamente para el descriptor de métrica anterior. Consulta Borra métricas definidas por el usuario para obtener más información.
No puedes cambiar el nombre de una métrica.
¿Qué sigue?
- Visualiza y administra el uso de métricas
- Lista de métricas integradas
- Lista de recursos supervisados