温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

RGW Usage类有什么用

发布时间:2021-12-18 16:40:17 来源:亿速云 阅读:127 作者:小新 栏目:云计算

小编给大家分享一下RGW Usage类有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一、概述。

     RGW Usage类实现了RGW的流量统计功能,其中包括发送/接收的字节数、执行操作的个数以及成功之行操作的个数。Usage类统计的这些内容对于一般的流量统计来说已经够用了。

二、核心数据结构解析。

RGW Usage核心数据结构如下:

struct rgw_usage_log_entry {

     rgw_user owner;

     rgw_user payer;

     string bucket;

     uint64_t epoch;

     rgw_usage_data total_usage;

     map<string, rgw_usage_data> usage_map;

};

三、核心类关系图。

RGW Usage类有什么用

四、核心处理函数解析。

1、获取RGWUsage信息。

RGWUsage::show()

|__RGWRados::read_usage()

     |__RGWRados::cls_obj_usage_log_read()

          |__cls_rgw_usage_log_read()

               |__rgw_user_usage_log_read()

                    |__usage_iterate_range()

                         |__cls_cxx_map_get_vals()          CEPH_OSD_OP_OMAPGETVALS

                         |__usage_record_decode()          从bufferlist中解析出rgw_usage_log_entry对象

                         |__usage_log_read_cb()

                              |__通过rgw_usage_log_entry::owner和rgw_usage_log_entry::bucket创建rgw_user_bucket对象

                              |__以rgw_user_bucket对象为key,rgw_usage_log_entry为value写入到map中

2、删除RGWUsage信息。

RGWUsage::trim()

|__RGWRados::trim_usage()

     |__RGWRados::cls_obj_usage_log_trim()

          |__cls_rgw_usage_log_trim()

               |__rgw_user_usage_log_trim()

                    |__usage_iterate_range()

                         |__cls_cxx_map_get_vals()          CEPH_OSD_OP_OMAPGETVALS

                         |__usage_record_decode()          从bufferlist中解析出rgw_usage_log_entry对象

                         |__usage_log_trim_cb()               

                              |__usage_record_name_by_time()          格式:epoch_user_bucket

                              |__usage_record_name_by_user()          格式:user_epoch_bucket

                              |__cls_cxx_map_remove_key()     CEPH_OSD_OP_OMAPRMKEYS

                              |__cls_cxx_map_remove_key()     CEPH_OSD_OP_OMAPRMKEYS

3、增加RGWUsage信息。

可以通过flush()函数或通过rgw_log_op()函数来增加RGWUsage信息,增加RGWUsage信息的入口代码位于RGWRados::log_usage()。下面详细描述该函数的处理流程。

RGWRados::log_usage()

|__RGWRados::cls_obj_usage_log_add()

     |__cls_rgw_usage_log_add()

          |__rgw_user_usage_log_add()

               |__usage_record_name_by_time()                         格式:epoch_user_bucket

               |__cls_cxx_map_set_val()                                      CEPH_OSD_OP_OMAPSETVALS

               |__usage_record_name_by_user()                         格式:user_epoch_bucket

               |__cls_cxx_map_set_val()                                      CEPH_OSD_OP_OMAPSETVALS

以上是“RGW Usage类有什么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI