产品介绍
Alibaba Cloud Toolkit 是阿里云针对IDE平台为开发者提供的一款插件,用于帮助开发者高效开发并部署适合在云端运行的应用。在本地完成应用程序的开发、调试和测试后,可以使用在IDE(如Eclipse或IntelliJ)中安装的Cloud Toolkit插件,通过图形配置的方式连接到云端部署环境并将应用程序快速部署到云端。
SLS插件解决的痛点
作为一个软件开发人员,线上问题的排查是必不可少的经历。在不同成熟度的服务中,线上排查的流程也有些许不同。某些小的创业公司开发的软件,有可能服务还是单点的,或者几台机器搭建一个集群,每个服务的日志都需要ssh到每一台服务器上查看日志。成熟度高一些的公司,就会自建自己的日志服务平台、或者使用像SLS这种成熟的日志平台,将线上的日志集中起来管理,这样就省去了ssh到服务器上查看日志的麻烦,这样已经大大提高了问题排查的效率,
但是,还是不够完美。我们假设一种常见的场景,就是当线上发生了异常,此时我们从日志服务平台的页面上找到了服务的日志,比如是Java的stack trace。Java的stack trace通常是比较长的,那么为了准确的从代码库中找到发生异常的代码,我们需要在日志服务平台的页面和ide中来回切换;某些时候,当日志过长的时间,我们还需要把日志拷贝到本地文件中。这样在不同窗口之间来回切换,浪费了非常多宝贵的时间。
那么为了方便我们准确的把日志服务平台的日志跟代码关联起来,Alibaba Cloud Toolkit集成了SLS日志平台的功能,让软件开发者能够在ide中方便的查询到想要的日志。日志服务SLS是云原生观测与分析平台,为Log、Metric、Trace等数据提供大规模、低成本、实时的平台化服务。日志服务一站式提供数据采集、加工、查询与分析、可视化、告警、消费与投递等功能,全面提升研发、运维、运营、安全等场景的数字化能力。
下面我们就来看一个常见的java服务异常排查的场景,来看看Alibaba Cloud Toolkit插件中SLS的功能到底有多方便。
场景模拟
服务模拟
首先我们模拟一个线上发生异常的服务。创建一个简单的springboot服务,然后实现ApplicationRunner的一个Component类型的bean,做的事情非常简单,就是每秒打印一行NPE的日志,用来模拟线上发生NPE的服务。
@Component @Slf4j public class LogDemoService implements ApplicationRunner { @Override public void run(ApplicationArguments args) throws Exception { while (true) { try { String field = null; System.out.println(field.length()); Thread.sleep(1000); } catch (Exception e) { log.error("write exception log :", e); } } } }
服务打包好之后,在服务器上启动服务。
SLS采集部署、验证
然后我们在服务器上部署SLS的日志采集服务,具体操作文件参见:https://help.aliyun.com/document_detail/65018.html,用来把日志采集到SLS的logstore中,
我们在SLS的页面上确认日志已经成功采集到了之后,服务的模拟和日志平台的接入就已经完成了,下面我们回到ide里。
IDE配置、使用流程
首先我们通过intellij的plugins的market place查找到Alibaba Cloud Toolkit, 点击install,然后重启ide之后即可生效
点击Tools-> Alibaba Cloud -> Preference,配置账号信息,这里需要把拥有SLS日志查看权限的账号的Access Key Id和Access Key Secret填入
点击Tools-> Alibaba Cloud -> Alibaba Cloud View -> Alibaba Cloud SLS
即可在ide的窗口的下方看见SLS的日志查询界面
选择相应的Region和project之后,点击对应的logstore右边的查看按钮
就可以像SLS的页面一样,在ide里面查看服务的日志了,这个界面还支持日志时间范围的筛选和查询、分析语句的筛选,可以帮助开发人员快速准确的找到想要的日志数据。SLS查询和分析语句可以参考文档:https://help.aliyun.com/document_detail/128135.html
像Java Stack Trace这种比较长的日志,在这个界面没有办法一次性看到完整的信息,在查询结果每条日志右侧有一个"在编辑器中打开"的按钮
点击之后,就可以在ide的新的页面里完整查看这条日志,方便开发人员获取最完整的信息
总结
Alibaba Cloud Toolkit 是一款非常优秀的插件,新增SLS日志服务的功能,针对软件开发者日常工作中常见的问题排查场景,将日志服务平台的功能集成到ide当中,省去了不同窗口之间来回切换的时间,大大提高了日常工作的效率。