En esta página, se muestra cómo personalizar el panel de supervisión del proyecto de Dataflow agregando un gráfico que consulte las métricas de Cloud Monitoring.
El panel de supervisión del proyecto te permite supervisar una colección de trabajos y ver su rendimiento y estado generales. El panel contiene un conjunto predeterminado de gráficos que son útiles para la mayoría de las cargas de trabajo. Si personalizas el panel, puedes agregar gráficos específicos para los requisitos de tu empresa.
Situación de ejemplo
Para mostrar cómo podrías personalizar el panel, supón que una organización desea hacer un seguimiento del costo estimado de los 25 trabajos principales de su proyecto.
Para este caso, supón que los trabajos tienen las siguientes características:
- Todos los trabajos son de transmisión.
- Los trabajos usan el modelo de facturación por datos procesados.
- Los trabajos guardan archivos en el disco persistente, tanto estándar (HDD) como SSD.
- Los trabajos no usan GPUs.
Selección de métricas
Se necesitan las siguientes métricas para estimar el costo de un trabajo, según los supuestos que se mencionan en la sección anterior:
Recurso | Métrica pertinente |
---|---|
CPU (CPU virtual por hora) |
job/total_vcpu_time
|
Memoria (GB por hora) |
job/total_memory_usage_time
|
Datos procesados durante el Shuffle (GB) |
job/total_streaming_data_processed
|
Uso de Persistent Disk (GB por hora, estándar y SSD) |
job/total_pd_usage_time
|
Para obtener más información, consulta Precios de Dataflow.
Para saber qué recursos están disponibles en Monitoring, consulta Tipos de recursos supervisados.
Escribe una consulta de PromQL
Para consultar las métricas de Cloud Monitoring, usa Prometheus Query Language (PromQL). En esta sección, se muestra cómo escribir una consulta de PromQL para la situación creando cláusulas más pequeñas. En esta sección, no se supone que tengas conocimientos previos de PromQL. Para obtener más información, consulta PromQL en Cloud Monitoring.
Asigna nombres de métricas a cadenas de PromQL
Para usar las métricas de Monitoring en las consultas de PromQL, debes asignar el nombre de la métrica a una cadena de PromQL de la siguiente manera:
Nombre de la métrica | Cadena de PromQL |
---|---|
job/total_vcpu_time |
dataflow_googleapis_com:job_total_vcpu_time |
job/total_memory_usage_time |
dataflow_googleapis_com:job_total_memory_usage_time |
job/total_streaming_data_processed |
dataflow_googleapis_com:job_total_streaming_data_processed
|
job/total_pd_usage_time |
dataflow_googleapis_com:job_total_pd_usage_time |
Para obtener más información, consulta Asigna métricas de Cloud Monitoring a PromQL.
Cómo compilar la consulta
Para obtener el costo estimado, calcula los precios de cada componente según el valor más actual de cada métrica. Las métricas se muestrean cada 60 segundos, por lo que, para obtener el valor más reciente, usa una función de ventana de 1 minuto y toma el valor máximo dentro de cada ventana.
Para obtener el costo de CPU estimado, primero convierte
job/total_vcpu_time
de segundos a horas. Multiplica el resultado por el precio de la CPU por CPU virtual y por hora.# ((vCPU time)[Bucket 1m] / Seconds per hour * vCPU Price) max_over_time(dataflow_googleapis_com:job_total_vcpu_time[1m]) / 3600 * CPU_PRICE
Esta fórmula proporciona el costo estimado de CPU para todos los trabajos del proyecto. Para obtener el costo de CPU estimado por trabajo, usa el operador de agregación
sum
y agrupa por ID de trabajo.sum( max_over_time(dataflow_googleapis_com:job_total_vcpu_time[1m]) / 3600 * CPU_PRICE ) by (job_id)
Para obtener el costo de memoria estimado, convierte
job/total_memory_usage_time
de segundos a horas. Multiplica el precio de la memoria por GB y por hora, y agrupa los resultados por ID de trabajo.#((Memory time)[Bucket 1m] / Seconds per hour) * Memory Price sum( max_over_time(dataflow_googleapis_com:job_total_memory_usage_time[1m]) / 3600 * MEMORY_PRICE ) by (job_id)
Para obtener el costo estimado de la reorganización, convierte
job/total_streaming_data_processed
de bytes a GB. Multiplica el precio de los datos procesados durante el shuffle por GB y agrupa los resultados por ID de trabajo.# Shuffle Billing. Reported once every 60 seconds, measured in bytes. # Formula: (Shuffle Data)[Bucket 1m] / (Bytes in GB) * (Shuffle Price) sum( max_over_time( dataflow_googleapis_com:job_total_streaming_data_processed[1m] ) / 1000000000 * SHUFFLE_PRICE ) by (job_id)
Para obtener el costo estimado del uso del Persistent Disk, indexa la etiqueta
storage_type
para separar por tipo de disco (estándar o SSD). Convierte cada valor de GB-segundos a GB-horas y agrupa los resultados por ID de trabajo.# Formula: ((Standard PD time)[Bucket 1m] / Seconds per hour) * Standard PD price sum( max_over_time( dataflow_googleapis_com:job_total_pd_usage_time{storage_type="HDD"}[1m] ) / 3600 * STANDARD_PD_PRICE ) by (job_id) # Formula: ((SSD PD time)[Bucket 1m] / Seconds per hour) * SSD PD price sum( max_over_time( dataflow_googleapis_com:job_total_pd_usage_time{storage_type="SSD"}[1m] ) / 3600 * SSD_PD_PRICE ) by (job_id)
La suma de los valores anteriores proporciona el costo estimado por trabajo. Para obtener los 25 trabajos principales, usa un filtro de K superior:
topk(25, # Sum the individual values. )
Escribe la consulta completa
A continuación, se muestra la consulta completa:
topk(25,
sum(
max_over_time(
dataflow_googleapis_com:job_total_vcpu_time[1m]) / 3600 * CPU_PRICE
)
by (job_id) +
sum(
max_over_time(
dataflow_googleapis_com:job_total_memory_usage_time[1m]) / 3600 * MEMORY_PRICE
)
by (job_id) +
sum(
max_over_time(
dataflow_googleapis_com:job_total_streaming_data_processed[1m]) / 1000000000 * SHUFFLE_PRICE
)
by (job_id) +
sum(
max_over_time(
dataflow_googleapis_com:job_total_pd_usage_time{storage_type="HDD"}[1m]) / 3600 * STANDARD_PD_PRICE
)
by (job_id) +
sum(
max_over_time(
dataflow_googleapis_com:job_total_pd_usage_time{storage_type="SSD"}[1m]) / 3600 * SSD_PD_PRICE
)
by (job_id)
)
Reemplaza las siguientes variables por los valores de la página de precios de Dataflow para tu región.
- CPU_PRICE: Precio de la CPU, por CPU virtual por hora
- MEMORY_PRICE: Precio de la memoria, por GB por hora
- SHUFFLE_PRICE: Precio de aleatorización, por GB
- STANDARD_PD_PRICE: Precio del disco persistente estándar, por GB y por hora
- SSD_PD_PRICE: Precio del disco persistente SSD, por GB y por hora
Cómo editar el panel
Si no creaste un panel personalizado para Dataflow en este proyecto, crea uno de la siguiente manera:
En la consola de Google Cloud , ve a la página Dataflow > Monitoring.
En el menú desplegable Predefinido, haz clic en Personalizar panel.
Opcional: Ingresa un nombre para el panel en el cuadro Nombre de la vista personalizada.
Si ya creaste un panel personalizado, sigue estos pasos para editarlo:
En la consola de Google Cloud , ve a la página Dataflow > Monitoring.
En el menú desplegable Predefinido, selecciona el panel personalizado.
Haz clic en
Editar panel.
Cómo agregar un gráfico de métricas
Para agregar un gráfico de métricas al panel, sigue estos pasos:
- Haz clic en Agregar widget.
- En el panel Agregar widget, selecciona Métrica.
- En el cuadro Título del widget, ingresa un título para el gráfico, como
Estimated cost (top 25)
. - Haz clic en PROMQL.
- Pega la consulta de PromQL que se mostró anteriormente.
- Haz clic en Ejecutar consulta.
- Haz clic en Aplicar.
- Opcional: Arrastra el gráfico para colocarlo en el panel.
¿Qué sigue?
- Agrega una línea de referencia para que puedas ver cuándo una métrica supera un umbral predefinido.
- Aprende sobre PromQL.
- Obtén más información sobre los paneles.