天天看点

如何灵活使用OSS监控数据动态调整OSS服务参数

如题,本文的目的是为了提供一种使用oss监控服务的数据灵活控制oss服务形态的例子,以方便大家能够举一反三,实现更多的通用方法解决多样的需求。

        其实oss监控服务已经提供了报警功能,能够方便用户对oss已经提供的metric指标进行监控报警,及时发现问题并进行处理。但是这种报警也只是做到了通知用户,通过邮件、旺旺、短信的方式,然而接下来如何行动,还是要靠用户自己了。另外,监控项的监控,仅仅是当前的监控情况,还没有对一段时间内的数据累计(或者求峰谷值、平均值等等)情况进行监控的功能。

        这里我举个使用的场景吧。之前在论坛上看到过用户吐槽oss没有流量监控功能,后来监控服务上线之后,又有位童鞋给我留言说还是不能满足他的需求,因为他希望oss在流量使用的“累计总值”超过他设置的阈值之后,能够自动限制对他的bucket资源的请求情况。

下面呢,我就结合oss监控服务的sdk和oss的sdk,给大家演示一下,满足一下这位童鞋的需求哈。

在bucket的权限为public read的情况下,用户的bucket可以接受任何合法的读请求访问,获取数据,从而产品流出流量。而公网流出流量我们是会收取流量资费的。

如果用户希望控制每日的费用支出,那么可以在每天流量消耗到一定的程度,就收回bucket的public read权限,改为private。那么在流量超限之后,所有的请求将会受到“accessdeny”错误码。

这样,你的目的就到达了,是吧。

这里简单写个代码示例演示一下,如何满足以上需求功能:

代码功能:

        从进程启动开始监控流量使用总量,每10分钟获取一次流量监控数据(每分钟一个值),如果总量超过设置的阈值,那么设置bucket的acl为private,退出进程。

      监控指标除了公网流出流量之外,当然还有容量、可用性、请求个数等等;操作方式除了控制oss bucket权限之外,还可以触发删除指定object、订阅mns、导出监控数据到实时分析/离线分析系统等等。

各种组合形式,各种需求功能,就看你自己怎么用啦。

       存储服务是阿里云最核心的服务,我们不但支持文件/对象/表格/日志等多种形式的存储,也正在研发下一代事件驱动的serverless计算服务。在这里,你的代码可能运行在几十万台服务器上,不但处理整个阿里巴巴集团最核心的数据,也会成为整个阿里云平台上万千企业云上数据的坚实基础,甚至开启下一代计算的新篇章。

        所以,我们诚聘您的加入,简历投至[email protected],在校优秀人才、社会牛人看过来哦~~