Configura la hora exacta para las instancias de Compute Engine de U4
En esta página, se describe cómo configurar la hora exacta para una instancia de Compute Engine de U4 y cómo configurar la supervisión para que puedas ver la precisión de la sincronización de la hora.
Cómo funciona
La solución de latencia ultrabaja (ULL) usa el protocolo de sincronización de reloj Firefly para proporcionar sincronización a nivel de nanosegundos.Google Cloud Firefly realiza automáticamente las siguientes acciones:
- Realiza una sincronización interna para sincronizar los relojes de la interfaz de red física (NIC) de todos los servidores host de instancias U4 entre sí.
- Realiza una sincronización externa para sincronizar los relojes de las NIC físicas de todos los servidores host de instancias U4 con la hora universal coordinada (UTC).
Debido a que Firefly sincroniza automáticamente los relojes de las NIC físicas de los servidores host que ejecutan instancias de U4, puedes configurar la hora precisa para tu instancia sincronizando el reloj del sistema de la instancia con el reloj de la NIC física de su servidor host.
Para obtener más información sobre Firefly, consulta la siguiente Google Cloud entrada de blog: Understanding the Firefly clock synchronization protocol (Descripción del protocolo de sincronización de reloj de Firefly).
Antes de comenzar
Antes de configurar la hora exacta para las instancias de Compute Engine de U4, consulta las siguientes secciones.
Crea una instancia de U4 con la imagen requerida
Crea una instancia de Compute Engine U4 con la imagen que proporciona Google para las pruebas. Consulta el procedimiento que corresponde a tu caso de uso:
- Para crear una instancia de U4P o U4C, consulta Crea instancias de Compute Engine de ULL.
- Para crear una instancia de U4S, consulta Crea instancias de Compute Engine que no sean de ULL para cargas de trabajo auxiliares.
Asegúrate de que no se estén ejecutando otros servicios de sincronización de reloj.
Los procedimientos de esta página usan chrony como el cliente de sincronización de reloj recomendado. Antes de comenzar, asegúrate de que no haya otros servicios de sincronización de relojes en ejecución en tu instancia, como ntpd, systemd-timesyncd o phc2sys. Las interacciones inesperadas con estos servicios pueden causar errores en la configuración de chrony.
En la versión 4.7 y posteriores de chrony, puedes verificar el registro de advertencias de chronyd para otros servicios de sincronización del reloj ejecutando el siguiente comando:
journalctl -u chronyd
Si se está ejecutando otro servicio de sincronización del reloj, el resultado incluye un mensaje de advertencia como el siguiente: System clock interference detected (another NTP client?).
Configura chrony para que se cargue solo después de que los controladores de red sean estables
En algunos casos, systemd podría cargar chrony antes de que finalice la inicialización de los controladores de la interfaz de red, lo que puede provocar que chrony no se inicie porque no puede inicializar el dispositivo de reloj de hardware PTP (PHC).
Para evitar el problema anterior, anula el archivo de unidad systemd de chrony para esperar a que los dispositivos PHC estén listos:
Ejecuta el comando de edición:
systemctl edit chronyd
Agrega la anulación que corresponde a tu tipo de instancia:
Para las instancias U4P y U4C:
[Unit] After=dev-ptp0.device dev-ptp1.device dev-ptp2.device Requires=dev-ptp0.device dev-ptp1.device dev-ptp2.device
Para las instancias U4S:
[Unit] After=dev-ptp0.device Requires=dev-ptp0.device
Reinicia el servicio. Si bien el comando
systemctl editque ejecutaste anteriormente volvió a cargar el daemon automáticamente, te recomendamos que ejecutes el siguiente comando para asegurarte de quechronyse esté ejecutando después de los cambios.systemctl restart chronyd
Configura chrony para usar el reloj de la NIC física sincronizado con Firefly
En esta sección, se describe cómo configurar chrony para sincronizar el reloj del sistema de tu instancia con el reloj de la NIC física en el servidor host de tu instancia que ya está sincronizado por Firefly.
Las interfaces de red virtuales (vNIC) de tu instancia U4, como se muestra en el SO invitado (por ejemplo, eth0), se asignan a las NIC físicas en el servidor host de la instancia. Una vNIC determinada puede acceder al reloj de la NIC física a través del dispositivo reloj de hardware PTP (PHC) correspondiente:
Los nombres de dispositivos PHC en Linux tienen el siguiente formato:
/dev/ptpNUMBER, dondeNUMBERse determina según el kernel de Linux de acuerdo con el orden de inicialización del dispositivo. Por ejemplo, consulta los siguientes nombres de dispositivos PHC:/dev/ptp0,/dev/ptp1,/dev/ptp2.Para especificar un reloj de NIC físico como la fuente de sincronización, la configuración de
chronydebe usar o resolver el dispositivo PHC correspondiente.
En cada una de las siguientes secciones, se proporcionan ejemplos de cómo configurar chrony según los requisitos anteriores. Consulta la sección que corresponde a tu tipo de instancia y versión de chrony:
- Configura
chrony4.7 y versiones posteriores en instancias de U4P y U4C - Configura
chrony4.6.1 y versiones anteriores en instancias de U4P y U4C - Configura
chrony4.7 y versiones posteriores en instancias de U4S
Configura chrony 4.7 y versiones posteriores en instancias de U4P y U4C
La versión 4.7 y las posteriores de chrony admiten la especificación de un nombre de vNIC (como eth0) como fuente de reloj y lo resuelven automáticamente en el dispositivo de reloj de hardware PTP (PHC) correspondiente que representa el reloj de la NIC física.
Para configurar la versión 4.7 y posteriores de chrony en una instancia de U4P o U4C, haz lo siguiente:
Agrega lo siguiente al archivo de configuración
chrony,/etc/chrony.conf. El archivo solo debe contener la siguiente configuración. Asegúrate de quitar o reemplazar el contenido preexistente del archivo.# Record the rate at which the system clock gains/loses time. driftfile /var/lib/chrony/drift # Allow the system clock to be stepped in the first three updates # if its offset is larger than 1 micro-second. makestep 0.0000001 3 # Specify directory for log files. logdir /var/log/chrony # Select which information is logged. log measurements statistics tracking refclocks # U4 Compute Engine instance clocks are 200ppb accurate maxclockerror 0.2 # Configure all clocks for tracking, but select only one of them as source. refclock PHC eth0:nocrossts poll -1 noselect refclock PHC eth1:nocrossts poll -1 refclock PHC eth2:nocrossts poll -1 noselect # The following lines opportunistically enable Precision Time Measurement (PTM) based clock synchronization. # Note that PTM can potentially result in a (constant) clock skew of up to 700 nanoseconds # which is not accounted for in chrony's accuracy metrics. refclock PHC eth0 poll -1 noselect refclock PHC eth1 poll -1 noselect refclock PHC eth2 poll -1 noselect
Para aplicar la configuración, reinicia
chronyejecutando el siguiente comando:systemctl restart chronyd
chronyregistra las estadísticas de sincronización del reloj en/var/log/chrony/tracking.logcon el reloj de hardware PTP deeth1como fuente de tiempo.
Configura chrony 4.6.1 y versiones anteriores en instancias de U4P y U4C
Las versiones 4.6.1 y anteriores de chrony requieren que especifiques manualmente el nombre del dispositivo de reloj de hardware PTP (PHC) en tu archivo de configuración.
Para configurar las versiones 4.6.1 y anteriores de chrony en una instancia de U4P o U4C, haz lo siguiente:
Obtén el número de índice del dispositivo PHC asociado a una vNIC. En el siguiente ejemplo, se usa
eth0.ethtool -T eth0
Revisa el resultado de
PTP Hardware Clock:NUMBER.En este ejemplo de salida, se muestra
PTP Hardware Clock: 1, que corresponde a/dev/ptp1.Time stamping parameters for eth0: Capabilities: hardware-receive software-receive software-system-clock hardware-raw-clock PTP Hardware Clock: 1 Hardware Transmit Timestamp Modes: off Hardware Receive Filter Modes: none all
Agrega lo siguiente al archivo de configuración
chrony,/etc/chrony.conf. El archivo solo debe contener la siguiente configuración. Asegúrate de quitar o reemplazar el contenido preexistente del archivo.El resultado de
ethtoolen el paso anterior mostró queeth0usa/dev/ptp1. En el siguiente ejemplo, se sincroniza el reloj del sistema con el reloj de la NIC física correspondiente paraeth0especificandorefclock PHC /dev/ptp1:nocrossts poll -1.# Record the rate at which the system clock gains/loses time. driftfile /var/lib/chrony/drift # Allow the system clock to be stepped in the first three updates # if its offset is larger than 1 micro-second. makestep 0.0000001 3 # Enable kernel synchronization of the real-time clock (RTC). rtcsync # Save NTS keys and cookies. ntsdumpdir /var/lib/chrony # Specify directory for log files. logdir /var/log/chrony # Select which information is logged. log measurements statistics tracking refclocks # U4 Compute Engine instance clocks are 200ppb accurate maxclockerror 0.2 # Configure all clocks for tracking, but select only one of them as source. refclock PHC /dev/ptp0:nocrossts poll -1 noselect refclock PHC /dev/ptp1:nocrossts poll -1 refclock PHC /dev/ptp2:nocrossts poll -1 noselect # The following lines opportunistically enable Precision Time Measurement (PTM) based clock synchronization. # Note that PTM can potentially result in a (constant) clock skew of up to 700 nanoseconds # which is not accounted for in chrony's accuracy metrics. refclock PHC /dev/ptp0 poll -1 noselect refclock PHC /dev/ptp1 poll -1 noselect refclock PHC /dev/ptp2 poll -1 noselect
Para aplicar la configuración, reinicia
chronyejecutando el siguiente comando:systemctl restart chronyd
chronyregistra las estadísticas de sincronización del reloj en/var/log/chrony/tracking.logcon el reloj de hardware PTP deeth0como fuente de tiempo.
Configura chrony 4.7 y versiones posteriores en instancias de U4S
Te recomendamos que uses las versiones 4.7 y posteriores de chrony para las instancias de U4S.
El uso de versiones anteriores puede generar errores frecuentes, ya que el dispositivo de sincronización del reloj de Compute Engine para las instancias de máquina virtual (VM) (ptp_kvm) puede provocar cambios en los números de índice de los dispositivos de reloj de hardware PTP (PHC).
Esta configuración de ejemplo para instancias U4S es similar a la que se usa para las instancias U4P y U4C, pero tiene las siguientes diferencias:
- Este ejemplo incluye una sola vNIC. Una instancia de U4S puede tener varias vNIC, pero todas están respaldadas por la misma NIC física y acceden al mismo reloj de NIC física.
- La medición de tiempo de precisión (PTM) no está disponible.
Para configurar chrony, versión 4.7 y posteriores, en una instancia de U4S, haz lo siguiente:
Agrega lo siguiente al archivo de configuración
chrony,/etc/chrony.conf. El archivo solo debe contener la siguiente configuración. Asegúrate de quitar o reemplazar el contenido preexistente del archivo.# Record the rate at which the system clock gains/loses time. driftfile /var/lib/chrony/drift # Allow the system clock to be stepped in the first three updates # if its offset is larger than 1 micro-second. makestep 0.0000001 3 # Specify directory for log files. logdir /var/log/chrony # Select which information is logged. log measurements statistics tracking refclocks # U4 Compute Engine instance clocks are 200ppb accurate maxclockerror 0.2 # Configure all clocks for tracking, but select only one of them as source. refclock PHC eth0:nocrossts poll -1
Para aplicar la configuración, reinicia
chronyejecutando el siguiente comando:systemctl restart chronyd
chronyregistra las estadísticas de sincronización del reloj en/var/log/chrony/tracking.logcon el reloj de hardware PTP deeth0como fuente de tiempo.
Verifica la configuración de chrony
Para verificar que chrony esté configurado correctamente, ejecuta el siguiente comando:
chronyc sourcestats
Una configuración correcta genera un resultado similar al siguiente:
Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev ============================================================================== PHC0 5 3 2 -0.002 0.014 +9ns 2ns PHC1 5 3 2 -0.003 0.007 -0ns 1ns PHC2 5 3 2 -0.004 0.016 +33ns 2ns PHC3 5 5 2 +0.002 0.078 +135ns 10ns PHC4 5 3 2 -0.005 0.077 +130ns 9ns PHC5 5 5 2 -0.006 0.131 +123ns 16ns
Si el comando muestra un resultado inesperado, consulta Solución de problemas.
Modifica la configuración de chrony
Si deseas modificar la NIC física con la que se sincroniza el reloj del sistema de tu instancia, puedes actualizar la configuración de la siguiente manera:
- Quita
noselectde la línea que incluye el nombre de la vNIC para la que deseas usar el reloj de la NIC física correspondiente. - Agrega
noselecta la línea que incluye el nombre de la vNIC para la que deseas dejar de usar el reloj de la NIC física correspondiente. - Para aplicar la configuración nueva, reinicia
chronyd:systemctl restart chronyd.
Supervisa la sincronización de hora
En esta sección, se describen las métricas disponibles para la sincronización de hora y cómo usarlas para supervisar la precisión de la sincronización de hora.
Métricas disponibles para la sincronización de tiempo
Puedes usar las siguientes métricas para supervisar la sincronización de la hora:
| Medida | Métrica disponible y descripción |
|---|---|
| Reloj del sistema de la instancia al reloj de la NIC física |
logging.googleapis.com/user/phc-clock-max-error
Esta métrica mide la precisión de la sincronización del reloj del sistema de la instancia con el reloj de la NIC física en su servidor host. Debes configurar esta métrica recopilándola del Agente de operaciones y creando una métrica basada en registros, como se describe en Configura una métrica personalizada para el reloj del sistema de la instancia, que también crea un panel personalizado. Además, puedes usar esta métrica en los procedimientos que se describen en Usa métricas de Cloud Monitoring. |
| Reloj de NIC física a UTC |
compute.googleapis.com/instance/time/firefly_utc_traceable_uncertainty
Esta métrica representa el límite máximo de error del reloj de la NIC física en comparación con la hora UTC real. Se informa automáticamente a Cloud Monitoring. Puedes ver esta métrica, definir políticas de alertas y crear paneles personalizados como se describe en Usa las métricas de Cloud Monitoring. |
| Estado general del reloj de la NIC física |
compute.googleapis.com/instance/time/firefly_nic_sync_healthy
Esta métrica booleana indica el estado general del reloj de la NIC física, incluida la sincronización de NIC a NIC y de NIC a UTC. Se informa automáticamente a Cloud Monitoring. Puedes ver esta métrica, definir políticas de alertas y crear paneles personalizados como se describe en Usa las métricas de Cloud Monitoring. |
Para obtener información sobre el período durante el que Cloud Monitoring retiene los datos de métricas, consulta Retención de datos en Cuotas y límites de Cloud Monitoring. Para obtener información sobre cómo exportar métricas para realizar análisis a largo plazo, consulta Exportación de métricas de Cloud Monitoring en la documentación del Cloud Architecture Center.
Configura una métrica personalizada para el reloj del sistema de la instancia
En esta sección, se proporciona un ejemplo de configuración de supervisión que hace lo siguiente:
- Configura el agente de operaciones para recopilar el registro de
chronypara la precisión de la sincronización de tu instancia - Configura Cloud Monitoring para que ingiera el registro correspondiente de todas las instancias de tu proyecto como una métrica basada en registros.
Configura el Agente de operaciones de Google Cloud en tu instancia
Para configurar el Agente de operaciones de modo que recopile la métrica necesaria para la supervisión, haz lo siguiente:
Si aún no lo hiciste, instala el Agente de operaciones en tu instancia.
Agrega la siguiente configuración al archivo
/etc/google-cloud-ops-agent/config.yaml:logging: receivers: chrony_tracking_receiver: type: files include_paths: - /var/log/chrony/tracking.log processors: chrony_tracking_processor: type: parse_regex regex: "^.*PHC.* (?<max_error>[-\d\.eE]+)$" service: pipelines: chrony_tracking_pipeline: receivers: [chrony_tracking_receiver] processors: [chrony_tracking_processor]
Reinicia el agente de operaciones ejecutando el siguiente comando:
systemctl restart google-cloud-ops-agent
Configura una métrica y un panel basados en registros en tu proyecto
Para configurar la supervisión de la sincronización de hora de las instancias de tu proyecto, ejecuta la siguiente secuencia de comandos de configuración del registro y el panel. Esta secuencia de comandos te ayuda a completar las siguientes tareas:
- Establece los permisos adecuados en la cuenta de servicio asociada con el proyecto de tu instancia. La secuencia de comandos supone que la cuenta de servicio que se usa para las instancias es la cuenta de servicio predeterminada del proyecto. Si es necesario, reemplaza
SERVICE_ACCOUNT_EMAILpor un valor diferente. - Crea una métrica basada en registros que mide la precisión de la sincronización de la hora entre el reloj del sistema de la instancia y el reloj de la NIC física en el servidor host de la instancia.
- Crea un panel que muestra la precisión de la sincronización de tiempo según la métrica.
Para realizar las tareas anteriores, ejecuta la siguiente secuencia de comandos. Una vez que se complete la ejecución de la secuencia de comandos, usa el panel que creó para ver los datos de precisión del reloj de las instancias de tu proyecto.
#!/bin/bash if [ -z "$1" ]; then echo "Usage: setup_logging.sh <project_id>" >&2 exit 1 fi PROJECT_ID="$1" PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)") SERVICE_ACCOUNT_EMAIL=${PROJECT_NUMBER}-compute@developer.gserviceaccount.com # Grant permissions: gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${SERVICE_ACCOUNT_EMAIL}" \ --role="roles/compute.instanceAdmin" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${SERVICE_ACCOUNT_EMAIL}" \ --role="roles/monitoring.metricWriter" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:${SERVICE_ACCOUNT_EMAIL}" \ --role="roles/logging.logWriter" # Configure log-based metric METRIC_CONF=' { "name": "phc-clock-max-error", "description": "Maximum error of the VM clock from the host clock exposed by ptp_kvm", "filter": "logName=~\".*/logs/chrony_tracking_receiver\"", "metricDescriptor": { "metricKind": "DELTA", "valueType": "DISTRIBUTION", "unit": "s", "labels": [ { "key": "instance_id", "valueType": "STRING", "description": "Instance ID for the source instance" } ] }, "valueExtractor": "REGEXP_EXTRACT(jsonPayload.max_error, \"(.*)\")", "bucketOptions": { "explicitBuckets": { "bounds": [ 0.0, 1.0E-6, 5.0E-6, 1.0E-5, 1.0E-4, 0.001, 0.01, 0.1, 1.0 ] } }, "labelExtractors": { "instance_id": "REGEXP_EXTRACT(resource.labels.instance_id, \"(.*)\")" } } ' echo "$METRIC_CONF" > /tmp/clock-error-metric.json gcloud logging metrics create --project=${PROJECT_ID} phc-clock-max-error --config-from-file=/tmp/clock-error-metric.json # Create a dashboard plotting the clock accuracy DASHBOARD_CONF=' { "displayName": "Chrony Accuracy", "dashboardFilters": [], "labels": {}, "mosaicLayout": { "columns": 48, "tiles": [ { "height": 28, "width": 28, "widget": { "xyChart": { "chartOptions": { "displayHorizontal": false, "mode": "COLOR" }, "dataSets": [ { "plotType": "LINE", "targetAxis": "Y1", "timeSeriesQuery": { "prometheusQuery": "(\n histogram_quantile(\n 1,\n sum by (le, instance_id, monitored_resource) (\n increase(\n logging_googleapis_com:user_phc_clock_max_error_bucket{monitored_resource=\"gce_instance\"}[1m]\n )\n )\n ) * 1000000000\n)", "unitOverride": "ns" } } ], "thresholds": [], "yAxis": { "label": "Clock Accuracy", "scale": "LINEAR" } } } } ] } } ' echo "$DASHBOARD_CONF" > /tmp/metrics-dashboard.json gcloud monitoring dashboards create --project=${PROJECT_ID} --config-from-file=/tmp/metrics-dashboard.json
Usa las métricas de Cloud Monitoring
En las siguientes secciones, se describe cómo usar las métricas de Cloud Monitoring. Puedes usar cada una de las métricas disponibles para la sincronización de tiempo en las siguientes secciones.
Además de la consola de Google Cloud , puedes crear paneles personalizados, configurar alertas y consultar las métricas a través de la API de Monitoring.
Visualiza métricas en Monitoring
En esta sección, se describe cómo ver las métricas en Monitoring.
Console
Para consultar las métricas de un recurso supervisado usando el Explorador de métricas, haz lo siguiente:
-
En la consola de Google Cloud , accede a la página leaderboard Explorador de métricas:
Acceder al Explorador de métricas
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- En la barra de herramientas de la consola de Google Cloud , selecciona tu proyecto de Google Cloud . Para las configuraciones de App Hub, selecciona el proyecto host de App Hub o el proyecto de administración de la carpeta habilitada para apps.
- En el elemento Métrica, expande el menú Seleccionar una métrica,
ingresa
VM instanceen la barra de filtros y, luego, usa los submenús para seleccionar un métrica y tipo de recurso específicos:- En el menú Recursos activos, selecciona Instancia de VM.
- Para seleccionar una métrica, usa los menús Categorías de métricas activas y Métricas activas. Para obtener una lista de las métricas disponibles, consulta Métricas disponibles para la sincronización de hora.
- Haz clic en Aplicar.
Para agregar filtros que quiten series temporales de los resultados de la consulta, usa el elemento Filtro.
- Configura cómo se ven los datos.
De forma predeterminada, la pantalla agrega las métricas de todas las instancias y las NIC físicas.
Para mostrar las métricas por NIC y por instancia, haz lo siguiente: En el elemento Agregación, selecciona Sin agregar.
Para obtener más información sobre la configuración de un gráfico, consulta elige métricas cuando uses el Explorador de métricas.
Definir políticas de alertas
En esta sección, se describe cómo definir políticas de alertas.
Cuando configures la forma en que Monitoring evalúa una condición cuando dejan de llegar datos, te recomendamos la opción Los datos faltantes se tratan como valores que incumplen la condición de la política, que ayuda a detectar la pérdida de datos silenciosa. Sin embargo, este parámetro de configuración genera alertas de falsos positivos cuando se borra una instancia.
Console
Puedes crear políticas de alertas para supervisar los valores de las métricas y recibir notificaciones cuando estas infrinjan una condición.
-
En la consola de Google Cloud , ve a la página Alertas notifications:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- Si aún no creaste canales de notificaciones y deseas recibirlas, haz clic en Editar canales de notificaciones y agrega tus canales de notificaciones. Regresa a la página Alertas después de agregar tus canales.
- En la página Alertas, elige Crear política.
- Para elegir la métrica, expande el menú Seleccionar una métrica y, luego, haz lo siguiente:
- Para limitar el menú a las entradas relevantes, ingresa
VM Instanceen la barra de filtros. Si no hay resultados después de que filtres el menú, inhabilita el botón para activar o desactivar la opción Mostrar solo recursos y métricas activos. - En Tipo de recurso, selecciona Instancia de VM.
- En Categoría de métrica, selecciona Instancia.
- En Métrica, selecciona una métrica de la lista en Métricas disponibles para la sincronización de tiempo.
- Selecciona Apply (Apply).
- Para limitar el menú a las entradas relevantes, ingresa
- Haz clic en Siguiente.
- Los parámetros de configuración de la página Configurar activador de alertas determinan cuándo se activa la alerta. Selecciona un tipo de condición y, si es necesario, índica un umbral. Para obtener más información, consulta Crea políticas de alertas de umbral de métrica.
- Haz clic en Siguiente.
- Opcional: Para agregar notificaciones a tu política de alertas, haz clic en Canales de notificaciones. En el diálogo, selecciona uno o más canales de notificaciones del menú y, luego, haz clic en Aceptar.
- Opcional: Actualiza el campo Duración del cierre automático de incidentes. Este determina cuándo Monitoring cierra los incidentes ante la ausencia de datos de métricas.
- Opcional: Haz clic en Documentación y, luego, agrega la información que deseas incluir en un mensaje de notificación.
- Haz clic en Nombre de la alerta y, luego, ingresa un nombre para la política de alertas.
- Haz clic en Crear política.
Crea paneles personalizados de Monitoring
En esta sección, se describe cómo crear paneles personalizados. Para ver un ejemplo específico que usa una consulta de PromQL, consulta Ejemplo: Crea un panel personalizado que combine métricas de precisión.
Console
-
En la consola de Google Cloud , accede a la página Paneles :
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- Haz clic en Crear panel.
- Actualiza el título del panel con un nombre descriptivo para tu panel (opcional).
Para cada widget que desees agregar a tu panel, haz clic en Agregar widget, completa el diálogo y, luego, selecciona Aplicar.
Para obtener más información sobre cómo agregar widgets, consulta las siguientes páginas:
Ejemplo: Crea un panel personalizado que combine métricas de precisión
Monitoring te permite crear paneles personalizados. Los paneles pueden usar cualquiera de las métricas disponibles para la sincronización de hora.
En esta sección, se incluye un ejemplo de consulta de PromQL que puedes pegar en un panel de Monitoring personalizado. Para obtener más información sobre PromQL, consulta PromQL para Cloud Monitoring.
La consulta de esta sección genera una métrica de precisión total combinando los siguientes elementos:
- La métrica mide la precisión del reloj del sistema de la instancia en relación con el reloj de la NIC física (
phc-clock-max-error). Es la métrica que mide la precisión del reloj de la NIC física en relación con la hora UTC (
firefly_utc_traceable_uncertainty).
Console
Sigue los pasos para acceder al editor de código de PromQL.
Ingresa la siguiente consulta en el campo de texto:
histogram_quantile( 1, sum by (le, instance_id) ( increase({"__name__"="logging.googleapis.com/user/phc-clock-max-error_bucket", monitored_resource="gce_instance"}[${__interval}]) ) ) + on(instance_id) max by (instance_id) ( max_over_time({"__name__"="compute.googleapis.com/instance/time/firefly_utc_traceable_uncertainty", monitored_resource="gce_instance"}[${__interval}]) )Haga clic en Ejecutar consulta.
Para obtener más información sobre cómo usar el editor y guardar tus gráficos, consulta Usa el editor de código para PromQL.
Solucionar problemas
Es posible que recibas resultados inesperados cuando verifiques la configuración de chrony, como el siguiente resultado que indica que chrony no se pudo iniciar:
506 Cannot talk to daemon
Para solucionar problemas, consulta los registros de journald en busca de chrony:
journalctl -u chronyd.service
En el siguiente ejemplo de resultado, se muestra un error que se produce si aplicas una configuración destinada a chrony 4.7 y versiones posteriores mientras se instala una versión anterior de chrony en tu instancia.
Feb 19 06:19:42 host-name systemd[1]: Starting chronyd.service - NTP client/server... Feb 19 06:19:42 host-name chronyd[35160]: chronyd version 4.6.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +IPV6 +DEBUG) Feb 19 06:19:42 host-name chronyd[35160]: Setting filter length for PHC0 to 1 Feb 19 06:19:42 host-name chronyd[35160]: Could not open eth0 : No such file or directory Feb 19 06:19:42 host-name chronyd[35160]: Fatal error : Could not open PHC Feb 19 06:19:42 host-name chronyd[35157]: Could not open PHC Feb 19 06:19:42 host-name systemd[1]: chronyd.service: Control process exited, code=exited, status=1/FAILURE Feb 19 06:19:42 host-name systemd[1]: chronyd.service: Failed with result 'exit-code'. Feb 19 06:19:42 host-name systemd[1]: Failed to start chronyd.service - NTP client/server.
Limitaciones
Consulta las siguientes limitaciones:
- Las métricas
firefly_utc_traceable_uncertaintyyfirefly_nic_sync_healthysolo están disponibles para las instancias de U4P y U4C. Estas métricas no están disponibles para las instancias U4S.