我们建议您使用启用应用的文件夹来设置 App Hub 并管理应用。已启用应用的文件夹可在该文件夹下的所有项目中预配应用管理功能,并提供对 Application Design Center 和 Gemini Cloud Assist 等功能的访问权限。如需了解详情,请参阅为启用应用的文件夹设置 App Hub。
服务和工作负载
借助 App Hub,您可以将连接到宿主项目的服务项目中的资源用作服务和工作负载。将服务和工作负载注册到应用后,您便可以观测和监控资源。App Hub 支持全球资源和区域资源。如需了解详情,请参阅App Hub 支持的资源。
整体设置流程
以下列表总结了设置应用中心的步骤:
- 确定要在应用中包含哪些现有资源以及这些资源属于哪些项目。
- 创建 App Hub 宿主项目或使用现有项目作为宿主项目。您可以根据自己企业的组织结构,选择创建多个宿主项目。
- 如果您打算拥有多个宿主项目,我们强烈建议您在同一文件夹中创建这些项目。
- 宿主项目不能成为除自身以外的服务项目。
- 在宿主项目中启用 App Hub API。
- 将 App Hub 用户指定为 App Hub 管理员、App Hub 编辑者或 App Hub 查看者。
- 关联服务项目。配置宿主项目后,将具有应用所需底层资源的服务项目附加到宿主项目。请注意以下几点:
- 创建应用以组织管理多个工作负载和服务。请注意以下事项:
- 确保应用在宿主项目和位置中具有唯一的名称。
- 服务项目可以关联到包含多个应用的宿主项目,但其各个资源只能注册到一个应用。
- 查询服务和工作负载并将其注册到您的应用。
创建应用后,您可以查询宿主项目以获取可用的服务和工作负载。查询针对宿主项目以及关联到该宿主项目的所有服务项目运行。它们还会返回这些项目中的所有服务和工作负载。请注意以下几点:
- 您只能将服务或工作负载注册到单个应用。
- 您必须将特定区域中的服务和工作负载注册到同一区域中的区域级应用或全球级应用。以下说明和命令假设所有资源都位于同一区域中。如需了解您可以指定哪些区域,请参阅位置。
- 已注册的服务和工作负载不受底层基础架构资源更新的影响。换句话说,如果您删除充当服务和工作负载的基础资源,App Hub 不会从您的应用中删除关联的工作负载和服务。您必须单独取消注册工作负载或服务。
前提条件
在设置 App Hub 之前,请完成以下任务。
- 确定哪个现有项目是宿主项目,或创建一个新项目作为宿主项目。我们强烈建议您创建一个新项目。
- 确保您已确定哪些个人持有 App Hub 的 Identity and Access Management (IAM) 角色:App Hub 管理员、App Hub 编辑者和 App Hub 查看者。
请注意,将服务项目附加到宿主项目的人员必须在服务项目和宿主项目中都拥有 IAM 角色 App Hub Admin。如需了解详情,请参阅 App Hub 角色和权限。
设置 App Hub
在本部分中,您将创建一个 App Hub 架构示例。
在此示例中,某组织有三个服务项目,其基础架构资源部署在这些项目中,如下所示:
- 服务项目 1 有两个基础设施资源,即服务 1 和服务 2。
- 服务项目 2 具有三个基础架构资源:服务 3、工作负载 1 和工作负载 2。
- 服务项目 3 具有三个基础架构资源:服务 4、工作负载 3 和工作负载 4。
请确保您选择用于创建示例的项目包含本部分中所述的资源,或者准备好在按照说明操作的过程中调整示例。
以下部分包含有关创建 App Hub 示例的说明。您可以创建一个宿主项目,并向该宿主项目添加服务项目,然后创建一个应用并将服务和工作负载附加到该应用。此示例包含三个服务项目,但您可以添加更少或更多的服务项目。
此示例假设您添加的任何服务项目都已存在,并且其中包含您添加到应用的服务和工作负载。在创建示例之前,请确定哪些服务项目包含您要纳入应用中的服务和工作负载。
启用 App Hub
在本部分中,您将选择或创建新的宿主项目,启用 App Hub API,并向组织中的个人授予适当的角色和权限。您还可以将服务项目关联到宿主项目。
控制台
在 Google Cloud 控制台中,前往项目选择器页面。
选择或创建 Google Cloud 项目,作为 App Hub 宿主项目。
-
Enable the required API.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
确保已安装最新版本的 Google Cloud CLI。在 Cloud Shell 中运行以下命令:
gcloud components update
创建或选择一个新项目
HOST_PROJECT_ID
作为 App Hub 的宿主项目。- 创建 Google Cloud 项目:
gcloud projects create HOST_PROJECT_ID
- 选择您创建的 Google Cloud 项目:
gcloud config set project HOST_PROJECT_ID
- 创建 Google Cloud 项目:
在您刚刚创建的宿主项目中启用 App Hub API。
gcloud services enable apphub.googleapis.com \ --project=HOST_PROJECT_ID
指定 App Hub 用户
如果您是项目创建者,则会被授予基本 Owner 角色 (roles/owner
)。默认情况下,此 IAM 角色可提供完全访问大多数 Google Cloud 资源所需的权限。
如果您不是项目创建者,则必须向主账号授予项目的必需权限。例如,主账号可以是 Google 账号(针对最终用户)或服务账号(针对应用和计算工作负载)。如需获得完成本教程所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:
控制台
在 Google Cloud 控制台中,前往 IAM 页面。
点击
授予访问权限。 此时会打开授予访问权限窗格。在新主账号字段中,输入将管理应用中心(即宿主项目中的应用中心管理员角色)的个人的电子邮件地址。
点击选择角色,然后在过滤条件字段中输入 App Hub。
选择 App Hub 管理员角色,然后点击保存。
在每个 App Hub 服务项目中,向同一用户授予 App Hub Admin 角色。
gcloud
(可选)向将管理 App Hub 的个人授予宿主项目中的 App Hub 管理员角色。针对每位管理员重复执行以下命令。
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='user:HOST_PROJECT_ADMIN' \ --role='roles/apphub.admin'
将
HOST_PROJECT_ADMIN
替换为在宿主项目中具有 App Hub Admin 角色的用户。该值的格式为username@yourdomain
,例如robert.smith@example.com
。在服务项目中向管理 App Hub 的个人授予 App Hub 管理员角色。他们必须拥有 App Hub 管理员角色,才能将服务项目添加到宿主项目。每个服务项目都需要至少一名具有此角色的人员。一个人可以在多个服务项目中担任该角色。
gcloud projects add-iam-policy-binding SERVICE_PROJECT_1 \ --member='user:HOST_PROJECT_ADMIN' \ --role='roles/apphub.admin'
gcloud projects add-iam-policy-binding SERVICE_PROJECT_2 \ --member='user:HOST_PROJECT_ADMIN' \ --role='roles/apphub.admin'
gcloud projects add-iam-policy-binding SERVICE_PROJECT_3 \ --member='user:HOST_PROJECT_ADMIN' \ --role='roles/apphub.admin'
替换以下内容:
SERVICE_PROJECT_1
:本示例中的第一个服务项目。SERVICE_PROJECT_2
:本示例中的三个服务项目中的第二个。SERVICE_PROJECT_3
:本示例中的第三个服务项目。
将服务项目添加到宿主项目
将包含您要管理的底层资源的服务项目添加到 App Hub 宿主项目。
控制台
在 Google Cloud 控制台中,前往应用中心设置页面。
在设置页面上,点击关联项目。
执行下列其中一项操作:
- 在项目列表中,选中要添加为服务项目的项目对应的复选框。
- 搜索项目,然后选择要添加为服务项目的项目。
点击选择。 关联的服务项目表格会显示所选的服务项目。
点击关闭。
gcloud
gcloud apphub service-projects add SERVICE_PROJECT_1 \ --project=HOST_PROJECT_ID
gcloud apphub service-projects add SERVICE_PROJECT_2 \ --project=HOST_PROJECT_ID
gcloud apphub service-projects add SERVICE_PROJECT_3 \ --project=HOST_PROJECT_ID
可选:将服务项目添加到宿主项目的指标范围
您可以将服务项目作为资源容器添加到宿主项目的指标范围,从而查看宿主项目中应用的系统指标。App Hub 宿主项目充当托管指标范围的范围项目。Google Cloud 项目的指标范围定义了宿主项目可以对其时序数据绘制图表并进行监控的资源容器集。如需详细了解资源容器、指标范围和范围限定项目,请参阅 Cloud Monitoring:数据模型。如需详细了解哪些基础架构资源支持 App Hub 应用系统指标和系统元数据标签,请参阅支持的资源。
如需查看应用的系统指标,您必须根据需要手动从宿主项目中添加或删除受监控的服务项目。不过,如果您将宿主项目用作其自己的服务项目,由于 App Hub 应用位于同一项目中,因此请勿将该项目添加到指标范围。
确保您拥有以下 IAM 角色:
- 如需获得查看 App Hub 应用的指标所需的权限,请让管理员向主账号授予 Monitoring Viewer (
roles/monitoring.viewer
) IAM 角色。如需了解详情,请参阅授予对 Monitoring 的访问权限。 如需获得配置指标范围所需的权限,请让您的管理员为您授予范围项目以及您要添加到指标范围的每个资源容器的 Monitoring Admin (
roles/monitoring.admin
) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
控制台
-
在 Google Cloud 控制台中,前往 settings 设置页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
选择指标范围。
指标范围标签页会列出当前Google Cloud 项目监控的资源。它还会列出其指标范围包含当前 Google Cloud 项目的 Google Cloud 项目。
如需将 Google Cloud 项目添加到指标范围,请执行以下操作:
- 在 Google Cloud 项目窗格中,点击添加项目。
- 在添加 Google Cloud 项目对话框中,点击选择项目,然后选中要监控的必需服务项目的复选框。
如需保存更改,请点击添加项目。
系统会显示设置页面,该页面上的表格会进行更新以列出您的选择。
将项目添加到指标范围后,更改大约需要 60 秒才能传播到所有 Monitoring 系统。
如需详细了解如何使用Google Cloud 控制台配置指标范围,请参阅配置指标范围。
gcloud
如需将服务项目作为受监控的资源容器添加到 App Hub 宿主项目,请执行以下操作:
gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_1 \ --project=HOST_PROJECT_ID
gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_2 \ --project=HOST_PROJECT_ID
gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_3 \ --project=HOST_PROJECT_ID
如需详细了解如何使用 Google Cloud CLI 配置指标范围,请参阅使用 API 配置指标范围。
创建应用
如果您还没有应用,请创建一个应用作为服务和工作负载的容器。根据服务项目中的服务和工作负载范围,创建全球性或区域性应用。
- 借助全球应用,您可以注册从区域和全球 Google Cloud 资源发现的服务和工作负载。
- 借助区域应用,您可以注册从区域 Google Cloud 资源发现的服务和工作负载。
请注意,创建应用后,您无法更改应用范围。如需详细了解全球和区域应用,请参阅全球和区域 App Hub 应用。
控制台
- 确保您位于宿主项目中。
在 Google Cloud 控制台中,前往 App Hub 的应用页面。
点击创建应用。
在创建应用页面上的选择应用区域和名称窗格中,根据您要向应用注册的服务和工作负载的范围,执行以下操作之一:
如需创建可让您从全球位置注册服务和工作负载的应用,请选择全球。
如需创建应用以允许您从单个位置注册服务和工作负载,请执行以下操作:
- 选择区域级。
- 选择区域。
输入应用名称,然后点击继续。
您也可以在后续字段中添加有关应用的更多详细信息。如需了解详情,请参阅本文档中的更新现有 App Hub 应用。
点击创建。
gcloud
创建一个名为
APPLICATION_NAME
的新应用,并为其指定显示名称APPLICATION_DISPLAY_NAME
。gcloud apphub applications create APPLICATION_NAME \ --scope-type=SCOPE_TYPE \ --project=HOST_PROJECT_ID \ --location=REGION
替换以下内容:
APPLICATION_NAME
:应用的名称。 名称只能包含不含空格的小写字母数字字符。SCOPE_TYPE
:应用的范围,用于定义哪些服务和工作负载可供您注册到应用。请使用以下某个值:REGIONAL
GLOBAL
REGION
:应用的区域。根据--scope-type
,为此属性提供值us-east1
或global
。
列出宿主项目中的应用。
gcloud apphub applications list \ --project=HOST_PROJECT_ID \ --location=REGION
输出类似于以下内容:
ID DISPLAY_NAME CREATE_TIME APPLICATION_NAME APPLICATION_DISPLAY_NAME 2023-10-31T18:33:48
获取您创建的应用的详细信息。
gcloud apphub applications describe APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
该命令会以 YAML 格式返回类似于以下内容的信息。
createTime: '2023-10-31T18:33:48.199394108Z' displayName: APPLICATION_DISPLAY_NAME name: projects/HOST_PROJECT_ID/locations/REGION/applications/APPLICATION_NAME scope: type: SCOPE_TYPE state: ACTIVE uid: [APPLICATION_UID] updateTime: '2023-10-31T18:33:48.343303819Z'
更新现有 App Hub 应用
您还可以在创建应用后更新应用的属性。
控制台
在 Google Cloud 控制台中,前往 App Hub 的应用页面。
在应用列表中,点击您要更新的应用对应的
修改。根据需要修改字段,然后点击保存。
可选:在严重程度列表中,选择以下选项之一以指明应用的重要性:
- 任务关键型
- 高
- 中
- 低
可选:在环境列表中,选择以下选项之一以指明软件生命周期的阶段:
- 生产
- Staging
- 开发
- 测试
可选:根据需要添加以下详细信息,以供开发者所有者、运营商所有者和企业所有者使用。请注意,如果您添加了显示名称,则必须输入所有者的电子邮件地址。
- 输入所有者的显示名称。
- 输入所有者的电子邮件地址。此值必须采用
username@yourdomain
格式,例如222larabrown@gmail.com
。
针对每位开发者、运营商和企业主重复执行这些步骤。
点击保存。
gcloud
使用
criticality-type
、environment-type
和所有者类型属性更新您的应用:gcloud apphub applications update APPLICATION_NAME \ --display-name='APPLICATION_DISPLAY_NAME' \ --criticality-type='CRITICALITY_LEVEL' \ --environment-type='ENVIRONMENT' \ --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \ --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \ --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \ --project=HOST_PROJECT_ID \ --location=REGION
替换以下内容:
APPLICATION_DISPLAY_NAME
:应用的显示名称。CRITICALITY_LEVEL
:表示应用、服务或工作负载对业务运营的重要性。 请提供以下值之一:MISSION_CRITICAL
HIGH
MEDIUM
LOW
ENVIRONMENT
:表示软件生命周期的各个阶段。请提供以下值之一:PRODUCTION
STAGING
DEVELOPMENT
TEST
DISPLAY-NAME-DEVELOPER
、DISPLAY-NAME-OPERATOR
和DISPLAY-NAME-BUSINESS
:分别表示开发者、运营商和企业主的显示名称。EMAIL-NAME-DEVELOPER
、EMAIL-NAME-OPERATOR
和EMAIL-NAME-BUSINESS
:分别是开发者、运营商和企业主的电子邮件地址。这些值必须采用username@yourdomain
格式,例如222larabrown@gmail.com
。
列出属性
environment-type
的值为PRODUCTION
的应用。gcloud apphub applications list \ --filter='attributes.environment.type=PRODUCTION' \ --project=HOST_PROJECT_ID \ --location=REGION
输出类似于以下内容:
ID DISPLAY_NAME CREATE_TIME APPLICATION_NAME APPLICATION_DISPLAY_NAME 2023-10-31T18:33:48
注册服务和工作负载
将基础架构服务和工作负载注册到应用后,这些服务和工作负载会注册为 App Hub 资源。使用全局应用注册全球性资源或分布在多个区域中的资源。使用区域应用注册与该应用位于同一区域的资源。
控制台
在 Google Cloud 控制台中,前往 App Hub 的应用页面。
点击应用的名称。 系统会显示服务和工作负载标签页,其中列出了服务项目中的已注册服务和工作负载。
对于要注册的每项服务或工作负载,请执行以下操作:
- 在服务和工作负载标签页上,点击注册服务/工作负载。
- 在注册服务或工作负载页面上的选择资源窗格中,点击浏览以选择服务或工作负载作为资源。
- 在选择资源窗格中,选择服务或工作负载,然后点击选择。
- 在选择资源窗格中,输入服务或工作负载的名称,然后点击继续。
- (可选)在添加属性窗格中,在后续字段中添加有关服务或工作负载的更多详细信息。如需了解详情,请参阅本文档中的更新现有 App Hub 应用。 请注意,您可以为严重程度和环境字段选择与创建应用时设置的值不同的值。
- 点击继续。
- (可选)在添加所有者部分中,在后续字段中添加有关服务或工作负载所有者的更多详细信息。如需了解详情,请参阅本文档中的更新现有 App Hub 应用。
- 点击注册。
服务和工作负载标签页会显示已注册的服务或工作负载。如需详细了解注册状态,请参阅 App Hub 的属性和特性。
gcloud
添加具有 App Hub 编辑者权限的个人。
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='user:APP_HUB_EDITOR' \ --role='roles/apphub.editor'
将
APP_HUB_EDITOR
替换为在宿主项目中具有 App Hub 编辑者角色的用户。此值的格式为username@yourdomain
,例如robert.smith@example.com
。列出服务项目 2(已关联到宿主项目)中发现的工作负载。此命令会返回可注册到应用的工作负载。
gcloud apphub discovered-workloads list \ --filter='workload_properties.gcp_project=projects/SERVICE_PROJECT_2' \ --project=HOST_PROJECT_ID \ --location=REGION
输出类似于以下内容,其中包含未注册的 MIG:
ID WORKLOAD_REFERENCE WORKLOAD_PROPERTIES [DISCOVERED_WORKLOAD_ID_1] {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-1'} {'gcpProject': 'projects/SERVICE_PROJECT_2', 'location': 'REGION'} [DISCOVERED_WORKLOAD_ID_2] {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-2'} {'gcpProject': 'projects/SERVICE_PROJECT_2', 'location': 'REGION'}
从输出中复制工作负载 ID,以便在下一步中使用。
将上一步中的工作负载注册到您的应用。
gcloud apphub applications workloads create WORKLOAD_NAME \ --discovered-workload='projects/HOST_PROJECT_ID/locations/REGION/discoveredWorkloads/DISCOVERED_WORKLOAD_ID_2' \ --display-name='mywebserver-deployment1' \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
替换以下内容:
WORKLOAD_NAME
:用于注册工作负载的名称。DISCOVERED_WORKLOAD_ID_2
:上一步输出中的工作负载 ID。
重复前两个步骤,以过滤并注册您想要从服务项目 3 中获取的工作负载。
可选操作:您可以更新具有
criticality-type
、environment-type
和所有者属性的工作负载。gcloud apphub applications workloads update WORKLOAD_NAME \ --application=APPLICATION_NAME \ --criticality-type='CRITICALITY_LEVEL' \ --environment-type='ENVIRONMENT' \ --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \ --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \ --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \ --project=HOST_PROJECT_ID \ --location=REGION
请注意,您必须为
criticality-type
和environment-type
提供指定的值,但该值可以与您在创建应用时设置的值不同。列出应用中已注册的工作负载。
gcloud apphub applications workloads list \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
输出类似于以下内容:
ID DISPLAY_NAME WORKLOAD_REFERENCE CREATE_TIME WORKLOAD_NAME mywebserver-deployment1 {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-2'} 2023-10-31T18:34:23
已注册但已分离的工作负载在
WORKLOAD_REFERENCE
字段中以空值表示。如需详细了解注册状态,请参阅 App Hub 的属性和特性。列出附加到宿主项目的服务项目 1 中具有转发规则的已发现服务。此命令会返回可注册到应用的服务。
gcloud apphub discovered-services list \ --filter='service_properties.gcp_project=projects/SERVICE_PROJECT_1 AND service_reference.uri~"forwardingRules"' \ --project=HOST_PROJECT_ID \ --location=REGION
输出类似于以下内容:
ID SERVICE_REFERENCE SERVICE_PROPERTIES [DISCOVERED_SERVICE_ID_1] {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-1'} {'gcpProject': 'projects/SERVICE_PROJECT_1', 'location': 'REGION'} [DISCOVERED_SERVICE_ID_2] {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-2'} {'gcpProject': 'projects/SERVICE_PROJECT_1', 'location': 'REGION'}
复制输出中的服务 ID
DISCOVERED_SERVICE_ID_2
,以便在下一步中使用。将服务项目 1 中的转发规则
testing-forwarding-rule-2
注册为服务。gcloud apphub applications services create SERVICE_NAME \ --discovered-service='projects/HOST_PROJECT_ID/locations/REGION/discoveredServices/DISCOVERED_SERVICE_ID_2' \ --display-name='mywebserver-service1' \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
替换以下内容:
SERVICE_NAME
:用于注册服务的名称。DISCOVERED_SERVICE_ID_2
:上一步输出中的服务 ID。
重复执行上述步骤,列出服务、过滤这些服务,并在服务项目 1、2 和 3 中注册这些服务。
更新具有
criticality-type
属性和environment-type
属性的服务。gcloud apphub applications services update SERVICE_NAME \ --criticality-type='CRITICALITY_LEVEL' \ --environment-type='ENVIRONMENT' \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
列出
APPLICATION_NAME
应用和HOST_PROJECT_ID
宿主项目中的已注册服务。gcloud apphub applications services list \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
每个服务的输出类似于以下内容:
ID DISPLAY_NAME SERVICE_REFERENCE CREATE_TIME SERVICE_NAME mywebserver-service1 {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-2'} 2023-11-01T21:38:08
已注册,但分离的服务在
SERVICE_REFERENCE
字段中以空值表示。将
APPLICATION_NAME
应用和HOST_PROJECT_ID
宿主项目中的服务过滤为environment-type
属性设置为PRODUCTION
的服务。gcloud apphub applications services list \ --filter='attributes.environment.type=PRODUCTION' \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
App Hub 设置流程已完成。
添加或移除服务项目
您可以修改服务项目附件,以便将不同的基础设施资源分组到应用中。
如需查看宿主项目中应用的系统指标,请在将服务项目添加到宿主项目后,将服务项目作为资源容器添加到宿主项目的指标范围。如需了解详情,请参阅本文档中的将服务项目添加到宿主项目的指标范围部分。从宿主项目中移除服务项目时,请考虑从宿主项目的指标范围中移除服务项目(作为资源容器)(如果您之前选择查看宿主项目上应用的系统指标)。如需了解详情,请参阅本文档中有关从宿主项目的指标范围中移除服务项目的步骤。
控制台
如需将服务项目添加到宿主项目,请执行以下操作:
在 Google Cloud 控制台中,前往 App Hub 设置页面。
在设置页面上,点击关联项目。
在随即打开的窗格中,从显示的列表中搜索项目,然后选中要添加为服务项目的项目对应的复选框。
点击选择。 关联的服务项目表格会将所选项目显示为宿主项目的服务项目。
点击关闭。
如需从宿主项目中移除服务项目,请执行以下操作:
在 Google Cloud 控制台中,前往 App Hub 设置页面。
在设置页面上,选中要移除的服务项目对应的复选框。
点击分离项目。 关联的服务项目表会刷新,仅显示仍与宿主项目关联的项目。
gcloud
如需将服务项目添加到宿主项目,请执行以下操作:
gcloud apphub service-projects add SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID
SERVICE_PROJECT_ID
替换为您要添加到宿主项目的服务项目的名称。如需从宿主项目中移除服务项目,请执行以下操作:
gcloud apphub service-projects remove SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID
查看现有应用、服务和工作负载
您可以查看项目中的应用,并列出应用中的服务和工作负载。
控制台
如需查看项目中的应用,请执行以下操作:
在 Google Cloud 控制台中,前往 App Hub 应用页面。
可选:如需过滤应用,请执行以下操作:
- 在过滤条件字段中,选择一个过滤条件,例如严重程度。
- 选择高作为值。
系统会显示在宿主项目上创建的高严重性应用列表。
如需列出服务和工作负载,请执行以下操作:
应用
在 Google Cloud 控制台中,前往 App Hub 的应用页面。
点击应用的名称。 系统会显示一个页面,其中包含已向您的应用注册的服务和工作负载的列表。
可选:如需过滤服务或工作负载,请执行以下操作:
- 在过滤条件字段中,选择一个过滤条件,例如严重程度。
- 选择高作为值。
系统会显示已向应用注册的高重要性服务和工作负载的列表。
服务和工作负载
在 Google Cloud 控制台中,前往 App Hub 服务和工作负载页面。
在区域列表中,选择您要查看服务和工作负载的区域。例如,选择 us-east1。
服务和工作负载页面会显示与 us-east1 关联的附加服务项目中的所有服务和工作负载。可选:如需过滤服务或工作负载,请执行以下操作:
- 在过滤条件字段中,选择一个过滤条件,例如环境。
- 选择生产作为值。
系统会显示已注册到应用的生产环境中的服务和工作负载的列表。
gcloud
如需查看项目中的应用,请执行以下操作:
gcloud apphub applications list \ --project=HOST_PROJECT_ID \ --location=REGION
如需列出应用中已注册的服务,请执行以下操作:
gcloud apphub applications services list \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
如需列出应用中已注册的工作负载,请执行以下操作:
gcloud apphub applications workloads list \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
可选:如需根据变量属性过滤资源,请在上述命令中添加
filter
命令标志。例如,如需列出所有已注册且criticality-type
属性设置为HIGH
的工作负载,请运行以下命令:gcloud apphub applications workloads list \ --application=APPLICATION_NAME \ --filter='attributes.criticality.type=HIGH' \ --project=HOST_PROJECT_ID \ --location=REGION
如需详细了解可用于过滤的属性,请参阅本页中的更新现有 App Hub 应用。
可选:查看应用指标
您可以查看在 App Hub 宿主项目中创建的应用的系统指标。这些指标对应于黄金信号(流量、错误、延迟时间和饱和度),可帮助监控应用的性能和运行状况。
在 Google Cloud 控制台中,前往 App Hub 的应用页面。
点击应用的名称。
系统会显示服务和工作负载标签页,其中包含已注册到应用的服务的元数据和工作负载。
可选:如需更改指标显示的时间段,请使用时间范围选择器。默认时间范围为 1 小时。
如需查看已注册服务和工作负载的系统指标,请点击 bar_chart 指标。
系统会显示一个表格,其中包含以下黄金信号:
- 流量:所选时间段内有关资源的传入请求速率。
- 服务器错误率:所选时间段内生成
5xx
系列 HTTP 错误代码的传入请求所占的平均百分比。 - P95 延迟时间:所选时间段内服务请求的延迟时间的第 95 百分位(以毫秒为单位)。
- CPU 利用率:工作负载在指定时间段内的平均 CPU 利用率百分比。值通常是介于 0.0 到 100.0 之间的数字,但可能会超过 100.0。
- 内存利用率:工作负载的平均内存利用率百分比,按指定时间段汇总。
可选:使用图表探索指标
如需为 App Hub 项目绘制指标图表,请使用 Metrics Explorer。您可以应用基于标签的过滤条件,限制图表中显示的数据。如需了解详情,请参阅使用 Metrics Explorer 创建图表。
您可以按以下 App Hub 系统元数据标签进行过滤(预览版):
apphub_application_host_project_id
apphub_application_id
apphub_application_location
apphub_workload_criticality_type
apphub_workload_environment_type
apphub_workload_id
如需在图表上直观呈现 App Hub 元数据标签,请按照以下说明操作。对于其他系统元数据标签和 App Hub 指标,您可以遵循相同的步骤。
-
在 Google Cloud 控制台中,前往 leaderboard Metrics Explorer 页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 在 Google Cloud 控制台的工具栏中,选择您的 Google Cloud 项目。对于 App Hub 配置,请选择 App Hub 宿主项目或已启用应用的文件夹的管理项目。
- 在指标元素中,展开选择指标菜单,在过滤条件栏中输入
VM Instance
,然后使用子菜单选择一个特定资源类型和指标:- 在活跃资源菜单中,选择虚拟机实例。
- 在活跃指标类别菜单中,选择热门指标。
- 在活跃指标菜单中,选择 CPU 利用率。
- 点击应用。
compute.googleapis.com/instance/cpu/utilization
。 - 配置数据的查看方式。如需仅显示特定标签的指标,请按照以下步骤操作:
- 在过滤条件元素中,点击添加过滤条件,然后选择 apphub_application_id。对于值,请输入特定的 App Hub 名称。
- 在汇总条目中,将第一个菜单设置为不汇总。
如需详细了解如何配置图表,请参阅使用 Metrics Explorer 时选择指标。
清理
清理现有应用并从宿主项目中移除服务项目附件,以移除与该项目关联的资源。这样一来,系统便会停止自动发现服务项目中的资源。
为此,您必须先删除已注册到该应用的工作负载和服务。
控制台
在 Google Cloud 控制台中,前往 App Hub 应用页面。
点击应用的名称。 系统会显示已向应用注册的服务和工作负载的列表。
取消注册服务或工作负载。
- 在服务和工作负载标签页的已注册的服务和工作负载部分中,点击要取消注册的服务或工作负载的名称。
- 在详细信息标签页上,点击取消注册,将服务或工作负载更新为已发现的资源。
在服务和工作负载标签页中,系统会显示一条提醒,告知您相应工作负载已取消注册。 - 针对每项服务和工作负载重复这些说明。
前往 App Hub 的应用页面。
点击应用的名称。
在显示应用详情的页面上,点击删除。
如需从宿主项目中移除服务项目,请参阅本文档的添加或移除服务项目部分。
如需从宿主项目的指标范围中移除服务项目,请执行以下操作:
-
在 Google Cloud 控制台中,前往 settings 设置页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 选择指标范围。
- 在 Google Cloud 项目窗格中,点击移除项目,然后完成确认对话框。
-
gcloud
列出应用中已注册的工作负载:
gcloud apphub applications workloads list \ --application=APPLICATION_NAME --project=HOST_PROJECT_ID \ --location=REGION
从应用中取消注册工作负载:
gcloud apphub applications workloads delete WORKLOAD_NAME \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
相应工作负载现在是一项已发现的工作负载,可以注册到应用。
重复执行上一个命令,以从应用中删除剩余的已注册工作负载。
列出应用中已注册的服务:
gcloud apphub applications services list \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
从应用中取消注册服务:
gcloud apphub applications services delete SERVICE_NAME \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
该服务现在是一个已发现的服务,可以注册到应用。
重复执行上一个命令,以从应用中取消注册其余已注册的服务。
删除应用:
gcloud apphub applications delete APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
从宿主项目中移除服务项目:
gcloud apphub service-projects remove SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID
重复执行上一个命令,以从宿主项目中移除所有服务项目。
从宿主项目的指标范围中移除服务项目(预览版):
gcloud beta monitoring metrics-scopes delete projects/SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID
重复执行上一个命令,以从指标范围宿主项目中移除所有服务项目。