注意
本文档适用于 Ceph 开发版本。
指标
Ceph对象网关使用性能计数器来跟踪指标。这些计数器可以被标记 (标记性能计数器。当计数器被标记时,它们存储在Ceph对象网关特定的缓存中。
这些指标可以发送到时间序列数据库Prometheus,以可视化集群范围内的使用数据(例如:特定存储桶上的S3 put操作数量)随时间变化的情况。
操作指标
以下与S3或Swift操作相关的指标按每个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 dump
和counter 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_user
和rgw_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_size
和rgw_bucket_counters_cache_size
可以用来设置每个缓存中的条目数。
一旦缓存中的计数器数量大于缓存大小配置变量,计数器就会被驱逐。被驱逐的计数器是最少最近使用的(LRU)。
例如,如果存储桶数量超过rgw_bucket_counters_cache_size
1,并且带有标签bucket1
的计数器是最后更新的,则缓存中的bucket1
计数器将被驱逐。如果操作指标跟踪的S3操作在驱逐后执行,则缓存中的所有bucket1
after eviction, all of the metrics in the cache for bucket1
指标都将从0开始。
缓存大小可能取决于许多因素。这些因素包括:
集群中的用户数量
集群中的存储桶数量
Ceph对象网关的内存使用情况
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
用户性能计数器缓存可以存储的标记性能计数器数量
- type:
uint
- default:
10000
- 参见:
- rgw_bucket_counters_cache
启用rgw性能计数器缓存,用于带有存储桶标签的计数器
- type:
bool
- default:
false
- 参见:
- rgw_bucket_counters_cache_size
存储桶性能计数器缓存可以存储的标记性能计数器数量
- type:
uint
- default:
10000
- 参见:
以下是可以通过ceph config set global CONFIG_VARIABLE VALUE
.
- exporter_stats_period
等待再次向exporter服务器发送请求的时间(秒)。
- type:
int
- default:
5
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.