当前位置: 首页 > news >正文

Java-KoTime:接口耗时监测与邮件通知接口耗时情况

文章目录

  • 一、前言
  • 二、使用方式
    • 2.1 添加依赖
    • 2.2 配置切面范围
    • 2.3 配置邮件服务
    • 2.4 玩耍去,坐等邮件通知
  • 三、总结


一、前言

作为一个调用链路追踪、接口耗时定位的工具,KoTime目前已经更新到了v2.2.6,从最开始链路追踪开始,慢慢加入了异常检测、数据库和redis存储数据、入参组合分析等,但是慢慢发现经常去系统看接口耗时也是挺累的,所以从v2.2.5开始加入了邮件通知功能,可以将一些超时阈值的接口信息推送到邮箱,就可以安心干别的事情了(比如看剧)!有什么问题邮件通知我即可!

下面介绍一下邮件功能的使用方式.


二、使用方式

2.1 添加依赖

添加v2.2.6的一来即可,如果项目中没有引入邮件相关的依赖,启动会报错,此时需要加入spring-boot-starter-mail

<dependency>
    <groupId>cn.langpy</groupId>
    <artifactId>ko-time</artifactId>
    <version>2.2.6</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

2.2 配置切面范围

切面范围需要包括你想检测的调用链路范围

ko-time.pointcut=execution(public * com.huoyo..*.*(..))

配置完以后启动项目测试一下:

访问 /koTime ,看看调用图:
在这里插入图片描述

确认配置正确,下面开始配置邮件服务.

2.3 配置邮件服务

邮件的配置需要在application.properties添加以下内容即可.

需要注意的是,邮件的默认服务为QQ邮件服务器smtp.qq.com,有QQ邮箱的简单的简单配置以下即可,另外需要申请一下邮箱的授权码,可以登录自己的邮箱后申请.

ko-time.mail-enable=true # 开启邮件通知 默认false
ko-time.mail-user=xxxx@qq.com # 设置发送者 可以设置为你的QQ邮箱 必填
ko-time.mail-code=xxxxxxx # 邮箱授权码 请到QQ邮箱申请 必填
ko-time.mail-receivers=xxxx@qq.com # 邮件接收者 多个请用英文逗号隔开 必填

如果想使用126或者其他邮箱的,声明以下配置即可.

ko-time.mail-protocol=smtp # 邮件协议 默认smtp 可以不配置
ko-time.mail-host=smtp.qq.com # 邮件服务器 默认smtp.qq.com(QQ邮件) 可以不配置
ko-time.mail-port=587 # 邮件服务器 默认587(QQ邮件端口) 可以不配置
ko-time.mail-encoding=UTF-8 # 邮件编码 默认UTF-8 可以不配置
ko-time.mail-threshold=4 # 邮件触发阈值 默认4 耗时n次超过阈值即发送邮件  可以不配置
ko-time.mail-scope=Controller # 邮件检测范围 默认Controller(接口层)   可选{All,Controller,Service,Dao,Other}

2.4 玩耍去,坐等邮件通知

玩耍的时候记得带着笔记本啊,随时准备改代码

如果不幸的话,可能就会收到邮件通知:
在这里插入图片描述


三、总结

以上就是KoTime的邮件服务配置,想了解更多详情请参考KoTime文档

你以为你可以安心玩耍,不可能!天下都是Bug,有前辈留下的...自己写的...同事写的...等等

相关文章:

  • 【Linux】Linux系统编程(入门与系统编程)(一)(环境搭建、常见指令以及权限理解)
  • 【JavaScript高级】函数相关知识:函数、纯函数、柯里化、严格模式
  • Android多渠道之自定义apk输出
  • Day03 Css的学习深入 background-X属性
  • aardio + Python 可视化快速开发桌面程序,一键生成独立 EXE
  • 分享两款智慧物业系统源码,前后端分离,前端VUE,Uni-app框架
  • 新手看过来----讨厌的运算符
  • Matlab中importdata函数的使用
  • 4)自适应滤波(一)
  • Web前端期末大作业-重庆旅游景区网页设计(HTML+CSS+JS)
  • MySQL:复合查询和内外连接
  • 高亮蓝紫光油溶性ZnSe/ZnS量子点,PL波长390nm-440nm
  • SpringMVC概述及入门案例
  • 这篇文章告诉你三个好用的配音软件
  • 看漫画学Python 原来真的有用
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • CSS居中完全指南——构建CSS居中决策树
  • DataBase in Android
  • Django 博客开发教程 16 - 统计文章阅读量
  • E-HPC支持多队列管理和自动伸缩
  • gcc介绍及安装
  • MaxCompute访问TableStore(OTS) 数据
  • Rancher-k8s加速安装文档
  • React-flux杂记
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 爱情 北京女病人
  • 对超线程几个不同角度的解释
  • 计算机在识别图像时“看到”了什么?
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 跨域
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • ​linux启动进程的方式
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (1)STL算法之遍历容器
  • (2015)JS ES6 必知的十个 特性
  • (26)4.7 字符函数和字符串函数
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (十二)springboot实战——SSE服务推送事件案例实现
  • .Net 8.0 新的变化
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET Core 版本不支持的问题
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Core引入性能分析引导优化
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .NET单元测试
  • .Net多线程总结
  • .NET中的Exception处理(C#)
  • :=
  • @DataRedisTest测试redis从未如此丝滑