本文档介绍如何为 GKE 和 Cloud Run 等一些资源创建自定义服务和相关服务。
在 Cloud Monitoring 中,服务是一种您可以与 SLO 和提醒政策关联的构造。您可以为其创建 Monitoring 服务的一些资源也称为“服务”,但含义不同,例如:GKE 服务或 Cloud Run 服务。
Monitoring 可以将基于 GKE 和 Cloud Run 的服务识别为 Monitoring 的候选服务。如需为它们创建服务,您需要指明哪些候选服务被视为 Monitoring 服务;Monitoring 会为您创建必要的基础架构。
您还可以定义任意自定义服务。
确定或创建服务
如需确定候选服务或创建自定义服务,请转到定义服务窗格:
-
在 Google Cloud 控制台中,转到 SLO 页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
在服务概览页面上,执行以下任一操作:
点击 add 定义服务。
在当前状态窗格中,点击定义服务链接:
在定义服务窗格中,您可以执行以下操作:
- 从候选服务列表创建服务。
- 定义自定义服务。
以下部分介绍了这些选项。
创建服务
Cloud Monitoring 可识别以下类型的潜在服务:
- Cloud Service Mesh 服务
- Google Kubernetes Engine 服务上的 Istio
- App Engine 服务
- GKE 命名空间
- GKE 服务
- GKE 工作负载
- Cloud Run 服务
由于可能有多个这样的潜在服务,因此 Monitoring 不会认为您要将它们都被视为使用 SLO 的服务。如需指明 Monitoring 应将哪些潜在服务视为服务,您可以使用 Google Cloud 控制台或 API。
使用 Google Cloud 控制台创建服务
如需使用 Google Cloud 控制台创建服务,请执行以下操作:
在服务概览页面上,点击定义服务。
选择候选服务。
列表中可能包含大量候选服务。您可以按如下方式过滤列表:
点击 filter_list 过滤条件表。此时将显示过滤条件选项列表。
从过滤条件列表中选择一个选项。选中的选项将显示在过滤栏中。
点击过滤条件栏的选项旁边,然后开始输入内容。列表中提供了匹配的值。从列表中选择一个值。
点击潜在服务列表中的候选服务。
点击条目时,系统将为您填写以下字段:
显示名称设置为列表中的条目名称。您可以更改此值。
根据候选服务生成用于配置新服务的 JSON 代码块。请勿更改此值。
点击提交。创建服务后,系统将显示成功通知。
使用 API 创建服务
您还可以使用 SLO API(属于 Cloud Monitoring API)创建服务。
要以编程方式创建服务,请将如下配置对象发布到 services.create
方法:
GKE 命名空间
使用 GkeNamespace
结构,例如:
{ "displayName": "test-kube-namespace", "gkeNamespace": { "location": "us-central1-c", "clusterName": "cluster-1", "namespaceName": "test-kube-namespace" } }
GKE 服务
使用 GkeService
结构,例如:
{ "displayName": "test-kube-service", "gkeService": { "location": "us-central1-c", "clusterName": "cluster-1", "namespaceName": "kube-system", "serviceName": "test-kube-service" } }
GKE 工作负载
使用 GkeWorkload
结构,例如:
{ "displayName": "frontend-a", "gkeWorkload": { "location": "us-central1-b", "clusterName": "cluster-2", "namespaceName": "default", "topLevelControllerType": "Deployment", "topLevelControllerName": "frontend-a" } }
Cloud Run
使用 CloudRun
结构,例如:
{ "displayName": "test-cloudrun-service", "cloudRun": { "serviceName": "test-cloudrun-service", "location": "us-central1" } }
Cloud Service Mesh
使用 MeshIstio
结构,例如:
{ "displayName": "test-mesh-istio-service", "meshIstio": { "meshUid": "mesh-identifier" "serviceName": "test-mesh-istio-service", "serviceNamespace": "default" } }
Istio on GKE
使用 clusterIstio
结构,例如:
{ "displayName": "test-cluster-istio-service", "clusterIstio": { "serviceName": "test-cloud-service", "clusterName": "cluster-2", "serviceNamespace": "default", "location": "us-central1" } }
App Engine
使用 AppEngine
结构,例如:
{ "displayName": "test-mesh-istio-service", "appEngine": { ""moduleId": "id-of-the-service" } }
如需详细了解如何以编程方式管理服务,请参阅以下文档:
创建自定义服务
如果没有其他服务类型满足您的需求,请创建自定义服务。通过自定义服务,您可以采用对环境有意义的方式任意组合 SLO,或根据与现有微服务不对应的业务指标创建 SLO。
使用 Google Cloud 控制台创建自定义服务
如需使用 Google Cloud 控制台定义自定义服务,请执行以下操作:
点击服务概览页面上的定义服务以显示定义服务窗格。
选择自定义服务。
输入自定义服务的显示名称。
点击提交。创建服务后,系统将显示成功通知。
使用 API 创建自定义服务
要使用 SLO API 定义自定义服务,请将如下 Custom
配置对象发布到 services.create
方法:
{ "displayName": "hello-world-service", "custom": {} }
如需详细了解如何以编程方式管理服务,请参阅使用 API。
后续步骤
确定或创建新服务后,您可以执行以下操作:
- 为新服务创建 SLO。您必须为新服务定义至少一个 SLO,以便服务正常运行。如需了解详情,请参阅创建 SLO。
- 转到新服务的信息中心。对于新服务,信息中心是空的,但您可以通过信息中心定义 SLO。如需了解详情,请参阅使用微服务信息中心。