使用Excel分析CloudStack使用记录

本文的内容最初由David Nailey在Build a Cloud博客上撰写。

诺基亚的亚历克斯·贝德罗夫(Alex Bederov)一年前写了一篇关于使用Excel分析他的云使用情况统计的文章。当时我想引用这篇文章,但当我去寻找它的时候,我才意识到这篇知识数据库文章发表的网站docs.cloudstack.org已经不复存在了。但好在我仍然保存着那篇文章,而且内容和我想讨论的问题相关,所以我想我会在这里重新发布其中内容,使读者仍然能够看到其中的内容。

CloudStack具有经过精心思考,设计合理的日志系统。所有的信息都会被收集到系统中,但是它不是“即开即用”的,你必须自己从中提取所需要信息,以创建有意义的记录,比如计费记录或使用情况报告。幸运的是,CloudStack Usage Server使得这项任务非常容易完成,Microsoft Excel数据透视表则会使报告变得有趣和简单。

我设置我的Usage Server每24小时运行一次。名为“cloud_usage”的usage数据库与名为"cloud"的主数据库位于同一个MySQL服务器上。资源使用情况存储在名为cloud_usage(与数据库同名)的表中。我使用下面的SQL查询语句调取未经整理的数据,并将其转化为按照一定标准,用逗号隔开的规范文本用于Excel处理。

(SELECT dc.name as "Datacenter", ac.account_name as "Account", u.domain_id
as "Domain ID", u.raw_usage,
s.cpu as "CPU count", s.speed as "CPU, MHz", s.ram_size as "RAM, MB",
8589934592/1024/1024/1024 as "Storage, GB", u.start_date,
"-", u.offering_id, u.usage_id, u.usage_type, u.description
FROM cloud_usage.cloud_usage u, cloud.account ac,
cloud.data_center dc, cloud.service_offering s
WHERE u.account_id=ac.id
AND u.zone_id=dc.id
AND u.offering_id=s.id
AND u.usage_type=1)
UNION
(SELECT dc.name as "Datacenter", ac.account_name as "Account", u.domain_id as
"Domain ID", u.raw_usage,
NULL as "CPU count", NULL as "CPU, MHz", NULL as "RAM MB",
u.size/1024/1024/1024 as "Storage, GB", u.start_date,
"-", u.offering_id, u.usage_id, u.usage_type, u.description
FROM cloud_usage.cloud_usage u, cloud.account ac,
cloud.data_center dc, cloud.disk_offering dsk
WHERE u.account_id=ac.id
AND u.zone_id=dc.id
AND u.offering_id=dsk.id
AND u.usage_type=6)

该查询将虚拟机和硬盘的使用情况组合到同一个表中,并取消id字段。当前我没有在其中包括网络数据使用情况,这是因为我使用的是基于直连VLAN的网络模型。其中请注意,usage_type字段“1”代表虚拟机使用情况,“6”代表数据存储情况。

为了将数据导入到Excel中,我们需要安装MySQL ODBC接口,这将允许我们直接连接到MySQL服务器。 MySQL ODBC接口可从Oracle官网免费下载。

当你安装好ODBC后,打开一个新的Excel工作簿,单击数据,然后选择“From Other Sources”,然后选择“From Microsoft Query”。选择“New Data Source”

命名这个数据源(随便起一个名字用作标记)并选择之前下载好的MySQL ODBC驱动程序:

我正在使用用于SSH连接的只读帐户,该账户具有对云和cloud_usage数据库的读取权限。 当你输入你的数据库账户密码后点击测试按钮并选择cloud_usage数据库。

如果测试连接成功,那么点击OK完成数据数据库的连接。之后就可以使用这个数据源了。

选择新创建的数据源,然后单击确定按钮。 欢迎来到Windows 3.1界面! 不要使用Microsoft Query向导来创建查询。 取消所有的提示,点击SQL按钮进入SQL语句窗口。

将你的SQL粘贴到一个可笑的小窗口中,并将你的查询语句保存到一个文件中,记得给它取个有意义的名字。 Excel会提示你在哪里放置结果数据,使用默认值。

这个操作的结果是将我们的查询结果导入到Excel电子表格中。 下面是我的数据的结果:

请注意,我所有的模板使用8GB硬盘大小,所以我把根磁盘大小在SQL查询中硬编码成8GB(注意根据实际情况修改)。 现在让我们分析下这些数据。 单击右上角以选择整个工作表,然后单击在Excel主菜单中插入的选项,然后选择数据透视表,然后单击透视图。 在“数据透视表字段列表”中进行以下选择:

推荐一本使用Excel的入门书籍,通过它可以学习如何使用透视表分析数据。

Beginning Pivot Tables in Excel 2017

作者和ISBN号见上图

本文的版权归 Sepmer Fi 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏思考的代码世界

Python网络数据采集之存储数据|第04天

存储媒体文件有两种主要的方式:只获取文件 URL 链接,或者直接把源文件下载下来。

4657
来自专栏杨建荣的学习笔记

关于权限管理的实用脚本(r4笔记第94天)

在工作中,可能会接触到很多的环境问题,对于权限问题,总是感觉心有余力而力不足,环境太多了,可能在赋予权限的时候会出差错, 比如下面的场景,数据都存储在owner...

3154
来自专栏Netkiller

数据库与图片完美解决方案

数据库与图片完美解决方案 电商商品图品与数据库脏数据完美解决方案 摘要 你是是不是在开发中常常遇到,删除了数据库记录后,发现该记录对应的图片没有删除,或者删除了...

3497
来自专栏张秀云的专栏

Spider 引擎分布式数据库解决方案(最全的 spider 教程)

最近开始负责财付通的数据库的相关维护工作,其中有几套系统使用的 spider 引擎,本文将 spider 引擎的功能、使用场景、部署、实战测试等做个简单的总结。

1.3K1
来自专栏程序猿

MySQL数据库优化小谈,简短。

更新文章的速度跟不上大家的热情了......,青岛的一场大雪,取暖基本靠抖了。 ? 好勒,现在写正经的。对于优化,这片文章我只说大致思路...

3517
来自专栏杨建荣的学习笔记

关于delete,drop,truncate的问题 (r6笔记第14天)

有一个很常规的问题大量出现在笔试面试中,就是delete,truncate和drop的区别,当然这个问题我们也可以升华一下,通过这个简单的问题其实可以关联到Or...

2935
来自专栏沃趣科技

Oracle Real Time SQL Monitoring

术语说明 TableQueue,消息缓冲区,在并行操作中使用,用于PX进程之间的通信,或者PX进程与QC进程之间的通信,是内存中的一些page,每个消息缓冲区的...

4548
来自专栏性能与架构

格式化SQL来提高效率

对SQL语句进行格式化不会让其运行得更快,但对我们的工作效率是有很大好处的 (1)提高SQL的可读性大大提高,便于维护 (2)提高开发效率,方便测试 例如 ? ...

3509
来自专栏Seebug漏洞平台

MySQL远程代码执行/权限提升漏洞的分析与实践(CVE-2016-6662)

本文作者:安全小飞侠,原文链接:http://avfisher.win/archives/593 0x00 背景 2016年9月12日,国外安全研究人员Dawi...

4135
来自专栏更流畅、简洁的软件开发方式

数据层应该分为两个部分,这样可以更好的“分工”,各自研究自己的功能

     数据层应该分为两个部分(并不是说一定要变成两层)第一个部分是处理SQL语句,包括存储过程的名称,存储过程的参数(一下的SQL语句都包含存储过程名称和存...

2316

扫码关注云+社区

领取腾讯云代金券