.NET LINQ分析AWS ELB日志
前言
小明是个单纯的.NET
开发,一天大哥叫住他,安排了一项任务:
“小明,分析一下我们超牛逼
网站上个月的所有AWS ELB
流量日志,这些日志保存在AWS S3
上,你分析下,看哪个API
的响应时间中位数最长。”
“对了,别用Excel
,哥给你写好了一段Python
脚本,可以自动解析统计一个AWS ELB
文件的日志,你可以利用一下。”
“好的✌,大哥真厉害!”。
小明看了一下,然后傻眼了,在管理控制台中,九月份AWS ELB
日志文件翻了好几页都没翻完,大概算算,大概有1000
个文件不止。想想自己又不懂Python
,又不是搞数据分析专业出身的,这个“看似简单”的工作完不成,这周怕是陪不了女朋友,搞不好还要996.ICU
,小明几乎要流下了没有技术的泪水……
不怕!会.NET
就行!
要完成这项工作,光老老实实将文件从管理控制台下载到本地,估计都够喝一壶。若小明稍机灵点,他可能会找到AWS S3
的文件管理器,然后……发现只有付费版才有批量下载功能。
其实要完成这项工作,只需做好两项基本任务即可:
- 从
AWS S3
下载9月份的所有ELB
日志 - 聚合并分析这1000多个日志文件,然后按响应时间中位数倒排序
AWS
资源
能在管理控制台上看到的AWS
资源,AWS
都提供了各语言的SDK
可供操作(可在SDK
上操作的东西,如批量下载,反倒不一定能在界面上看到)。SDK
支持多种语言,其中(显然)也包括.NET
。
对于AWS S3
的访问,Amazon
提供的NuGet
包叫:AWSSDK.S3
,在Visual Studio
中下载并安装,即可运行本文的示例。
要使用AWSSDK.S3
,首先需要实例化一个AmazonS3Client
,并传入aws access key
、