简介:Spring Boot 是基于 Java Spring 框架的套件 , 它预装了 Spring 的一系列组件 , 让开发者只需要很少的配置就可以创建独立运行的应用程序 。 在云原生的环境中 , 有大量的平台可以运行 Spring Boot 应用 , 例如虚拟机、容器等 。 但其中最有吸引力的 , 是以 Serverless 的方式运行 Spring Boot 应用 。
文章图片
作者:西流
SpringBoot 是基于 Java Spring 框架的套件 , 它预装了 Spring 的一系列组件 , 让开发者只需要很少的配置就可以创建独立运行的应用程序 。 在云原生的世界 , 有大量的平台可以运行 SpringBoot 应用 , 例如虚拟机 , 容器等 。 但其中最有吸引力的 , 是以 Serverless 的方式运行 SpringBoot 应用 。
我将通过一系列文章 , 从架构 , 部署 , 监控、性能、安全等5个方面来分析 Serverless 平台运行 SpringBoot 应用的优劣 。 为了让分析更有代表性 , 我选择了 github 上 star 数超过 50k 的电商应用 mall 作为示例 。 通过“SpringBoot Serverless 实战 - 部署”这篇文章 , 相信大家已经感受到 Serverless 应用上线的便捷 。 这是系列文章的第三篇 ,向大家展示如何监控和调试 Serverless 应用 。
实时日志 对运行在远端云平台上的应用而言 , 日志是调试的主要手段 。 分布式应用下有多个实例 , 日志的收集和分析是很有挑战的 。 虽然有很多成熟的开源产品 , 但要搭建和持续运维这些软件 , 成本不小 。 函数计算内置了对日志收集/分析的完整支持 。 用户只需要在应用逻辑中输出日志 , 这些日子被自动收集 , 并可以实时查看 , 通过多种方式聚合 , 查询 。
在之前的文章中 , 我们通过 Serverless Devs 工具已经为应用自动创建创建了日志仓库 , 可以在函数计算控制台查看请求 , 应用级别的日志 , 也可使用 SQL 语言进行高级查询 。 除此之外 , Serverless Devs 工具还提供了实时日志功能 , 对于应用调试非常有帮助 。
在项目根目录下 , 即 s.yaml 所在的目录 , 执行下面的命令 , 将输出 s.yaml 中定义的所有服务的日志 。
sudo -E s logs用户也可查看指定服务的日志 。
sudo -E s mall-admin logs通过 -t 参数 , 用户也可以进入观察模式实时查看日志 。
sudo -E s mall-admin logs -t此时 Serverless Devs 工具会实时监听 mall-admin 应用下所有实例的日志 , 将新产生的日志实时展示 。 此后 , 当我们通过浏览器或者 curl 等方式给 mall-admin 应用发送请求 , 就能看到对应的请求处理日志输出 。
文章图片
Serverless Devs 也支持根据关键词查询日志 。 比如我们可以执行下面的命令 , 查看 mall-admin 应用 ERROR 级别的日志 。
s mall-admin logs -t --keyword=ERROR指标多维查询展示 除了 Serverless Devs 的命令行工具 , 用户也可以在函数计算控制台上从函数、实例、请求等多个维度查看日志 。
以 mall-admin 为例 , 在函数计算控制台左侧导航栏 , 点击“服务及函数” , 选择 mall-admin 服务 , 再选择该服务下的同名函数 , 进入 mall-admin 函数详情页 。 点击 监控指标 标签页 。
如下图所示 , 请求列表展示了请求的执行情况 , 包括成功/失败 , 是在什么函数版本上执行的 , 执行时长 , 内存用量 , 在哪个实例上执行等等 。 也可以方便的查询请求相关的日志 。
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
