Configurar a hora exata para instâncias do Compute Engine U4
Nesta página, descrevemos como configurar a hora exata para uma instância do Compute Engine U4 e como configurar o monitoramento para que você possa conferir a precisão da sincronização de horário.
Como funciona
A solução de latência ultrabaixa (ULL)Google Cloud usa o protocolo de sincronização de relógio Firefly para fornecer sincronização no nível de nanossegundos. O Firefly faz o seguinte automaticamente:
- Realiza uma sincronização interna para sincronizar os relógios da interface de rede física (NIC) de todos os servidores host da instância U4 entre si.
- Realiza a sincronização externa para sincronizar os relógios da placa de rede (NIC) física de todos os servidores host da instância U4 com o horário universal coordenado (UTC).
Como os relógios NIC físicos dos servidores host que executam instâncias U4 são sincronizados automaticamente pelo Firefly, é possível configurar a hora exata para sua instância sincronizando o relógio do sistema da instância com o relógio NIC físico do servidor host.
Para mais informações sobre o Firefly, consulte a seguinte postagem do Google Cloud blog: Entenda o protocolo de sincronização de relógio do Firefly.
Antes de começar
Antes de configurar a hora exata para instâncias do Compute Engine U4, consulte as seções a seguir.
Criar uma instância U4 com a imagem necessária
Crie uma instância do Compute Engine U4 usando a imagem fornecida pelo Google para testes. Consulte o procedimento que corresponde ao seu caso de uso:
- Para criar uma instância U4P ou U4C, consulte Criar instâncias do Compute Engine de ULL.
- Para criar uma instância do U4S, consulte Criar instâncias do Compute Engine não ULL para cargas de trabalho auxiliares.
Verifique se nenhum outro serviço de sincronização de relógio está em execução.
Os procedimentos nesta página usam chrony como
o cliente de sincronização de relógio recomendado. Antes de começar, verifique se não há outros serviços de sincronização de relógio em execução na instância, como ntpd, systemd-timesyncd ou phc2sys. Interações inesperadas com esses serviços podem causar erros na configuração do chrony.
No chrony versão 4.7 e mais recentes, é possível verificar o registro de avisos do chronyd para
outros serviços de sincronização de relógio executando o seguinte comando:
journalctl -u chronyd
Se outro serviço de sincronização de relógio estiver em execução, a saída vai incluir uma mensagem de aviso como esta: System clock interference detected (another NTP client?).
Configurar o chrony para carregar somente depois que os drivers de rede estiverem estáveis
Em alguns casos, o systemd pode carregar o chrony antes que os drivers de interface de rede
terminem a inicialização, o que pode fazer com que o chrony não seja iniciado porque
não é possível inicializar o dispositivo
PTP hardware clock (PHC).
Para evitar o problema anterior, substitua o arquivo de unidade systemd de chrony para aguardar
que os dispositivos PHC estejam prontos:
Execute o comando de edição:
systemctl edit chronyd
Adicione a substituição que corresponde ao seu tipo de instância:
Para instâncias U4P e U4C:
[Unit] After=dev-ptp0.device dev-ptp1.device dev-ptp2.device Requires=dev-ptp0.device dev-ptp1.device dev-ptp2.device
Para instâncias U4S:
[Unit] After=dev-ptp0.device Requires=dev-ptp0.device
Reinicie o serviço. Embora o comando
systemctl editexecutado anteriormente tenha recarregado automaticamente o daemon, recomendamos que você execute o comando a seguir para garantir que ochronyesteja em execução após as mudanças.systemctl restart chronyd
Configure o chrony para usar o relógio da placa de rede física sincronizado com o Firefly.
Nesta seção, descrevemos como configurar o chrony para sincronizar o
relógio do sistema da sua instância com o relógio da NIC física no
servidor host da instância, que já está sincronizado pelo Firefly.
As interfaces de rede virtual (vNICs) da instância U4, conforme mostrado no SO convidado (como eth0), são mapeadas para NICs físicas no servidor host da instância. Uma determinada vNIC pode acessar o relógio da NIC física usando o dispositivo relógio de hardware PTP (PHC) correspondente:
Os nomes de dispositivos PHC no Linux têm o seguinte formato:
/dev/ptpNUMBER, em queNUMBERé determinado pelo kernel do Linux de acordo com a ordem de inicialização do dispositivo. Por exemplo, confira os seguintes nomes de dispositivos PHC:/dev/ptp0,/dev/ptp1,/dev/ptp2.Para especificar um clock de NIC físico como a origem da sincronização, a configuração
chronyprecisa usar ou resolver o dispositivo PHC correspondente.
Cada uma das seções a seguir oferece exemplos de como configurar chrony de acordo com os requisitos anteriores. Consulte a seção que corresponde ao tipo de instância e à versão do chrony:
- Configurar o
chrony4.7 e versões mais recentes em instâncias U4P e U4C - Configurar o
chrony4.6.1 e versões anteriores em instâncias U4P e U4C - Configurar o
chrony4.7 e versões mais recentes em instâncias U4S
Configurar o chrony 4.7 e versões mais recentes em instâncias U4P e U4C
O chrony versão 4.7 e mais recente permite especificar um nome de vNIC (como eth0)
como a origem do relógio e o resolve automaticamente para o dispositivo de relógio de hardware PTP (PHC) correspondente que representa o relógio da NIC física.
Para configurar o chrony versão 4.7 e mais recentes em uma instância U4P ou U4C, faça o seguinte:
Adicione o seguinte ao arquivo de configuração
chrony,/etc/chrony.conf. O arquivo precisa conter apenas a seguinte configuração. Remova ou substitua qualquer conteúdo pré-existente do arquivo.# 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 a configuração, reinicie o
chronyexecutando o seguinte comando:systemctl restart chronyd
O
chronyregistra estatísticas de sincronização de relógio em/var/log/chrony/tracking.logusando o relógio de hardware PTP deeth1como fonte de tempo.
Configurar o chrony 4.6.1 e versões anteriores em instâncias U4P e U4C
As versões 4.6.1 e anteriores do chrony exigem que você especifique manualmente o nome do dispositivo de clock de hardware PTP (PHC) no arquivo de configuração.
Para configurar as versões 4.6.1 e anteriores do chrony em uma instância U4P ou U4C, faça o seguinte:
Recebe o número de índice do dispositivo PHC associado a uma vNIC. O exemplo a seguir usa
eth0:ethtool -T eth0
Analise a saída de
PTP Hardware Clock:NUMBEREste exemplo de saída mostra
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
Adicione o seguinte ao arquivo de configuração
chrony,/etc/chrony.conf. O arquivo precisa conter apenas a seguinte configuração. Remova ou substitua qualquer conteúdo pré-existente do arquivo.A saída
ethtoolna etapa anterior mostrou queeth0usa/dev/ptp1. O exemplo a seguir sincroniza o relógio do sistema com o relógio da NIC física correspondente paraeth0especificando:refclock 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 a configuração, reinicie o
chronyexecutando o seguinte comando:systemctl restart chronyd
O
chronyregistra estatísticas de sincronização de relógio em/var/log/chrony/tracking.logusando o relógio de hardware PTP deeth0como fonte de tempo.
Configurar o chrony 4.7 e versões mais recentes em instâncias U4S
Recomendamos usar as versões 4.7 e mais recentes do chrony para instâncias U4S.
O uso de versões anteriores pode resultar em erros frequentes porque o dispositivo de sincronização de relógio do Compute Engine para instâncias de máquina virtual (VM) (ptp_kvm) pode causar mudanças nos números de índice dos dispositivos de relógio de hardware PTP (PHC).
Este exemplo de configuração para instâncias U4S é semelhante ao usado para instâncias U4P e U4C, mas tem as seguintes diferenças:
- Este exemplo inclui uma única vNIC. Uma instância do U4S pode ter várias vNICs, mas todas elas são apoiadas pela mesma NIC física e acessam o mesmo clock de NIC física.
- A medição de tempo de precisão (PTM) não está disponível.
Para configurar o chrony versão 4.7 e mais recentes em uma instância do U4S, faça o seguinte:
Adicione o seguinte ao arquivo de configuração
chrony,/etc/chrony.conf. O arquivo precisa conter apenas a seguinte configuração. Remova ou substitua qualquer conteúdo pré-existente do arquivo.# 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 a configuração, reinicie o
chronyexecutando o seguinte comando:systemctl restart chronyd
O
chronyregistra estatísticas de sincronização de relógio em/var/log/chrony/tracking.logusando o relógio de hardware PTP deeth0como fonte de tempo.
Verificar a configuração do chrony
Para verificar se o chrony está configurado corretamente, execute o seguinte comando:
chronyc sourcestats
Uma configuração bem-sucedida resulta em uma saída semelhante a esta:
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
Se o comando retornar uma saída inesperada, consulte Solução de problemas.
Modificar a configuração do chrony
Se você quiser modificar qual NIC física sincronizar com o relógio do sistema da sua instância, atualize a configuração da seguinte maneira:
- Remova
noselectda linha que inclui o nome da vNIC para a qual você quer usar o clock da NIC física correspondente. - Adicione
noselectà linha que inclui o nome da vNIC para a qual você quer parar de usar o clock da NIC física correspondente. - Aplique a nova configuração reiniciando
chronyd:systemctl restart chronyd.
Monitorar a sincronização de horário
Esta seção descreve as métricas disponíveis para sincronização de tempo e como usá-las para monitorar a precisão da sincronização.
Métricas disponíveis para sincronização de tempo
É possível usar as seguintes métricas para monitorar a sincronização de tempo:
| Medição | Métrica e descrição disponíveis |
|---|---|
| Relógio do sistema da instância para o relógio da NIC física |
logging.googleapis.com/user/phc-clock-max-error
Essa métrica mede a precisão da sincronização do relógio do sistema da instância com o relógio da placa de rede (NIC) física no servidor host. Configure essa métrica coletando-a do Agente de operações e criando uma métrica com base em registros, conforme descrito em Configurar uma métrica personalizada para o relógio do sistema da instância, que também cria um painel personalizado. Além disso, é possível usar essa métrica nos procedimentos descritos em Usar métricas do Cloud Monitoring. |
| Relógio da NIC física para UTC |
compute.googleapis.com/instance/time/firefly_utc_traceable_uncertainty
Essa métrica representa o limite máximo de erro do relógio da NIC física em comparação com o horário UTC real. Ele é informado automaticamente ao Cloud Monitoring. Você pode ver essa métrica, definir políticas de alertas e criar painéis personalizados, conforme descrito em Usar métricas do Cloud Monitoring. |
| Status geral de integridade do clock da NIC física |
compute.googleapis.com/instance/time/firefly_nic_sync_healthy
Essa métrica booleana indica o estado geral de integridade do clock da NIC física, incluindo a sincronização de NIC para NIC e de NIC para UTC. Ele é informado automaticamente ao Cloud Monitoring. Você pode ver essa métrica, definir políticas de alertas e criar painéis personalizados, conforme descrito em Usar métricas do Cloud Monitoring. |
Para informações sobre o período em que o Cloud Monitoring retém dados de métricas, consulte Retenção de dados em Cotas e limites do Cloud Monitoring. Para informações sobre como exportar métricas para análise de longo prazo, consulte Exportação de métricas do Cloud Monitoring na documentação do Centro de arquitetura do Cloud.
Configurar uma métrica personalizada para o relógio do sistema da instância
Esta seção mostra um exemplo de configuração de monitoramento que faz o seguinte:
- Configura o Agente de operações para coletar o registro do
chronypara precisão da sincronização na sua instância. - Configura o Cloud Monitoring para ingerir o registro correspondente de todas as instâncias no projeto como uma métrica com base em registros.
Configurar o agente de operações do Google Cloud na sua instância
Para configurar o Agente de operações para coletar a métrica necessária para o monitoramento, faça o seguinte:
Se ainda não tiver feito isso, instale o Agente de operações na sua instância.
Adicione a seguinte configuração ao arquivo
/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]
Reinicie o Agente de operações executando o seguinte comando:
systemctl restart google-cloud-ops-agent
Configurar uma métrica e um painel com base em registros no seu projeto
Para configurar o monitoramento da sincronização de tempo das instâncias no seu projeto, execute o seguinte script de configuração de geração de registros e painel. Esse script ajuda você a concluir as seguintes tarefas:
- Ele define as permissões adequadas na conta de serviço associada ao projeto da instância. O script pressupõe que a conta de serviço usada
para as instâncias é a conta de serviço padrão do projeto. Se necessário, substitua
SERVICE_ACCOUNT_EMAILpor um valor diferente. - Ela cria uma métrica com base em registros que mede a precisão da sincronização de tempo entre o relógio do sistema da instância e o relógio da placa de rede (NIC) física no servidor host da instância.
- Ele cria um painel que mostra a precisão da sincronização de tempo com base na métrica.
Para realizar as tarefas anteriores, execute o script a seguir. Depois que o script terminar de ser executado, use o painel criado para conferir os dados de precisão do relógio das instâncias do projeto.
#!/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
Usar métricas do Cloud Monitoring
As seções a seguir descrevem como usar as métricas do Cloud Monitoring. Você pode usar cada uma das métricas disponíveis para sincronização de tempo nas seções a seguir.
Além do console do Google Cloud , é possível criar painéis personalizados, configurar alertas e consultar as métricas usando a API Monitoring.
Ver métricas no Monitoring
Nesta seção, descrevemos como visualizar métricas no Monitoring.
Console
Para visualizar as métricas de um recurso monitorado usando o Metrics Explorer, faça o seguinte:
-
No console Google Cloud , acesse a página do leaderboard Metrics explorer:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Na barra de ferramentas do console Google Cloud , selecione seu projeto Google Cloud . Para configurações do App Hub, selecione o projeto host do App Hub ou o projeto de gerenciamento da pasta habilitada para apps.
- No elemento Metric, expanda o menu Selecionar uma métrica,
digite
VM instancena barra de filtro e use os submenus para selecionar um tipo de recurso e métrica específicos:- No menu Recursos ativos, selecione Instância de VM.
- Para selecionar uma métrica, use os menus Categorias de métricas ativas e Métricas ativas. Para uma lista de métricas disponíveis, consulte Métricas disponíveis para sincronização de tempo.
- Clique em Aplicar.
Para adicionar filtros que removem séries temporais dos resultados da consulta, use o elemento Filtro.
- Configure a visualização dos dados.
Por padrão, a tela agrega as métricas de todas as instâncias e NICs físicas.
Para mostrar métricas por NIC e por instância, faça o seguinte: no elemento Agregação, selecione Não agregado.
Para mais informações sobre como configurar um gráfico, consulte Selecionar métricas ao usar o Metrics Explorer.
Definir políticas de alertas
Nesta seção, descrevemos como definir políticas de alertas.
Ao configurar como o Monitoring avalia uma condição quando os dados param de chegar, recomendamos a opção Pontos de dados ausentes tratados como valores que violam a condição da política, que ajuda a capturar a perda silenciosa de dados. No entanto, essa configuração causa alertas falsos positivos quando uma instância é excluída.
Console
É possível criar políticas de alertas para monitorar os valores das métricas e receber notificações quando elas violarem uma condição.
-
No console do Google Cloud , acesse a página notifications Alertas:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Se você ainda não criou canais de notificação e desejar recebê-las, clique em Editar canais de notificação e adicione seus canais. Retorne para a página Alertas depois de adicionar seus canais.
- Na página Alertas, clique em Criar política.
- Para selecionar a métrica, expanda o menu Selecionar uma métrica e faça isto:
- Para limitar o menu a entradas relevantes, insira
VM Instancena barra de filtros. Se não houver resultados depois de filtrar o menu, desative a opção Mostrar somente recursos e métricas ativos. - Em Tipo de recurso, selecione Instância de VM.
- Em Categoria da métrica, selecione Instância.
- Em Métrica, selecione uma opção na lista em Métricas disponíveis para sincronização de tempo.
- Selecione Apply.
- Para limitar o menu a entradas relevantes, insira
- Clique em Próxima.
- As configurações da página Configurar acionador de alertas determinam quando o alerta é acionado. Selecione um tipo de condição e, se necessário, especifique um limite. Para mais informações, confira Criar políticas de alertas com limites de métricas.
- Clique em Próxima.
- Opcional: para adicionar notificações à política de alertas, clique em Canais de notificação. Na caixa de diálogo, selecione um ou mais canais de notificação no menu e clique em OK.
- Opcional: atualize a Duração do fechamento automático do incidente. Este campo determina quando o Monitoring encerrará incidentes na ausência de dados de métrica.
- Opcional: clique em Documentação e adicione as informações que você deseja incluir em uma mensagem de notificação.
- Clique em Nome do alerta e insira um nome para a política de alertas.
- Clique em Criar política.
Criar painéis personalizados do Monitoring
Esta seção descreve como criar painéis personalizados. Para um exemplo específico que usa uma consulta PromQL, consulte Exemplo: criar um painel personalizado que combine métricas de acurácia.
Console
-
No console Google Cloud , acesse a página Painéis:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Clique em Criar painel.
- Opcional: atualize o título do painel com um nome descritivo.
Para cada widget que você quer adicionar ao painel, clique em Adicionar widget, preencha a caixa de diálogo e selecione Aplicar.
Para mais informações sobre como adicionar widgets, consulte as seguintes páginas:
Exemplo: criar um painel personalizado que combine métricas de acurácia
O Monitoring permite a criação de painéis personalizados. Os painéis podem usar qualquer uma das métricas disponíveis para sincronização de tempo.
Esta seção contém um exemplo de consulta PromQL que pode ser colada em um painel personalizado do Monitoring. Para mais informações sobre o PromQL, consulte PromQL para Cloud Monitoring.
A consulta nesta seção gera uma métrica de acurácia total combinando o seguinte:
- A métrica mede a precisão do relógio do sistema da instância em relação ao relógio da NIC física (
phc-clock-max-error). a métrica que mede a precisão do relógio da placa de rede (NIC) física em relação ao UTC (
firefly_utc_traceable_uncertainty)
Console
Siga as etapas para acessar o editor de código do PromQL.
Digite a seguinte consulta no 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}]) )Selecione Executar consulta.
Para mais informações sobre como usar o editor e salvar seus gráficos, consulte Usar o editor de código para PromQL.
Resolver problemas
Você pode receber uma saída inesperada ao verificar a configuração do chrony,
como a saída a seguir, que indica que o chrony não foi iniciado:
506 Cannot talk to daemon
Para ajudar na solução de problemas, verifique os registros de journald para chrony:
journalctl -u chronyd.service
O exemplo de saída a seguir mostra um erro que ocorre se você aplicar uma
configuração destinada ao chrony 4.7 e versões mais recentes enquanto uma versão
anterior do chrony está instalada na sua instância.
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.
Limitações
Confira as seguintes limitações:
- As métricas
firefly_utc_traceable_uncertaintyefirefly_nic_sync_healthyestão disponíveis apenas para instâncias U4P e U4C. Essas métricas não estão disponíveis para instâncias U4S.