2.4. 规划和管理归档策略
归档策略定义了您如何聚合指标,以及将指标存储在时间序列数据库中的时长。归档策略定义为 timespan 的点数。
如果您的归档策略定义了粒度为 1 秒的 10 点策略,则时间序列存档最多保留 10 秒,各自代表 1 秒的聚合。这意味着,时间序列在最近点和旧点之间保留最多 10 秒的数据。归档策略也定义要使用的聚合方法。默认设置为参数 default_aggregation_methods
,其中默认值设置为 mean
、min
、max
。总
、std
、count
.因此,根据用例,归档策略和粒度可能会有所不同。
要计划归档策略,请确定您熟悉以下概念:
- 指标.更多信息请参阅 第 2.4.1 节 “指标”。
- 测量结果。更多信息请参阅 第 2.4.2 节 “创建自定义测量结果”。
- 聚合.更多信息请参阅 第 2.4.4 节 “计算时间序列聚合的大小”。
- 指标的 worker。更多信息请参阅 第 2.4.5 节 “metricd 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 的传入数据点数。它由一个时间戳和值组成。您可以创建自己的自定义测量结果。
流程
创建自定义测量:
$ openstack metric measures add -m <MEASURE1> -m <MEASURE2> .. -r <RESOURCE_NAME> <METRIC_NAME>
2.4.3. 默认归档策略
默认情况下,Gnocc 具有以下归档策略:
低
- 5 分钟粒度超过 30 天
-
使用的聚合方法:
default_aggregation_methods
- 每个指标的最大估算大小: 406 KiB
中
- 1 分钟粒度超过 7 天
- 365 天 1 小时粒度
-
使用的聚合方法:
default_aggregation_methods
- 每个指标的最大估算大小:887 KiB
high
- 1 小时第二个粒度
- 1 周的 1 分钟粒度
- 1 小时粒度超过 1 年
-
使用的聚合方法:
default_aggregation_methods
- 每个指标的最大预计大小:1 057 KiB
bool
- 1 年超过 1 秒的粒度
- 使用的聚合方法:最后
- 每个指标的最大优化大小:1 539 KiB
- 每个指标的最大 pessimistic 大小:277 172 KiB
2.4.4. 计算时间序列聚合的大小
Gnocchi 存储一系列数据点,其中每个点都是一个聚合的。存储格式使用不同的技术进行压缩。因此,根据最糟糕的情况,计算时间序列的大小估计是估算的,如下例所示。
流程
使用此公式计算点数:
point 数量 = timespan / granularity
例如,如果要使用一分钟分辨率保留一年的数据:
点数 = (365 天 X 24 小时 X 60 分钟)/1 分钟
点数 = 525600
要计算点大小(以字节为单位),请使用这个公式:
字节大小(以字节为单位) = 点 X 8 字节数
字节大小 = 525600 点 X 8 字节 = 4204800 字节 = 4.1 MB
这个值是一个单一聚合时间序列的估算存储要求。如果您的归档策略使用多个聚合方法 - 分钟、max、mean、sted、std、count - 按您使用的聚合方法数乘以该值。
2.4.5. metricd worker
您可以使用 metricd 守护进程来处理测量结果,创建聚合、存储测量结果,以及删除指标。metricd 守护进程负责 Gnocchi 中大多数 CPU 用量和 I/O 作业。每个指标的归档策略决定指标守护进程执行的速度。metricd 会定期检查传入的存储是否有新的测量结果。要配置每个检查之间的延迟,您可以使用 [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> 是策略定义。使用逗号分隔多个属性(、)。使用冒号(:)分隔归档策略定义的 name 和值。
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>