2.4. 规划和管理归档策略
归档策略定义了您如何聚合指标以及将指标存储在时间序列数据库中的时长。归档策略定义为时间span上的点数。
如果您的归档策略定义了粒度为 1 秒的 10 点策略,则时间序列存档最多保留 10 秒,各自代表聚合超过 1 秒。这意味着,时间序列在更新点和旧点之间最多保留 10 秒数据。归档策略也定义了要使用的聚合方法。默认设置为参数 default_aggregation_methods
,其中默认值设置为 mean
,min
,max
。和
、std
、计数
。因此,根据用例,归档策略和粒度可能会有所不同。
要规划归档策略,请确保您已熟悉以下概念:
- 指标.更多信息请参阅 第 2.4.1 节 “指标”。
- 测量结果。更多信息请参阅 第 2.4.2 节 “创建自定义测量结果”。
- 聚合.更多信息请参阅 第 2.4.4 节 “计算时间序列聚合的大小”。
- 指标工作线程.更多信息请参阅 第 2.4.5 节 “指标 worker”。
要创建并管理归档策略,请完成以下任务:
- 创建归档策略。更多信息请参阅 第 2.4.6 节 “创建归档策略”。
- 管理归档策略。更多信息请参阅 第 2.4.7 节 “管理归档策略”。
- 创建归档策略规则。更多信息请参阅 第 2.4.8 节 “创建归档策略规则”。
2.4.1. 指标
Gnocchi 提供名为 metric 的对象类型。指标是您可以测量的任何内容,例如,服务器的 CPU 使用量、房间温度或网络接口发送的字节数。指标具有以下属性:
- 用于标识它的 UUID
- 一个名称
- 用于存储和聚合测量结果的归档策略
其他资源
- 有关术语定义,请参阅 Gnocchi Metric-as-a-Service 术语。
2.4.1.1. 创建指标
流程
创建资源。将 <resource_name> 替换为资源名称:
$ openstack metric resource create <resource_name>
创建指标。将 <resource_name> 替换为资源名称,<metric_name> 替换为指标的名称:
$ openstack metric metric create -r <resource_name> <metric_name>
在创建指标时,归档策略属性将修复且不可更改。您可以通过
archive_policy
端点来更改归档策略的定义。
2.4.2. 创建自定义测量结果
测量是 API 发送到 Gnocchi 的传入 datapoint tuple。它由一个时间戳和一个值组成。您可以创建自己的自定义测量结果。
流程
创建自定义测量:
$ openstack metric measures add -m <MEASURE1> -m <MEASURE2> .. -r <RESOURCE_NAME> <METRIC_NAME>
2.4.3. 默认归档策略
默认情况下,Gunome 具有以下归档策略:
低
- 5 分钟粒度,超过 30 天
-
aggregation methods used:
default_aggregation_methods
- 每个指标的最大估算大小: 406 KiB
中
- 7 天的 1 分钟粒度
- 1 小时粒度,超过 365 天
-
aggregation methods used:
default_aggregation_methods
- 每个指标的最大估算大小: 887 KiB
high
- 1 小时上的 1 秒粒度
- 1 分钟粒度超过 1 周
- 1 年 1 小时粒度
-
aggregation methods used:
default_aggregation_methods
- 每个指标的最大估算大小: 1 057 KiB
bool
- 1 年 1 年第二个粒度
- 使用的聚合方法:最后
- 每个指标的最大 optimistic 大小:1 539 KiB
- 每个指标的最大数值:277 172 KiB
2.4.4. 计算时间序列聚合的大小
Gnocchi 存储一个数据点集合,其中每个点都是聚合的。存储格式使用不同的技术压缩。因此,根据最糟的情况计算时间序列的大小估计,如下例所示。
流程
使用此公式计算点数:
点数 = timespan / granularity
例如,如果要在一分钟内保留一年的数据:
点数 = (365 天 X 24 小时 X 60 分钟)/ 1 分钟
点数 = 525600
要计算点大小(以字节为单位),请使用这个公式:
大小(以字节为单位) = 指向 X 8 字节数
bytes = 525600 指向 X 8 字节 = 4204800 字节 = 4.1 MB
这个值是一个聚合的时间序列的估算存储要求。如果您的归档策略使用多个聚合方法 - min、max、mean, sum、ad、sd、count - 按您使用的聚合方法数乘以这个值。
2.4.5. 指标 worker
您可以使用 metricd 守护进程来处理测量、创建聚合、存储聚合(聚合存储)和删除指标中的测量结果。指标守护进程负责大多数 CPU 使用量和 I/O 作业在 Gnocchi 中。每个指标的归档策略决定了指标守护进程的执行速度。指标检查传入的存储,以定期检查新测量结果。要配置各个检查之间的延迟,您可以使用 [metricd]metric_processing_delay 配置选项
。
2.4.6. 创建归档策略
流程
创建归档策略。将 <archive-policy-name> 替换为策略的名称,<aggregation-method> 替换为聚合方法。
# openstack metric archive policy create <archive-policy-name> --definition <definition> \ --aggregation-method <aggregation-method>
注意<definition> 是策略定义。使用逗号(,)分隔多个属性。使用冒号(:)分隔归档策略定义的名称和值。
2.4.7. 管理归档策略
删除归档策略:
openstack metric archive policy delete <archive-policy-name>
查看所有归档策略:
# openstack metric archive policy list
查看归档策略的详情:
# openstack metric archive-policy show <archive-policy-name>
2.4.8. 创建归档策略规则
归档策略规则定义了指标和归档策略之间的映射。这样,用户可以预定义规则,以便根据匹配模式将归档策略分配给指标。
流程
创建归档策略规则。将 <rule-name> 替换为规则的名称,<archive-policy-name> 替换为归档策略的名称:
# openstack metric archive-policy-rule create <rule-name> / --archive-policy-name <archive-policy-name>