Definir un microservicio

En este documento, se describe cómo crear servicios y servicios personalizados para algunos recursos, como GKE y Cloud Run.

En Cloud Monitoring, un servicio es una construcción que puedes asociar con los SLO y las políticas de alertas. Varios de los recursos para los que puedes crear servicios de Monitoring también se denominan servicios, pero con diferentes significados, como servicios de GKE o servicios de Cloud Run.

Monitoring puede reconocer los servicios basados en GKE y Cloud Run como candidatas para la supervisión. Para crear servicios por ellos, debes indicar qué candidatos quieres que se traten como servicios de Monitoring. Monitoring crea la infraestructura necesaria por ti.

También puedes definir servicios personalizados arbitrarios.

Identifica o crea un servicio

Para identificar los servicios candidatos o crear servicios personalizados, ve al panel Definir servicio:

  1. En la consola de Google Cloud, ve a la página  SLO:

    Ir a SLO

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. En la página Descripción general de los servicios, realiza una de las siguientes acciones:

    • Haz clic en Definir servicio.

    • En el panel Estado actual, haz clic en el vínculo Definir servicio:

      Crea servicios personalizados y servicios identificados por el usuario con **Definir servicio**.

En el panel Definir servicio, puedes hacer lo siguiente:

  • Crear servicios a partir de una lista de servicios candidatos
  • Definir servicios personalizados

En las siguientes secciones, se describen estas opciones.

Crea servicios.

Cloud Monitoring puede identificar posibles servicios de los siguientes tipos:

  • Servicios de Cloud Service Mesh
  • Istio en los servicios de Google Kubernetes Engine
  • Servicios de App Engine
  • Espacios de nombres de GKE
  • Servicios de GKE
  • Cargas de trabajo de GKE
  • Servicio de Cloud Run

Dado que puede haber muchos de estos posibles servicios, Monitoring no da por sentado que desees que todos se traten como servicios con SLO. Para indicar cuáles de los posibles servicios deben tratarse como servicios en Monitoring, usa la consola de Google Cloud o la API.

Usa la consola de Google Cloud para crear servicios

Para crear un servicio con la consola de Google Cloud, haz lo siguiente:

  1. En la página Descripción general de los servicios, haz clic en Definir el servicio.

  2. Selecciona Candidatos al servicio.

    Los servicios potenciales se enumeran en la pestaña **Candidatos al servicio**.

    Es posible que haya una gran cantidad de servicios candidatos en la lista. Puedes filtrar la lista de la siguiente manera:

    1. Haz clic en  Tabla de filtros. Se muestra una lista de opciones de filtro.

    2. Selecciona una de las opciones de la lista de filtros. La opción seleccionada aparecerá en la barra de filtros.

    3. Haz clic junto a la opción en la barra de filtros y comienza a escribir. Los valores que coinciden se proporcionan en una lista. Selecciona un valor de la lista.

  3. Haz clic en un servicio candidato de la lista de servicios posibles.

    Cuando haces clic en una entrada, se completan automáticamente los siguientes campos:

    • El nombre visible se configura como el nombre de la entrada en la lista. Puedes cambiar este valor.

    • A partir del candidato se genera un bloque de código JSON para la configuración del nuevo servicio. No cambies este valor

  4. Haz clic en Enviar. Cuando se crea el servicio, se muestra una notificación de Correcto.

Usa la API para crear un servicio

También puedes crear servicios mediante la API de SLO, que forma parte de la API de Cloud Monitoring.

Si deseas crear un servicio de manera programática, publica un objeto de configuración como uno de los siguientes en el método services.create:

Espacio de nombres de GKE

Usa la estructura GkeNamespace, por ejemplo:

{
  "displayName": "test-kube-namespace",
  "gkeNamespace": {
    "location": "us-central1-c",
    "clusterName": "cluster-1",
    "namespaceName": "test-kube-namespace"
  }
}

Servicio de GKE

Usa la estructura GkeService, por ejemplo:

{
  "displayName": "test-kube-service",
  "gkeService": {
    "location": "us-central1-c",
    "clusterName": "cluster-1",
    "namespaceName": "kube-system",
    "serviceName": "test-kube-service"
  }
}

Carga de trabajo de GKE

Usa la estructura GkeWorkload, por ejemplo:

{
  "displayName": "frontend-a",
  "gkeWorkload": {
    "location": "us-central1-b",
    "clusterName": "cluster-2",
    "namespaceName": "default",
    "topLevelControllerType": "Deployment",
    "topLevelControllerName": "frontend-a"
  }
}

Cloud Run

Usa la estructura CloudRun, por ejemplo:

{
  "displayName": "test-cloudrun-service",
  "cloudRun": {
    "serviceName": "test-cloudrun-service",
    "location": "us-central1"
  }
}

Cloud Service Mesh

Usa la estructura MeshIstio, por ejemplo:

{
  "displayName": "test-mesh-istio-service",
  "meshIstio": {
    "meshUid": "mesh-identifier"
    "serviceName": "test-mesh-istio-service",
    "serviceNamespace": "default"
  }
}

Istio on GKE

Usa la estructura clusterIstio, por ejemplo:

{
  "displayName": "test-cluster-istio-service",
  "clusterIstio": {
    "serviceName": "test-cloud-service",
    "clusterName": "cluster-2",
    "serviceNamespace": "default",
    "location": "us-central1"
  }
}

App Engine

Usa la estructura AppEngine, por ejemplo:

{
  "displayName": "test-mesh-istio-service",
  "appEngine": {
    ""moduleId": "id-of-the-service"
  }
}

Para obtener más información sobre cómo administrar servicios de manera programática, consulta los siguientes documentos:

Crea un servicio personalizado

Cuando ningún otro tipo de servicio satisfaga tus necesidades, crea un servicio personalizado. Con un servicio personalizado, puedes agrupar de forma arbitraria los SLO de una manera que sea significativa para tu entorno o crear SLO en métricas empresariales que no correspondan a un microservicio existente.

Usa la consola de Google Cloud para crear un servicio personalizado

Para definir un servicio personalizado mediante la consola de Google Cloud, haz lo siguiente:

  1. Haz clic en Definir servicio en la página Descripción general de los servicios para abrir el panel Definir servicio.

  2. Selecciona Servicio personalizado.

    Usa la pestaña **Servicio personalizado** para definir servicios arbitrarios.

  3. Ingresa un nombre visible para tu servicio personalizado.

  4. Haz clic en Enviar. Cuando se crea el servicio, se muestra una notificación de Correcto.

Usa la API para crear un servicio personalizado

Para definir un servicio personalizado mediante la API de SLO, envía un objeto de configuración Custom como el siguiente al método services.create:

{
  "displayName": "hello-world-service",
  "custom": {}
}

Para obtener más información sobre cómo administrar servicios de manera programática, consulta Trabaja con la API.

¿Qué sigue?

Después de identificar o crear un servicio nuevo, puedes hacer lo siguiente:

  • Crear un SLO para el servicio nuevo. Debes definir por lo menos un SLO para el servicio nuevo a fin de que este sea útil. Para obtener más información, consulta Crea un SLO.
  • Ir al panel del servicio nuevo. En el caso de un servicio nuevo, el panel estará vacío, pero puedes definir los SLO desde el panel. Para obtener más información, consulta Usa los paneles de microservicios.