1 Ceilometer 集成

当前 trove 的实现支持 4 种不同的操作通知到 Ceilometer:trove.instance.create, trove.instance.delete, trove.instance.modify_volume 和 trove.instance.modify_flavor。 此外,还会定期生成一个额外的通知 trove.instance.exists,以提供活动实例的状态。

本文档描述了如何扩展 Trove,使其通知支持与 Openstack 的其他部分保持一致,即为所有导致系统状态变化的的操作生成 start|end|fail 通知。

Launchpad 蓝图:https://blueprints.launchpad.net/trove/+spec/ceilometer-integration

目录

1.1 问题描述

Trove 不支持足够的通知,用于计费或错误监控。

1.2 提议的变更

每个导致系统状态变化的 Trove API 调用都将得到增强,以生成符合其他 Openstack 项目的通知。 Taskmanager 任务和异步 guest agent 调用将补充额外的参数,以支持生成适当的通知。 Conductor 将添加一个新的 RPC 方法,以允许 guest 将异步调用的结果转发,因为 guest agent 可能无法访问 Ceilometer 收集器运行的控制平面。

每个 API 事件处理程序将生成适当的 start、end 和(如果需要)error 通知。 对于 Taskmanager 或 guest agent 的异步调用,事件处理程序将发出 start 通知,并将足够的信息传递到 Trove 上下文中,以便后续组件生成 end 和 error 通知。 Trove guest 生成的通知事件将转发到 Conductor,以便放置在 Trove 控制平面 RabbitMQ broker 上。

1.2.1 Trove 状态通知

这些通知的事件类型为“trove.<action>”。 它们是当前由 trove 发出的通知,并得到增强,以包含适当的 cluster_id。

所有 Trove 状态通知都将包含以下信息

Message

event_type: trove.*
traits: &trove_base_traits
instance_type
fields: payload.instance_type
user_id
fields: payload.user_id
resource_id
fields: payload.instance_id
instance_type_id
fields: payload.instance_type_id
launched_at
type: datetime
fields: payload.launched_at
instance_name
fields: payload.instance_name
state
fields: payload.state
state_description
fields: payload.state_description
nova_instance_id
fields: payload.nova_instance_id
service_id
fields: payload.service_id
created_at
type: datetime
fields: payload.created_at
区域
fields: payload.region
instance_type

实例的风味名称

user_id

发起操作的 Openstack 用户 ID

resource_id

trove 实例的 ID

instance_type_id

实例风味的风味 ID

launched_at

与 created_at 相同

instance_name

trove 实例的名称

state

实例的当前状态

state_description

实例当前状态的描述

nova_instance_id

底层 nova 实例的 ID

service_id

数据存储的通知服务 ID

created_at

实例的创建时间

区域

Openstack 区域

Trove 状态通知,用于 trove.create、trove.delete、trove.modify_volume 和 trove.modify_flavor,将包含以下附加信息

Message

event_type: [‘trove.instance.create’, ‘trove.instance.modify_volume’,
‘trove.instance.modify_flavor’, ‘trove.instance.delete’]
traits: &trove_common_traits
name
fields: payload.name
availability_zone
fields: payload.availability_zone
instance_size
type: int
fields: payload.instance_size
volume_size
type: int
fields: payload.volume_size
nova_volume_id
fields: payload.nova_volume_id
cluster_id
fields: payload.cluster_id
name

Trove 实例的名称

availability_zone

Openstack 可用区

instance_size

分配给实例的内存

volume_size

卷的大小(如果启用了卷支持)

nova_volume_id

nove 卷 ID(如果启用了卷支持)

cluster_id

集群的 ID(如果实例在集群中)

1.2.1.1 trove.instance.create

Message

event_type: trove.instance.create
traits
<<: [*trove_base_traits, *trove_common_traits]

1.2.1.2 trove.instance.delete

Message

event_type: trove.instance.delete
traits
<<: [*trove_base_traits, *trove_common_traits]
deleted_at
type: datetime
fields: payload.deleted_at
deleted_at

实例删除完成的时间

1.2.1.3 trove.instance.modify_volume

Message

event_type: trove.instance.modify_volume
traits
<<: [*trove_base_traits, *trove_common_traits]
old_volume_size
type: int
fields: payload.old_volume_size
modify_at
type: datetime
fields: payload.modify_at
old_volume_size

调整大小之前的卷大小

modify_at

卷调整完成的时间

1.2.1.4 trove.instance.modify_flavor

Message

event_type: trove.instance.modify_flavor
traits
<<: [*trove_base_traits, *trove_common_traits]
old_instance_size
type: int
fields: payload.old_instance_size
modify_at
type: datetime
fields: payload.modify_at
old_instance_size

调整大小之前的实例内存

modify_at

调整完成的时间

1.2.1.5 trove.instance.exists

一个定期事件,用于更新每个 Trove 实例的统计信息。 仅当通过 exists_notification_transformer 配置值配置时,才会发出此通知。

Message

event_type: trove.instance.exists
traits
<<: *trove_base_traits
display_name
fields: payload.display_name
audit_period_beginning
type: datetime
fields: payload.audit_period_beginning
audit_period_ending
type: datetime
fields: payload.audit_period_ending
display_name

实例的名称

audit_period_beginning

审计周期的开始时间

audit_period_ending

审计周期的结束时间

1.2.1.6 dbaas.quotas

dbaas.quotas 通知将定期发出,以反映 Trove 配额的当前使用情况。 通知事件的频率由 quota_notification_interval 配置值定义,但每个间隔可能会为每个资源发出多个事件,因为 Taskmanager 部署配置 - 每个 Taskmanager 将为每个资源发出一个通知。

Message

event_type: trove.quota
traits
resource
fields: payload.resource
in_use
type: int
fields: payload.in_use
reserved
type: int
fields: payload.reserved
limit
type: int
fields: payload.limit
updated
type: datetime
fields: payload.updated
resource

资源名称(当前为“instances”、“volumes”或“backups”)

in_use

当前正在使用的资源实例数

reserved

当前已保留的资源实例数

limit

资源的最高分配量

updated

上次资源分配事件的时间

1.2.2 Trove API 通知

请参阅本文档末尾的附录,了解各个 API 通知。

1.2.3 配置

将添加一个新的配置值,以支持实现配额的定期通知。

quota_notification_interval

定期配额通知之间的秒数(<0 可禁用)1

1.2.4 数据库

不会对 Trove 数据库进行任何更改。

1.2.5 公共 API

不会对 Trove REST API 进行任何更改。

1.2.7 Python API

不会对 Trove Python API 进行任何更改。

1.2.8 CLI (python-troveclient)

不会对 Trove CLI 进行任何更改。 不适用

1.2.9 内部 API

负责生成 API 通知事件的通知对象实例将在 Trove API 进程中创建。 这些通知对象将为每个期望更改 Trove 系统状态或其中一个 guest agent 的 REST API 调用创建。 在创建通知对象时,将生成适当的“.start”事件并发布到 notification.info 队列。

对于在 trove-api 进程内完全处理的操作,将在操作完成后发布适当的“.end”或“.error”事件。

对于需要任务管理器或客户代理支持的操作,通知对象将附加到操作的TroveContext实例。trove-taskmanager或trove-guestagent能够从TroveContext实例检索通知实例,并使用它生成适当的通知事件。trove-taskmanager会将通知事件直接放置在RabbitMQ notification.info队列上,而客户代理会将通知对象转发到trove-conductor,以便将其放置在队列上。

将向Conductor的API添加一种新方法。以下RPC方法指示trove-conductor发送带有适当值的结束或错误通知

def notify_exc_info(self, etype, value, trace):
etype, value, trace

来自sys.exc_info异常调用的结果。

1.2.10 客户代理

同步客户代理RPC方法不会有任何更改。

异步客户代理方法将被修改为发送“.end”或“.error”通知到trove-conductor,以反映每个异步RPC方法的完成状态。

预计将遵循当前升级过程,即在升级Trove控制器组件之前升级客户。在这种情况下,不会向TroveContext添加任何通知,因此客户代理不会向(尚未升级的)trove-conductor发送任何通知。

1.2.11 替代方案

另一种实现方式是让客户代理直接将通知放置在通知队列上,但这需要客户代理能够访问与trove-api和trove-taskmanager相同的RabbitMQ代理。提议的设计朝着允许客户在隔离环境中运行的方向迈进了一步。

1.3 仪表板影响(UX)

待定 (在批准后添加的部分)

1.4 实现

1.4.1 分配人

主要负责人

6-morgan

1.4.2 里程碑

完成目标里程碑

例如:Mitaka

1.4.3 工作项

  • 开发新的通知框架

  • 使用新的框架重新实现现有的通知(为了保持一致性)

  • 实现新的通知消息

  • 实现TroveContext的更改

  • 将消息与trove-api中的同步API调用集成

  • 实现conductor RPC方法

  • 将通知与异步Taskmanager RPC方法集成

  • 将通知与异步客户代理RPC方法集成

  • 更新ceilometer消息定义以获取新的通知

  • 新代码的单元测试

  • 修改现有测试以验证通知

  • 为新的通知提供文档

1.5 升级影响

  • tenant-id将被添加到现有Trove通知的ceilometer定义中

  • 将为所有状态更改REST API添加新的通知

1.7 测试

现有的单元测试将测试trove.*通知的更改。

将开发新的单元测试来测试新的通知。

当通知机制正确配置时,会将通知添加到队列中,供其他Openstack或非Openstack组件使用。由于这些消费者超出Trove的范围,集成测试不会测试通知。

1.8 文档影响

将为新的通知生成文档。

1.10 附录

1.10.1 Dbaas API 通知定义

这些是由trove发出的新通知,以反映对各种Trove API的调用。

所有DBAAS通知都将具有“dbaas.<action>.(start|end|error)”的事件类型,并包含以下信息

Message

event_type: dbaas.*
traits: &dbaas_base_traits
tenant_id
fields: payload.tenant_id
client_ip
fields: payload.client_ip
server_ip
fields: payload.server_ip
server_type
fields: payload.server_type
request_id
fields: payload.request_id
tenant_id

已配置租户的ID

client_ip

生成API调用的trove客户端的ip:port

server_ip

生成通知的trove服务的ip:port

server_type

生成通知的服务(api|task|conductor)

request_id

用于关联start|end|error的标识符

1.10.2 dbaas.instance_create.start

Python API

instances.create(name, flavor_id, volume=None, databases=None, users=None, restorePoint=None, availability_zone=None, datastore=None, datastore_version=None, nics=None, configuration=None, replica_of=None, slave_of=None, replica_count=None)

REST API

POST v1/{tenant_id}/instances/create

事件类型

dbaas.instance_create.start

队列

notification.info

Message

event_type: dbaas.instance_create.start
traits
<<: *dbaas_base_traits
name
fields: payload.name
flavor
fields: payload.flavor
数据存储
fields: payload.datastore
databases
fields: payload.databases
users
fields: payload.users
volume_size
type: int
fields: payload.volume_size
restore_point
fields: payload.restore_point
availability_zone
fields: payload.availability_zone
replica_of
fields: payload.replica_of
replica_count
fields: payload.replica_count
name

新实例的名称

flavor

实例的flavor id

数据存储

实例的datastore

datastore_version

实例的datastore_version

databases

要创建的数据库的逗号分隔列表(如果指定)

users

要创建的用户的逗号分隔列表(如果指定)

volume_size

要创建的卷的大小(如果指定)

restore_point

用于初始化实例的备份引用(如果指定)

availability_zone

实例的AZ(如果指定)

replica_of

要从中创建副本的主实例(如果指定)

replica_count

要创建的副本数(如果指定)

1.10.3 dbaas.instance_create.end

Python API

instances.create(name, flavor_id, volume=None, databases=None, users=None, restorePoint=None, availability_zone=None, datastore=None, datastore_version=None, nics=None, configuration=None, replica_of=None, slave_of=None, replica_count=None)

REST API

POST v1/{tenant_id}/instances/create

事件类型

dbaas.instance_create.end

队列

notification.info

Message

event_type: dbaas.instance_create.end
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
instance_id

创建的实例的id

1.10.4 dbaas.instance_create.error

Python API

instances.create(name, flavor_id, volume=None, databases=None, users=None, restorePoint=None, availability_zone=None, datastore=None, datastore_version=None, nics=None, configuration=None, replica_of=None, slave_of=None, replica_count=None)

REST API

POST v1/{tenant_id}/instances/create

事件类型

dbaas.instance_create.error

队列

notification.error

Message

event_type: dbaas.instance_create.error
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
message
fields: payload.message
exception
fields: payload.exception
instance_id

实例的id

message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.5 dbaas.instance_restart.start

Python API

instances.restart(instance)

REST API

POST v1/{tenant_id}/instances/{id}/action

事件类型

dbaas.instance_restart.start

队列

notification.info

Message

event_type: dbaas.instance_restart.start
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
instance_id

要重启的实例的id

1.10.6 dbaas.instance_restart.end

Python API

instances.restart(instance)

REST API

POST v1/{tenant_id}/instances/{id}/action

事件类型

dbaas.instance_restart.end

队列

notification.info

Message

event_type: dbaas.instance_restart.end
traits
<<: *dbaas_base_traits

1.10.7 dbaas.instance_restart.error

Python API

instances.restart(instance)

REST API

POST v1/{tenant_id}/instances/{id}/action

事件类型

dbaas.instance_restart.error

队列

notification.error

Message

event_type: dbaas.instance_restart.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.8 dbaas.instance_resize_volume.start

Python API

instances.resize_volume(instance, volume_size)

REST API

POST v1/{tenant_id}/instances/{id}/action

事件类型

dbaas.instance_resize_volume.start

队列

notification.info

Message

event_type: dbaas.instance_resize_volume.start
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
new_size
type: int
fields: payload.new_size
instance_id

要调整大小的卷的实例的id

new_size

卷将调整到的尺寸

1.10.9 dbaas.instance_resize_volume.end

Python API

instances.resize_volume(instance, volume_size)

REST API

POST v1/{tenant_id}/instances/{id}/action

事件类型

dbaas.instance_resize_volume.end

队列

notification.info

Message

event_type: dbaas.instance_resize_volume.end
traits
<<: *dbaas_base_traits

1.10.10 dbaas.instance_resize_volume.error

Python API

instances.resize_volume(instance, volume_size)

REST API

POST v1/{tenant_id}/instances/{id}/action

事件类型

dbaas.instance_resize_volume.error

队列

notification.error

Message

event_type: dbaas.instance_resize_volume.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.11 dbaas.instance_resize_instance.start

Python API

instances.resize_instance(instance, flavor_id)

REST API

POST v1/{tenant_id}/instances/{id}/action

事件类型

dbaas.instance_resize_instance.start

队列

notification.info

Message

event_type: dbaas.instance_resize_instance.start
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
new_flavor_id
fields: payload.new_flavor_id
instance_id

要调整大小的实例的id

new_flavor_id

实例将调整到的flavor的id

1.10.12 dbaas.instance_resize_instance.end

Python API

instances.resize_instance(instance, flavor_id)

REST API

POST v1/{tenant_id}/instances/{id}/action

事件类型

dbaas.instance_resize_instance.end

队列

notification.info

Message

event_type: dbaas.instance_resize_instance.end
traits
<<: *dbaas_base_traits

1.10.13 dbaas.instance_resize_instance.error

Python API

instances.resize_instance(instance, flavor_id)

REST API

POST v1/{tenant_id}/instances/{id}/action

事件类型

dbaas.instance_resize_instance.error

队列

notification.error

Message

event_type: dbaas.instance_resize_instance.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.14 dbaas.instance_promote.start

Python API

instances.promote_to_replica_source(instance)

REST API

POST v1/{tenant_id}/instances/{id}/action

事件类型

dbaas.instance_promote.start

队列

notification.info

Message

event_type: dbaas.instance_promote.start
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
instance_id

要提升的实例的id

1.10.15 dbaas.instance_promote.end

Python API

instances.promote_to_replica_source(instance)

REST API

POST v1/{tenant_id}/instances/{id}/action

事件类型

dbaas.instance_promote.end

队列

notification.info

Message

event_type: dbaas.instance_promote.end
traits
<<: *dbaas_base_traits

1.10.16 dbaas.instance_promote.error

Python API

instances.promote_to_replica_source(instance)

REST API

POST v1/{tenant_id}/instances/{id}/action

事件类型

dbaas.instance_promote.error

队列

notification.error

Message

event_type: dbaas.instance_promote.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.17 dbaas.instance_eject.start

Python API

instances.eject_replica_source(instance)

REST API

POST v1/{tenant_id}/instances/{id}/action

事件类型

dbaas.instance_eject.start

队列

notification.info

Message

event_type: dbaas.instance_eject.start
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
instance_id

要驱逐的实例的id

1.10.18 dbaas.instance_eject.end

Python API

instances.eject_replica_source(instance)

REST API

POST v1/{tenant_id}/instances/{id}/action

事件类型

dbaas.instance_eject.end

队列

notification.info

Message

event_type: dbaas.instance_eject.end
traits
<<: *dbaas_base_traits

1.10.19 dbaas.instance_eject.error

Python API

instances.eject_replica_source(instance)

REST API

POST v1/{tenant_id}/instances/{id}/action

事件类型

dbaas.instance_eject.error

队列

notification.error

Message

event_type: dbaas.instance_eject.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.20 dbaas.instance_delete.start

Python API

instances.delete(instance)

REST API

DELETE v1/{tenant_id}/instances/{id}

事件类型

dbaas.instance_delete.start

队列

notification.info

Message

event_type: dbaas.instance_delete.start
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
instance_id

要删除的实例的id

1.10.21 dbaas.instance_delete.end

Python API

instances.delete(instance)

REST API

DELETE v1/{tenant_id}/instances/{id}

事件类型

dbaas.instance_delete.end

队列

notification.info

Message

event_type: dbaas.instance_delete.end
traits
<<: *dbaas_base_traits

1.10.22 dbaas.instance_delete.error

Python API

instances.delete(instance)

REST API

DELETE v1/{tenant_id}/instances/{id}

事件类型

dbaas.instance_delete.error

队列

notification.error

Message

event_type: dbaas.instance_delete.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.23 dbaas.instance_detach.start

Python API

instances.edit(detach_replica_source=True)

REST API

PATCH v1/{tenant_id}/instances/{id}

事件类型

dbaas.instance_detach.start

队列

notification.info

Message

event_type: dbaas.instance_detach.start
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
instance_id

要分离的实例的id

1.10.24 dbaas.instance_detach.end

Python API

instances.edit(detach_replica_source=True)

REST API

PATCH v1/{tenant_id}/instances/{id}

事件类型

dbaas.instance_detach.end

队列

notification.info

Message

event_type: dbaas.instance_detach.end
traits
<<: *dbaas_base_traits

1.10.25 dbaas.instance_detach.error

Python API

instances.edit(detach_replica_source=True)

REST API

PATCH v1/{tenant_id}/instances/{id}

事件类型

dbaas.instance_detach.error

队列

notification.error

Message

event_type: dbaas.instance_detach.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.26 dbaas.instance_attach_configuration.start

Python API

instances.modify(instance, configuration)

REST API

PATCH v1/{tenant_id}/instances/{id}

事件类型

dbaas.instance_attach_configuration.start

队列

notification.info

Message

event_type: dbaas.instance_attach_configuration.start
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
configuration_id
fields: payload.configuration_id
instance_id

要附加配置的实例的id

configuration_id

要附加的配置的id

1.10.27 dbaas.instance_attach_configuration.end

Python API

instances.modify(instance, configuration)

REST API

PATCH v1/{tenant_id}/instances/{id}

事件类型

dbaas.instance_attach_configuration.end

队列

notification.info

Message

event_type: dbaas.instance_attach_configuration.end
traits
<<: *dbaas_base_traits

1.10.28 dbaas.instance_attach_configuration.error

Python API

instances.modify(instance, configuration)

REST API

PATCH v1/{tenant_id}/instances/{id}

事件类型

dbaas.instance_attach_configuration.error

队列

notification.error

Message

event_type: dbaas.instance_attach_configuration.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.29 dbaas.instance_detach_configuration.start

Python API

instances.edit(instance, configuration, remove_configuration=True)

REST API

PATCH v1/{tenant_id}/instances/{id}

事件类型

dbaas.instance_detach_configuration.start

队列

notification.info

Message

event_type: dbaas.instance_detach_configuration.start
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
instance_id

要分离配置的实例的id

1.10.30 dbaas.instance_detach_configuration.end

Python API

instances.edit(instance, configuration, remove_configuration=True)

REST API

PATCH v1/{tenant_id}/instances/{id}

事件类型

dbaas.instance_detach_configuration.end

队列

notification.info

Message

event_type: dbaas.instance_detach_configuration.end
traits
<<: *dbaas_base_traits

1.10.31 dbaas.instance_detach_configuration.error

Python API

instances.edit(instance, configuration, remove_configuration=True)

REST API

PATCH v1/{tenant_id}/instances/{id}

事件类型

dbaas.instance_detach_configuration.error

队列

notification.error

Message

event_type: dbaas.instance_detach_configuration.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.32 dbaas.cluster_create.start

Python API

clusters.create(name, datastore, datastore_version, instances=None)

REST API

POST v1/{tenant_id}/clusters

事件类型

dbaas.cluster_create.start

队列

notification.info

Message

event_type: dbaas.cluster_create.start
traits
<<: *dbaas_base_traits
name
fields: payload.name
数据存储
fields: payload.datastore
datastore_version
fields: payload.datastore_version
name

集群的名称

数据存储

集群的datastore

datastore_version

集群的datastore_version

1.10.33 dbaas.cluster_create.end

Python API

clusters.create(name, datastore, datastore_version, instances=None)

REST API

POST v1/{tenant_id}/clusters

事件类型

dbaas.cluster_create.end

队列

notification.info

Message

event_type: dbaas.cluster_create.end
traits
<<: *dbaas_base_traits
cluster_id
fields: payload.cluster_id
cluster_id

新创建集群的id

1.10.34 dbaas.cluster_create.error

Python API

clusters.create(name, datastore, datastore_version, instances=None)

REST API

POST v1/{tenant_id}/clusters

事件类型

dbaas.cluster_create.error

队列

notification.error

Message

event_type: dbaas.cluster_create.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.35 dbaas.cluster_delete.start

Python API

clusters.delete(cluster)

REST API

DELETE v1/{tenant_id}/clusters/{id}

事件类型

dbaas.cluster_delete.start

队列

notification.info

Message

event_type: dbaas.cluster_delete.start
traits
<<: *dbaas_base_traits
cluster_id
fields: payload.cluster_id
cluster_id

要删除的集群的id

1.10.36 dbaas.cluster_delete.end

Python API

clusters.delete(cluster)

REST API

DELETE v1/{tenant_id}/clusters/{id}

事件类型

dbaas.cluster_delete.end

队列

notification.info

Message

event_type: dbaas.cluster_delete.end
traits
<<: *dbaas_base_traits

1.10.37 dbaas.cluster_delete.error

Python API

clusters.delete(cluster)

REST API

DELETE v1/{tenant_id}/clusters/{id}

事件类型

dbaas.cluster_delete.error

队列

notification.error

Message

event_type: dbaas.cluster_delete.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.38 dbaas.cluster_add_shard.start

Python API

clusters.add_shard(cluster)

REST API

POST v1/{tenant_id}/clusters/{id}

事件类型

dbaas.cluster_add_shard.start

队列

notification.info

Message

event_type: dbaas.cluster_add_shard.start
traits
<<: *dbaas_base_traits
cluster_id
fields: payload.cluster_id
cluster_id

要添加分片的集群的 ID

1.10.39 dbaas.cluster_add_shard.end

Python API

clusters.add_shard(cluster)

REST API

POST v1/{tenant_id}/clusters/{id}

事件类型

dbaas.cluster_add_shard.end

队列

notification.info

Message

event_type: dbaas.cluster_add_shard.end
traits
<<: *dbaas_base_traits

1.10.40 dbaas.cluster_add_shard.error

Python API

clusters.add_shard(cluster)

REST API

POST v1/{tenant_id}/clusters/{id}

事件类型

dbaas.cluster_add_shard.error

队列

notification.error

Message

event_type: dbaas.cluster_add_shard.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.41 dbaas.cluster_grow.start

Python API

clusters.grow(cluster, instances)

REST API

POST v1/{tenant_id}/clusters/{id}

事件类型

dbaas.cluster_grow.start

队列

notification.info

Message

event_type: dbaas.cluster_grow.start
traits
<<: *dbaas_base_traits
cluster_id
fields: payload.cluster_id
cluster_id

要添加分片的集群的 ID

1.10.42 dbaas.cluster_grow.end

Python API

clusters.grow(cluster, instances)

REST API

POST v1/{tenant_id}/clusters/{id}

事件类型

dbaas.cluster_grow.end

队列

notification.info

Message

event_type: dbaas.cluster_grow.end
traits
<<: *dbaas_base_traits

1.10.43 dbaas.cluster_grow.error

Python API

clusters.grow(cluster, instances)

REST API

POST v1/{tenant_id}/clusters/{id}

事件类型

dbaas.cluster_grow.error

队列

notification.error

Message

event_type: dbaas.cluster_grow.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.44 dbaas.cluster_shrink.start

Python API

clusters.shrink(cluster, instances)

REST API

POST v1/{tenant_id}/clusters/{id}

事件类型

dbaas.cluster_shrink.start

队列

notification.info

Message

event_type: dbaas.cluster_shrink.start
traits
<<: *dbaas_base_traits
cluster_id
fields: payload.cluster_id
cluster_id

要添加分片的集群的 ID

1.10.45 dbaas.cluster_shrink.end

Python API

clusters.shrink(cluster, instances)

REST API

POST v1/{tenant_id}/clusters/{id}

事件类型

dbaas.cluster_shrink.end

队列

notification.info

Message

event_type: dbaas.cluster_shrink.end
traits
<<: *dbaas_base_traits

1.10.46 dbaas.cluster_shrink.error

Python API

clusters.shrink(cluster, instances)

REST API

POST v1/{tenant_id}/clusters/{id}

事件类型

dbaas.cluster_shrink.error

队列

notification.error

Message

event_type: dbaas.cluster_shrink.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.47 dbaas.backup_create.start

Python API

backups.create(name, instance=None, description=None, parent_id=None, backup=None)

REST API

POST v1/{tenant_id}/backups

事件类型

dbaas.backup_create.start

队列

notification.info

Message

event_type: dbaas.backup_create.start
traits
<<: *dbaas_base_traits
name
fields: payload.name
instance_id
fields: payload.instance_id
description
字段: payload.description
parent_id
字段: payload.parent_id
name

备份名称

instance_id

创建备份的实例 ID

description

备份描述

parent_id

要获取增量备份的备份 ID

1.10.48 dbaas.backup_create.end

Python API

backups.create(name, instance=None, description=None, parent_id=None, backup=None)

REST API

POST v1/{tenant_id}/backups

事件类型

dbaas.backup_create.end

队列

notification.info

Message

event_type: dbaas.backup_create.end
traits
<<: *dbaas_base_traits
backup_id
字段: payload.backup_id
backup_id

新创建的备份的 ID

1.10.49 dbaas.backup_create.error

Python API

backups.create(name, instance=None, description=None, parent_id=None, backup=None)

REST API

POST v1/{tenant_id}/backups

事件类型

dbaas.backup_create.error

队列

notification.error

Message

event_type: dbaas.backup_create.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.50 dbaas.backup_delete.start

Python API

backups.delete(backup_id)

REST API

DELETE v1/{tenant_id}/backups/{id}

事件类型

dbaas.backup_delete.start

队列

notification.info

Message

event_type: dbaas.backup_delete.start
traits
<<: *dbaas_base_traits
backup_id
字段: payload.backup_id
backup_id

要删除的备份的 ID

1.10.51 dbaas.backup_delete.end

Python API

backups.delete(backup_id)

REST API

DELETE v1/{tenant_id}/backups/{id}

事件类型

dbaas.backup_delete.end

队列

notification.info

Message

event_type: dbaas.backup_delete.end
traits
<<: *dbaas_base_traits

1.10.52 dbaas.backup_delete.error

Python API

backups.delete(backup_id)

REST API

DELETE v1/{tenant_id}/backups/{id}

事件类型

dbaas.backup_delete.error

队列

notification.error

Message

event_type: dbaas.backup_delete.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.53 dbaas.database_create.start

请注意,对 databases.create 的一次调用将为要创建的每个数据库生成单独的通知。

Python API

databases.create(instance, databases)

REST API

POST v1/{tenant_id}/databases

事件类型

dbaas.database_create.start

队列

notification.info

Message

event_type: dbaas.database_create.start
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
dbname
字段: payload.dbname
instance_id

创建数据库的实例 ID

dbname

要创建的数据库名称

1.10.54 dbaas.database_create.end

Python API

databases.create(instance, databases)

REST API

POST v1/{tenant_id}/databases

事件类型

dbaas.database_create.end

队列

notification.info

Message

event_type: dbaas.database_create.end
traits
<<: *dbaas_base_traits

1.10.55 dbaas.database_create.error

Python API

databases.create(instance, databases)

REST API

POST v1/{tenant_id}/databases

事件类型

dbaas.database_create.error

队列

notification.error

Message

event_type: dbaas.database_create.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.56 dbaas.database_delete.start

Python API

databases.delete(database_id)

REST API

DELETE v1/{tenant_id}/databases/{id}

事件类型

dbaas.database_delete.start

队列

notification.info

Message

event_type: dbaas.database_delete.start
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
dbname
字段: payload.dbname
instance_id

从中删除数据库的实例 ID

dbname

要删除的数据库名称

1.10.57 dbaas.database_delete.end

Python API

databases.delete(database_id)

REST API

DELETE v1/{tenant_id}/databases/{id}

事件类型

dbaas.database_delete.end

队列

notification.info

Message

event_type: dbaas.database_delete.end
traits
<<: *dbaas_base_traits

1.10.58 dbaas.database_delete.error

Python API

databases.delete(database_id)

REST API

DELETE v1/{tenant_id}/databases/{id}

事件类型

dbaas.database_delete.error

队列

notification.error

Message

event_type: dbaas.database_delete.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.59 dbaas.user_create.start

请注意,对 users.create 的一次调用将为要创建的每个用户生成单独的通知。

Python API

users.create(instance, users)

REST API

POST v1/{tenant_id}/instances/{instance}/users

事件类型

dbaas.user_create.start

队列

notification.info

Message

event_type: dbaas.user_create.start
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
username
字段: payload.username
instance_id

创建用户的实例 ID

username

要创建的用户名

1.10.60 dbaas.user_create.end

Python API

users.create(instance, users)

REST API

POST v1/{tenant_id}/instances/{instance}/users

事件类型

dbaas.user_create.end

队列

notification.info

Message

event_type: dbaas.user_create.end
traits
<<: *dbaas_base_traits

1.10.61 dbaas.user_create.error

Python API

users.create(instance, users)

REST API

POST v1/{tenant_id}/instances/{instance}/users

事件类型

dbaas.user_create.error

队列

notification.error

Message

event_type: dbaas.user_create.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.62 dbaas.user_delete.start

Python API

users.delete(instance, username, hostname)

REST API

DELETE v1/{tenant_id}/instances/{instance}/users/{id}

事件类型

dbaas.user_delete.start

队列

notification.info

Message

event_type: dbaas.user_delete.start
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
username
字段: payload.username
instance_id

从中删除用户的实例 ID

username

要删除的用户名

1.10.63 dbaas.user_delete.end

Python API

users.delete(instance, username, hostname)

REST API

DELETE v1/{tenant_id}/instances/{instance}/users/{id}

事件类型

dbaas.user_delete.end

队列

notification.info

Message

event_type: dbaas.user_delete.end
traits
<<: *dbaas_base_traits

1.10.64 dbaas.user_delete.error

Python API

users.delete(instance, username, hostname)

REST API

DELETE v1/{tenant_id}/instances/{instance}/users/{id}

事件类型

dbaas.user_delete.error

队列

notification.error

Message

event_type: dbaas.user_delete.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.65 dbaas.user_update_attributes.start

Python API

users.update_attributes(self, instance, username, newuserattr=None, hostname=None)

REST API

PUT v1/{tenant_id}/instances/{instance}/users/{id}

事件类型

dbaas.user_update_attributes.start

队列

notification.info

Message

event_type: dbaas.user_update_attributes.start
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
username
字段: payload.username
instance_id

更新属性的实例 ID

username

要更新属性的用户名

1.10.66 dbaas.user_update_attributes.end

Python API

users.update_attributes(self, instance, username, newuserattr=None, hostname=None)

REST API

PUT v1/{tenant_id}/instances/{instance}/users/{id}

事件类型

dbaas.user_update_attributes.end

队列

notification.info

Message

event_type: dbaas.user_update_attributes.end
traits
<<: *dbaas_base_traits

1.10.67 dbaas.user_update_attributes.error

Python API

users.update_attributes(self, instance, username, newuserattr=None, hostname=None)

REST API

PUT v1/{tenant_id}/instances/{instance}/users/{id}

事件类型

dbaas.user_update_attributes.error

队列

notification.error

Message

event_type: dbaas.user_update_attributes.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.68 dbaas.user_grant.start

请注意,对 users.grant 的一次调用将为用户授予访问权限的每个数据库生成一组通知。

Python API

users.grant(instance, username, databases, hostname=None)

REST API

PUT v1/{tenant_id}/instances/{instance}/users/{id}/databases

事件类型

dbaas.user_grant.start

队列

notification.info

Message

event_type: dbaas.user_grant.start
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
username
字段: payload.username
数据库
字段: payload.database
instance_id

从中授予用户的实例 ID

username

授予数据库访问权限的用户名

数据库

将授予访问权限的数据库名称

1.10.69 dbaas.user_grant.end

Python API

users.grant(instance, username, databases, hostname=None)

REST API

PUT v1/{tenant_id}/instances/{instance}/users/{id}/databases

事件类型

dbaas.user_grant.end

队列

notification.info

Message

event_type: dbaas.user_grant.end
traits
<<: *dbaas_base_traits

1.10.70 dbaas.user_grant.error

Python API

users.grant(instance, username, databases, hostname=None)

REST API

PUT v1/{tenant_id}/instances/{instance}/users/{id}/databases

事件类型

dbaas.user_grant.error

队列

notification.error

Message

event_type: dbaas.user_grant.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.71 dbaas.user_revoke.start

Python API

users.revoke(instance, username, database, hostname=None)

REST API

PUT v1/{tenant_id}/instances/{instance}/users/{id}/databases/{database}

事件类型

dbaas.user_revoke.start

队列

notification.info

Message

event_type: dbaas.user_revoke.start
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
username
字段: payload.username
数据库
字段: payload.database
instance_id

从中撤销用户的实例 ID

username

要撤销数据库访问权限的用户名

数据库

将撤销访问权限的数据库名称

1.10.72 dbaas.user_revoke.end

Python API

users.revoke(instance, username, databases, hostname=None)

REST API

PUT v1/{tenant_id}/instances/{instance}/users/{id}/databases/{database}

事件类型

dbaas.user_revoke.end

队列

notification.info

Message

event_type: dbaas.user_revoke.end
traits
<<: *dbaas_base_traits

1.10.73 dbaas.user_revoke.error

Python API

users.revoke(instance, username, databases, hostname=None)

REST API

PUT v1/{tenant_id}/instances/{instance}/users/{id}/databases/{database}

事件类型

dbaas.user_revoke.error

队列

notification.error

Message

event_type: dbaas.user_revoke.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.74 dbaas.user_change_password.start

请注意,对 users.change_password 的一次调用将为更改的每个用户生成一个单独的通知事件。

Python API

users.change_password(instance, users)

REST API

PUT v1/{tenant_id}/instances/{instance}/users

事件类型

dbaas.user_change_password.start

队列

notification.info

Message

event_type: dbaas.user_change_password.start
traits
<<: *dbaas_base_traits
instance_id
fields: payload.instance_id
username
字段: payload.username
instance_id

更改密码的实例 ID

username

密码已更改的用户名

1.10.75 dbaas.user_change_password.end

Python API

users.change_password(instance, users)

REST API

PUT v1/{tenant_id}/instances/{instance}/users

事件类型

dbaas.user_change_password.end

队列

notification.info

Message

event_type: dbaas.user_change_password.end
traits
<<: *dbaas_base_traits

1.10.76 dbaas.user_change_password.error

Python API

users.change_password(instance, users)

REST API

PUT v1/{tenant_id}/instances/{instance}/users

事件类型

dbaas.user_change_password.error

队列

notification.error

Message

event_type: dbaas.user_change_password.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.77 dbaas.configuration_create.start

Python API

configurations.create(name, values, description=None, datastore=None, datastore_version=None)

REST API

POST v1/{tenant_id}/configurations

事件类型

dbaas.configuration_create.start

队列

notification.info

Message

event_type: dbaas.configuration_create.start
traits
<<: *dbaas_base_traits
name
fields: payload.name
数据存储
fields: payload.datastore
datastore_version
fields: payload.datastore_version
name

要创建的配置名称

数据存储

配置的数据存储

datastore_version

配置的数据存储版本

1.10.78 dbaas.configuration_create.end

Python API

configurations.create(name, values, description=None, datastore=None, datastore_version=None)

REST API

POST v1/{tenant_id}/configurations

事件类型

dbaas.configuration_create.end

队列

notification.info

Message

event_type: dbaas.configuration_create.end
traits
<<: *dbaas_base_traits
configuration_id
fields: payload.configuration_id
configuration_id

新创建配置的 ID

1.10.79 dbaas.configuration_create.error

Python API

configurations.create(name, values, description=None, datastore=None, datastore_version=None)

REST API

POST v1/{tenant_id}/configurations

事件类型

dbaas.configuration_create.error

队列

notification.error

Message

event_type: dbaas.configuration_create.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.80 dbaas.configuration_delete.start

Python API

configurations.delete(configuration_id)

REST API

DELETE v1/{tenant_id}/configurations/{id}

事件类型

dbaas.configuration_delete.start

队列

notification.info

Message

event_type: dbaas.configuration_delete.start
traits
<<: *dbaas_base_traits
configuration_id
fields: payload.configuration_id
configuration_id

要删除的配置的 ID

1.10.81 dbaas.configuration_delete.end

Python API

configurations.delete(configuration_id)

REST API

DELETE v1/{tenant_id}/configurations/{id}

事件类型

dbaas.configuration_delete.end

队列

notification.info

Message

event_type: dbaas.configuration_delete.end
traits
<<: *dbaas_base_traits

1.10.82 dbaas.configuration_delete.error

Python API

configurations.delete(configuration_id)

REST API

DELETE v1/{tenant_id}/configurations/{id}

事件类型

dbaas.configuration_delete.error

队列

notification.error

Message

event_type: dbaas.configuration_delete.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.83 dbaas.configuration_update.start

Python API

configurations.update(configuration_id, values, name=None, description=None)

REST API

PUT v1/{tenant_id}/configurations/{id}

事件类型

dbaas.configuration_update.start

队列

notification.info

Message

event_type: dbaas.configuration_update.start
traits
<<: *dbaas_base_traits
configuration_id
fields: payload.configuration_id
name
fields: payload.name
description
字段: payload.description
configuration_id

要更新的配置的 ID

name

新的组名称(如果指定)

description

新的组描述(如果指定)

1.10.84 dbaas.configuration_update.end

Python API

configurations.update(configuration_id, values, name=None, description=None)

REST API

PUT v1/{tenant_id}/configurations/{id}

事件类型

dbaas.configuration_update.end

队列

notification.info

Message

event_type: dbaas.configuration_update.end
traits
<<: *dbaas_base_traits

1.10.85 dbaas.configuration_update.error

Python API

configurations.update(configuration_id, values, name=None, description=None)

REST API

PUT v1/{tenant_id}/configurations/{id}

事件类型

dbaas.configuration_update.error

队列

notification.error

Message

event_type: dbaas.configuration_update.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪

1.10.86 dbaas.configuration_edit.start

Python API

configurations.edit(configuration_id, values)

REST API

PATCH v1/{tenant_id}/configurations/{id}

事件类型

dbaas.configuration_edit.start

队列

notification.info

Message

event_type: dbaas.configuration_edit.start
traits
<<: *dbaas_base_traits
configuration_id
fields: payload.configuration_id
configuration_id

要编辑的配置的 ID

1.10.87 dbaas.configuration_edit.end

Python API

configurations.edit(configuration_id, values)

REST API

PATCH v1/{tenant_id}/configurations/{id}

事件类型

dbaas.configuration_edit.end

队列

notification.info

Message

event_type: dbaas.configuration_edit.end
traits
<<: *dbaas_base_traits

1.10.88 dbaas.configuration_edit.error

Python API

configurations.edit(configuration_id, values)

REST API

PATCH v1/{tenant_id}/configurations/{id}

事件类型

dbaas.configuration_edit.error

队列

notification.error

Message

event_type: dbaas.configuration_edit.error
traits
<<: *dbaas_base_traits
message
fields: payload.message
exception
fields: payload.exception
message

异常消息(从堆栈跟踪中复制)

exception

异常的堆栈跟踪