Atom feed of this document
  
 转换器

转换器的定义可包含以下领域:

名称

转换器的名称

参数

转换器的参数。

参数小节可以包含转换器特定的字段,如在比率变化的情况下,资源和目标字段的不同子字段,这取决于转换器的实现。

 转换器变化率

如果是转换器创建了cpu_util计量,定义如下所示:

transformers:
    - name: "rate_of_change"
      parameters:
          target:
              name: "cpu_util"
              unit: "%"
              type: "gauge"
              scale: "100.0 / (10**9 * (resource_metadata.cpu_number or 1))"

转换器生成的变化率是来自于 cpu 计数器的样品值的 cpu_util 计量,它表示累计的 CPU 时间,以纳秒计算。上述转换器的定义 (为纳秒和多 CPU) 决定了一个扩展元素,这将在转换从 cpu 计量的顺序值中得到一个以 '%' 为单位的样品序列之前生效。

对于磁盘I/O率的定义,它是由转换器变化率所生成的:

transformers:
    - name: "rate_of_change"
      parameters:
          source:
              map_from:
                  name: "disk\\.(read|write)\\.(bytes|requests)"
                  unit: "(B|request)"
          target:
              map_to:
                  name: "disk.\\1.\\2.rate"
                  unit: "\\1/s"
              type: "gauge"
 单元转换变形器

转换器应用一个单位转换。它使用计量的卷并将它乘以一个给定的 'scale' 表达式。也支持 map_from map_to,与转换器变化率相同。

简单配置:

transformers:
    - name: "unit_conversion"
      parameters:
          target:
              name: "disk.kilobytes"
              unit: "KB"
              scale: "1.0 / 1024.0"

基于map_frommap_to :

transformers:
    - name: "unit_conversion"
      parameters:
          source:
              map_from:
                  name: "disk\\.(read|write)\\.bytes"
          target:
              map_to:
                  name: "disk.\\1.kilobytes"
              scale: "1.0 / 1024.0"
              unit: "KB"
 聚合变形器

合计了到来的直到有足够样品的转换器已经在路上或已经到达超时。

可以通过retention_time属性指定超时。如果我们打算在设置了一些聚合的样本后刷新聚合的话,我们可以指定大小参数。

所创建的样品的卷是进入转换器的样品卷的总数。样品可以以 project_iduser_idresource_metadata 属性进行聚集。要以所选择的属性聚集,请在配置中指定它们,并设置属性值以使用新的样品 (第一个会使用第一个样品的属性,最后一个会使用最后一个样品的属性,并丢弃不用的属性)。

通过resource_metadata来聚合60s的样本,且保持最后接收到的样本resource_metadata

transformers:
    - name: "aggregator"
      parameters:
          retention_time: 60
          resource_metadata: last

要通过 user_idresource_metadata 使每 15 个样品进行聚合,保留第一个接收的样品的 user_id 并丢弃 resource_metadata

transformers:
    - name: "aggregator"
      parameters:
          size: 15
          user_id: first
          resource_metadata: drop
 累加变形器

这个转换器简单地缓存了样品,直到足够的样品到达,然后将它们一次性放入管道中。

transformers:
    - name: "accumulator"
      parameters:
          size: 15
 多个计量算术转换器

该转换器允许我们在一个或多个计量和/或它们的元数据上进行算术计算,例如:

memory_util = 100 * memory.usage / memory

一个新的样品以转换器配置的 target 小节中描述的属性被创建。这个样品的卷是所提供的表达式的结果。计算在样品上执行,来自于相同的资源。

[注意]注意

计算限于相同间隔的计量。

配置实例:

transformers:
    - name: "arithmetic"
      parameters:
        target:
          name: "memory_util"
          unit: "%"
          type: "gauge"
          expr: "100 * $(memory.usage) / $(memory)"

为了演示使用元数据,这里是一个简单的计量,显示每个core的平均CPU执行时间:

transformers:
    - name: "arithmetic"
      parameters:
        target:
          name: "avg_cpu_per_core"
          unit: "ns"
          type: "cumulative"
          expr: "$(cpu) / ($(cpu).resource_metadata.cpu_number or 1)"
[注意]注意

表达式求值正常处理NaN和异常,在此情况下,它不会创建一个新的样本,而是会记录一个警告。

Questions? Discuss on ask.openstack.org
Found an error? Report a bug against this page


loading table of contents...