Alibaba Cloud Toolkit 中SLS插件助力线上服务问题排查
简介:Alibaba Cloud Toolkit 是一款非常优秀的插件,新增SLS日志服务的功能,针对软件开发者日常工作中常见的问题排查场景,将日志服务平台的功能集成到ide当中,省去了不同窗口之间来回切换的时间,大大提高了日常工作的效率。
产品介绍
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的日志采集服务,具体操作文件参见:Logtail采集 - 日志服务 - 阿里云,用来把日志采集到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查询和分析语句可以参考文档:查询与分析 - 日志服务 - 阿里云
像Java Stack Trace这种比较长的日志,在这个界面没有办法一次性看到完整的信息,在查询结果每条日志右侧有一个"在编辑器中打开"的按钮
点击之后,就可以在ide的新的页面里完整查看这条日志,方便开发人员获取最完整的信息
总结
Alibaba Cloud Toolkit 是一款非常优秀的插件,新增SLS日志服务的功能,针对软件开发者日常工作中常见的问题排查场景,将日志服务平台的功能集成到ide当中,省去了不同窗口之间来回切换的时间,大大提高了日常工作的效率。
本文为阿里云原创内容,未经允许不得转载。
Alibaba Cloud Toolkit 中SLS插件助力线上服务问题排查的更多相关文章
- Alibaba Cloud Toolkit 一键部署插件使用入门
一.前言 Cloud Toolkit官方介绍文档:https://www.aliyun.com/product/cloudtoolkit Cloud Toolkit 是针对 IDE 平台为开发者提供的 ...
- java线上服务问题排查
1.业务日志相关 假设系统出现异常或者业务有异常,首先想到的都是查看业务日志 查看日志工具: less 或者more grep tail -f filename 查看实时的最新内容 ps:切忌vim直 ...
- IEDA中使用阿里插件Alibaba Cloud Toolkit和Arthas(阿尔萨斯)
在 IntelliJ IDEA 中安装和配置 Cloud Toolkit 在 IntelliJ IDEA 中安装和配置 Cloud Toolkit 后,您可以将本地应用快速部署到阿里云 ECS.EDA ...
- 超实用!!!使用IDEA插件Alibaba Cloud Toolkit工具一键部署本地应用到ECS服务器
最近看到阿里云发布了一款名为 Alibaba Cloud Toolkit 的插件,可以帮助开发者高效开发并部署适合在云端运行的应用,瞬间击中了我的小心脏,这个对于个人开发者来说超级棒啊,终于不需要再手 ...
- 【Spring Boot】Spring Boot之使用Alibaba Cloud Toolkit(Idea插件)本地一键部署Spring Boot项目到远程服务器
一.Alibaba Cloud Toolkit(Idea插件)的安装 1)Alibaba Cloud Toolkit 介绍 Cloud Toolkit 是本地 IDE 插件,帮助开发者更高效地开发.测 ...
- Alibaba Cloud Toolkit,你确定不来尝鲜一下?
阿里云出了新的工具,Alibaba Cloud Toolkit,看看“toolkit”这个名字就知道它是一个工具集. 没错!它就是一个工具集,一个集打包部署发布以及探索分析程序的工具集.而我,目前还停 ...
- Eclipse使用Alibaba Cloud Toolkit极速部署项目
个人博客 地址:https://www.wenhaofan.com/a/20190716205809 什么是Alibaba Cloud Toolkit Cloud Toolkit 是针对 IDE 平台 ...
- Alibaba Cloud Toolkit 使用心得(IDEA版)
一.安装插件 确保 IntelliJ IDEA 在 2018.1 或更高版本 打开 Settings - Plugins 搜索安装 Alibaba Cloud Toolkit 二.配置环境 Deplo ...
- 一次线上服务高 CPU 占用优化实践 (转)
线上有一个非常繁忙的服务的 JVM 进程 CPU 经常跑到 100% 以上,下面写了一下排查的过程.通过阅读这篇文章你会了解到下面这些知识. Java 程序 CPU 占用高的排查思路 可能造成线上服务 ...
- Java线上应用故障排查之二:高内存占用
搞Java开发的,经常会碰到下面两种异常: 1.java.lang.OutOfMemoryError: PermGen space 2.java.lang.OutOfMemoryError: Java ...
随机推荐
- C++多态底层原理:虚函数表
虚函数表 C++ 对象模型 在有虚函数的情况下,C++对象的模型可以概括为:虚函数表指针+数据struct.在对象所在的内存里:前8个字节(64位系统)是虚函数表所在地址,后边是对象中的member ...
- FAT32 文件系统详解
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- 学会Promise,看这里!!!
前言 众所周知,在JavaScript的世界中,代码都是单线程执行的.由于这个原因,JavaScript中的耗时操作,如网络操作.浏览器事件等,都需要异步执行.这也导致在JavaScript中异步操作 ...
- C# 单例模式使用 Singleton
Singleton 类如下: public class Singleton<T> where T : class, new() { private static T _instance; ...
- KingabseES例程-函数和过程的 INVOKER 与 DEFINER
调用者权利和定义者权利子句 指定子程序的权利属性.权利属性影响单元在运行时,执行的SQL语句的名称解析和权限检查. PG模式: SECURITY INVOKER SECURITY DEFINER Or ...
- #点分树#洛谷 6626 [省选联考 2020 B 卷] 消息传递
题目 多组数据多组询问,对于一个点 \(x\) 和 树上的距离 \(k\),问 \(\sum_{i=1}^n[Dis(x,i)==k]\) 分析 卡了一页的常,发现两个 \(\log\) 过不去,有一 ...
- #构造,二分#[AGC006B] [AGC006D] Median Pyramid
Easy Hard 分析(Easy) 若\(X=1\)或\(X=2n-1\)无解,否则在正中间构造\(X-1,X,X+1\), 其余位置升序铺入剩余数, 若\(X-1\)左侧数大于\(X-1\)那么\ ...
- JDK 14的新特性:文本块Text Blocks
目录 举个例子 Indentation编排 Escaping转义 formatted格式化 总结 说起来,Text Blocks是在JDK13中以第一次预览版本引入的.现在在JDK14中是第二次预览版 ...
- 【中秋国庆不断更】OpenHarmony定义可动画属性:@AnimatableExtend装饰器
[中秋国庆不断更]OpenHarmony定义可动画属性:@AnimatableExtend装饰器 @AnimatableExtend装饰器用于自定义可动画的属性方法,在这个属性方法中修改组件不可动画的 ...
- Java 数据类型详解与类型转换技巧
Java 数据类型 Java 中的变量必须是指定的数据类型: int myNum = 5; // 整数 float myFloatNum = 5.99f; // 浮点数 char myLetter = ...