Consulta, exporta y almacena registros de Service Health

Personalized Service Health registra los 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 distinto.

En este documento, se explica cómo ver, exportar y almacenar registros de Service Health.

Antes de comenzar

Verifica que la facturación esté habilitada para tu Google Cloud proyecto.

  1. Habilita la API de Service Health para el proyecto para el que deseas ver, exportar o almacenar registros.
  2. Obtén acceso a los registros de Service Health.

Esquema de registro

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

Visualiza los registros de Service Health

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

  1. En la Google Cloud consola de, accede a la página Explorador de registros.

    Ir al Explorador de registros

  2. Selecciona un Google Cloud proyecto en la parte superior de la página.

  3. En el menú desplegable Log name, selecciona Service Health.

    Explorador de registros

    Nombre del registro

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

  4. Expande 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",
    }
    

Consulta los registros de Service Health

Puedes usar el Explorador de registros para consultar los registros de Service Health. Es posible que necesites las siguientes referencias para compilar tu consulta:

Ejemplos:

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

Exporta los registros de Service Health

Puedes exportar registros de Service Health a cualquier destino del receptor de Cloud Logging con la Google Cloud consola, la API o gcloud CLI. Para configurar un receptor de Cloud Logging, consulta Configura y administra receptores.

Puedes incluir y excluir registros de Service Health si configuras los filtros de inclusión y exclusión para el receptor.

Cuando configures el producto o la ubicación, usa los valores que se encuentran en Google Cloud productos y ubicaciones.

Agrega registros de Service Health a nivel de carpeta

Si envías registros relacionados con Service Health de todos los proyectos de una carpeta a un proyecto creado para los registros de Service Health, podrás realizar consultas más complejas sobre ellos.

Crearás un receptor a nivel de carpeta para enviar todos los registros relacionados con Service Health a un proyecto nuevo en esa carpeta. Puedes hacer lo siguiente:

  1. Crea un proyecto nuevo en una carpeta. Este proyecto se asigna a los registros de Service Health.

    gcloud projects create PROJECT_ID --folder FOLDER_ID
    
  2. Crea un receptor agregado a nivel de carpeta para los otros proyectos de la carpeta.

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

    Para obtener registros de todos los incidentes pertinentes, establece el valor de LOG_FILTER en lo siguiente:

    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. Establece permisos para 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 deseas enviar los registros al receptor _Default, crea un bucket de registros para los registros relacionados con Service Health en el proyecto.

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

    Si creaste un bucket de registros, crea un receptor para enviar esos registros al bucket.

    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"
    

Consulta los registros de Service Health con BigQuery

Para consultar los registros enviados a Cloud Logging con 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

Puedes hacer lo siguiente:

  1. Crea un bucket de registros en el proyecto que creaste para los registros de Service Health.

    gcloud logging buckets create BUCKET_ID  --location=LOCATION  --enable-analytics --async
    
  2. Habilita Estadísticas de observabilidad.

    gcloud logging buckets update BUCKET_ID --location=LOCATION --enable-analytics --async
    
  3. Crea un nuevo conjunto de datos de BigQuery que se vincule al bucket con registros de Service Health.

    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 puedes ejecutar consultas de SQL complejas en BigQuery, como las siguientes:

Condición Consulta
Obtén 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"'
Obtén todos los eventos de registro secundarios para un evento superior 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"'

Conserva eventos anteriores

Personalized Service Health proporciona una retención limitada de eventos.

Si necesitas conservar un registro de eventos de estado del servicio anteriores más allá de unos meses, te recomendamos que almacenes los registros de Service Health.

  1. Configura los registros de Service Health.
  2. Almacena registros en un bucket de registros.