注意

本文档适用于 Ceph 开发版本。

指标

Ceph对象网关使用性能计数器来跟踪指标。这些计数器可以被标记 (标记性能计数器。当计数器被标记时,它们存储在Ceph对象网关特定的缓存中。

这些指标可以发送到时间序列数据库Prometheus,以可视化集群范围内的使用数据(例如:特定存储桶上的S3 put操作数量)随时间变化的情况。

操作指标

以下与S3或Swift操作相关的指标按每个Ceph对象网关进行跟踪。

Ceph对象网关操作指标

名称

类型

描述

put_obj_ops

计数器

put操作的数量

put_obj_bytes

计数器

put的字节数量

put_obj_lat

计量值

put操作的总延迟

get_obj_ops

计数器

get操作的数量

get_obj_bytes

计数器

get请求的字节数量

get_obj_lat

计量值

get操作的总延迟

del_obj_ops

计数器

删除对象操作的数量

del_obj_bytes

计数器

删除的字节数量

del_obj_lat

计量值

删除对象操作的总延迟

del_bucket_ops

计数器

删除存储桶操作的数量

del_bucket_lat

计量值

删除存储桶操作的总延迟

copy_obj_ops

计数器

复制对象操作的数量

copy_obj_bytes

计数器

复制的字节数量

copy_obj_lat

计量值

复制对象操作的总延迟

list_object_ops

计数器

列出对象操作的数量

list_object_lat

计量值

列出对象操作的总延迟

list_bucket_ops

计数器

列出存储桶操作的数量

list_bucket_lat

计量值

列出存储桶操作的总延迟

输出中显示操作指标的命令有三个不同的部分。counter dumpcounter schema命令显示操作指标及其信息的输出。rgw_op, rgw_op_per_user, and rgw_op_per_bucket.

“计数器”部分中的计数器反映特定Ceph对象网关的每个操作指标的总和。rgw_op section reflect the totals of each op metric for a given Ceph Object Gateway. The counters in the rgw_op_per_userrgw_op_per_bucket部分分别是用户或存储桶的操作指标的标记计数器。

操作指标的信息可以在输出命令的rgw_op部分中。counter schema command.

要查看Ceph对象网关中的操作指标,请转到输出命令的rgw_op部分中。counter dump command:

"rgw_op": [
    {
        "labels": {},
        "counters": {
            "put_obj_ops": 2,
            "put_obj_bytes": 5327,
            "put_obj_lat": {
                "avgcount": 2,
                "sum": 2.818064835,
                "avgtime": 1.409032417
            },
            "get_obj_ops": 5,
            "get_obj_bytes": 5325,
            "get_obj_lat": {
                "avgcount": 2,
                "sum": 0.003000069,
                "avgtime": 0.001500034
            },
            ...
            "list_buckets_ops": 1,
            "list_buckets_lat": {
                "avgcount": 1,
                "sum": 0.002300000,
                "avgtime": 0.002300000
            }
        }
    },
]

操作指标标签

操作指标也可以按用户或按存储桶进行跟踪。这些指标使用标签导出到Prometheus。bucket = {name}user = {userid}:

"rgw_op_per_bucket": [
    ...
    {
        "labels": {
            "Bucket": "bucket1"
        },
        "counters": {
            "put_obj_ops": 2,
            "put_obj_bytes": 5327,
            "put_obj_lat": {
                "avgcount": 2,
                "sum": 2.818064835,
                "avgtime": 1.409032417
            },
            "get_obj_ops": 5,
            "get_obj_bytes": 5325,
            "get_obj_lat": {
                "avgcount": 2,
                "sum": 0.003000069,
                "avgtime": 0.001500034
            },
            ...
            "list_buckets_ops": 1,
            "list_buckets_lat": {
                "avgcount": 1,
                "sum": 0.002300000,
                "avgtime": 0.002300000
            }
        }
    },
    ...
]

RGW多租户允许同时使用同名存储桶和用户。如果一个用户或存储桶属于租户,则会在指标中添加一个租户标签,格式为tenant = {tenantid}

在具有许多用户和存储桶的大型系统中,将所有指标导出到Prometheus可能不可行。因此,默认情况下禁用这些标记指标的收集。

启用后,跟踪的用户和存储桶的工作集将受到限制,以限制内存和数据库使用。因此,这些标记指标的收集可能并不总是可靠的。

用户和存储桶计数器缓存

要通过用户跟踪操作指标,Ceph对象网关的配置值rgw_user_counters_cache必须设置为true.

要通过存储桶跟踪操作指标,Ceph对象网关的配置值rgw_bucket_counters_cache必须设置为true.

这些配置值通过命令在Ceph中设置ceph config set client.rgw rgw_{user,bucket}_counters_cache true

由于操作指标是标记的性能计数器,它们存储在内存中。如果Ceph对象网关重新启动或崩溃,Ceph对象网关中的所有计数器(无论是否在缓存中)都将丢失。

用户和存储桶计数器缓存大小和驱逐

rgw_user_counters_cache_sizergw_bucket_counters_cache_size可以用来设置每个缓存中的条目数。

一旦缓存中的计数器数量大于缓存大小配置变量,计数器就会被驱逐。被驱逐的计数器是最少最近使用的(LRU)。

例如,如果存储桶数量超过rgw_bucket_counters_cache_size1,并且带有标签bucket1的计数器是最后更新的,则缓存中的bucket1计数器将被驱逐。如果操作指标跟踪的S3操作在驱逐后执行,则缓存中的所有bucket1 after eviction, all of the metrics in the cache for bucket1指标都将从0开始。

缓存大小可能取决于许多因素。这些因素包括:

  1. 集群中的用户数量

  2. 集群中的存储桶数量

  3. Ceph对象网关的内存使用情况

  4. Prometheus的磁盘和内存使用情况。

要帮助计算Ceph对象网关的缓存内存使用情况,应注意每个缓存条目(包含所有操作指标)是1360字节。这是一个估计值,如果操作指标列表中添加或删除了指标,可能会发生变化。

将指标发送到Prometheus

要将Ceph对象网关的指标获取到时间序列数据库Prometheus中,ceph-exporter守护进程必须正在运行并配置为抓取Ceph对象网关的管理套接字。

ceph-exporter守护进程定期抓取Ceph对象网关的管理套接字,该间隔由配置变量exporter_stats_period.

定义。https://prometheus.io/docs/prometheus/latest/configuration/configuration/).

配置参考

以下Ceph对象网关操作指标相关设置可以通过ceph config set client.rgw CONFIG_VARIABLE VALUE.

rgw_user_counters_cache

启用rgw性能计数器缓存,用于带有用户标签的计数器

type:

bool

default:

false

参见:

rgw_user_counters_cache_size

rgw_user_counters_cache_size

用户性能计数器缓存可以存储的标记性能计数器数量

type:

uint

default:

10000

参见:

rgw_user_counters_cache

rgw_bucket_counters_cache

启用rgw性能计数器缓存,用于带有存储桶标签的计数器

type:

bool

default:

false

参见:

rgw_bucket_counters_cache_size

rgw_bucket_counters_cache_size

存储桶性能计数器缓存可以存储的标记性能计数器数量

type:

uint

default:

10000

参见:

rgw_bucket_counters_cache

以下是可以通过ceph config set global CONFIG_VARIABLE VALUE.

exporter_stats_period

等待再次向exporter服务器发送请求的时间(秒)。

type:

int

default:

5

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.