Consultar, exportar y almacenar registros de estado del servicio

Personalized Service Health registra eventos de estado del servicio en Cloud Logging. Registra todas las actualizaciones de la descripción, la relevancia o el estado del evento como un registro independiente.

En este documento se explica cómo ver, exportar y almacenar registros de estado del servicio.

Antes de empezar

Verify that billing is enabled for your Google Cloud project.

  1. Habilita la API Service Health en el proyecto del que quieras ver, exportar o almacenar los registros.
  2. Accede a los registros de Service Health.

Esquema de registro

Consulta la referencia del esquema de registro para ver los campos que puedes definir en tu consulta.

Ver registros de Service Health

Para ver los registros de Service Health, sigue estos pasos:

  1. Ve a la Google Cloud consola.
  2. Selecciona Operaciones > Registro > Explorador de registros.
  3. Selecciona un Google Cloud proyecto en la parte superior de la página.
  4. En el menú desplegable Nombre del registro, selecciona Estado del servicio.

    Explorador de registros

    Nombre del registro

    Aparecerá una lista de registros de type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog.

  5. Despliega una entrada de registro para ver los detalles del evento. En el siguiente ejemplo se muestra un evento típico.

    "insertId":"1pw1msgf6a3zc6",
    "timestamp":"2022-06-14T17:17:55.722035096Z",
    "receiveTimestamp":"2022-06-14T17:17:55.722035096Z",
    "logName":"projects/PROJECT_ID/logs/servicehealth.googleapis.com%2Factivity",
    "resource":{
        "type":"servicehealth.googleapis.com/Event",
        "labels":{
            "resource_container":"797731824162",
            "location":"global",
            "event_id":"U4AqrjwFQYi5fFBmyAX-Gg"
        }
    }
    "labels":{
        "new_event":"true"
        "updated_fields": "[]"
    },
    "jsonPayload":{
        "@type":"type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog",
        "category":"INCIDENT",
        "title":"We are experiencing a connectivity issue affecting Cloud SQL in us-east1, australia-southeast2.",
        "description":"We are experiencing an issue with Google Cloud infrastructure components at us-east1, australia-southeast2. Our engineering team continues to investigate the issue. We apologize to all who are affected by the disruption.",
        "updateTime":"2023-11-14T22:26:40Z",
        "endTime":"2023-11-14T22:13:20Z",
        "impactedLocations":"['us-east1','australia-southeast2']",
        "impactedProducts":"['Google Cloud SQL']",
        "impactedProductIds":"['hV87iK5DcEXKgWU2kDri']",
        "nextUpdateTime":"2023-11-14T22:40:00Z",
        "startTime":"2020-09-13T12:26:40Z",
        "state":"ACTIVE",
        "detailedState":"CONFIRMED",
        "relevance":"RELATED",
    }
    

Consultar los registros de Service Health

Puedes usar el Explorador de registros para consultar los registros de estado del servicio. Puede que necesites las siguientes referencias para crear tu consulta:

Ejemplos:

Condición Consulta
Obtener registros con una relevancia de incidente específica jsonPayload.relevance = ("IMPACTED" OR "RELATED")
Combinar varios filtros jsonPayload.impactedLocations : "us-central1" AND jsonPayload.impactedProducts : "Google Compute Engine" AND jsonPayload.state = "ACTIVE"

Exportar registros de Service Health

Puede exportar los registros de estado del servicio a cualquier destino de sumidero de Cloud Logging mediante la Google Cloud consola, la API o la CLI de gcloud. Para configurar un sumidero de Cloud Logging, consulta Configurar y gestionar sumideros.

Puede incluir y excluir registros de estado del servicio configurando los filtros de inclusión y exclusión del receptor.

Cuando defina el producto o la ubicación, utilice los valores que se encuentran en Google Cloud products y locations.

Agregar registros de estado del servicio a nivel de carpeta

Si envías los registros relacionados con el estado del servicio de todos los proyectos de una carpeta a un proyecto creado para los registros del estado del servicio, podrás hacer consultas más complejas.

Crearás un receptor a nivel de carpeta para enviar todos los registros relacionados con el estado del servicio a un nuevo proyecto de esa carpeta. Sigue estos pasos:

  1. Crea un proyecto en una carpeta. Este proyecto está asignado a los registros de Service Health.

    gcloud projects create PROJECT_ID --folder FOLDER_ID
    
  2. Crea un sumidero agregado a nivel de carpeta para los demás proyectos de la carpeta.

    gcloud logging sinks create SINK_NAME \
    SINK_DESTINATION  --include-children \
    --folder=FOLDER_ID --log-filter="LOG_FILTER"
    

    Para obtener los registros de todos los incidentes pertinentes, asigne el siguiente valor a LOG_FILTER:

    resource.type=servicehealth.googleapis.com/Event AND jsonPayload.category=INCIDENT AND jsonPayload.relevance!=NOT_IMPACTED AND jsonPayload.@type=type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog
    
  3. Define los permisos de la cuenta de servicio del receptor.

    gcloud projects add-iam-policy-binding PROJECT_ID --member=SERVICE_ACCT_NAME --role=roles/logging.bucketWriter
    
    gcloud projects add-iam-policy-binding PROJECT_ID --member=SERVICE_ACCT_NAME --role=roles/logging.logWriter
    
  4. (Opcional) Si no quieres enviar los registros al sumidero _Default, crea un segmento de registros para los registros relacionados con el estado del servicio en el proyecto.

    gcloud logging buckets create BUCKET_ID --location=LOCATION --enable-analytics --async
    

    Si ha creado un segmento de registro, cree un receptor para enviar esos registros al segmento.

    gcloud logging sinks create SINK_NAME_BUCKET \
    logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID \
    --project=PROJECT_ID --log-filter="LOG_FILTER"
    

Consultar registros de estado del servicio con BigQuery

Para consultar los registros enviados a Cloud Logging mediante BigQuery, puedes hacer lo siguiente:

  1. Crear consultas de SQL.
  2. Usar la API de BigQuery para enviar los resultados de las consultas a sistemas externos.

Sigue estos pasos:

  1. Crea un segmento de registro en el proyecto que has creado para los registros de estado del servicio.

    gcloud logging buckets create BUCKET_ID  --location=LOCATION  --enable-analytics --async
    
  2. Habilita Analíticas de registros.

    gcloud logging buckets update BUCKET_ID --location=LOCATION --enable-analytics --async
    
  3. Crea un conjunto de datos de BigQuery que se vincule al bucket con los registros de estado del servicio.

    gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION
    
  4. Si es necesario, habilita la API de BigQuery.

    gcloud services enable bigquery.googleapis.com
    

Ahora puede ejecutar consultas de SQL complejas en BigQuery, como las siguientes:

Condición Consulta
Obtener registros con una relevancia de incidente específica gcloud query --use_legacy_sql=false 'SELECT * FROM `PROJECT_ID.LINK_ID._AllLogs` WHERE JSON_VALUE(json_payload["relevance"]) = "IMPACTED"'
Obtener todos los eventos de registro secundarios de un evento principal gcloud query --use_legacy_sql=false 'SELECT * FROM `PROJECT_ID.LINK_ID._AllLogs` WHERE JSON_VALUE(json_payload["parentEvent"]) = "projects/PROJECT_ID/locations/global/events/EVENT_ID"'

Conservar eventos anteriores

Personalized Service Health ofrece una conservación limitada de los eventos.

Si necesitas conservar un registro de eventos de estado del servicio anteriores a unos meses, te recomendamos que almacenes los registros de estado del servicio.

  1. Configura los registros de estado del servicio.
  2. Almacena los registros en un segmento de registros.