Skip to content

N9E java sdk,采集应用数据上报N9E collector 或transfer。

Notifications You must be signed in to change notification settings

seaframework/sea-monitor-all

Repository files navigation

sea-monitor

Stargazers over time

Stargazers over time

N9E java sdk,采集应用数据上报N9E collector 或transfer。

Overview

后端截图

报警截图

架构

sea-monitor默认情况下以SDK形式嵌入到应用,方便研发人员使用;

支持PUSH和Pull两种模式,push模式是异步上报到N9E-collector,pull模式需要自己采集日志

push方式(默认)

Pull方式(支持)

原理

  • 应用启动后,初始化SeaMonitor类,启动消息发送线程
  • 当调用SeaMonitor API时,数据点即Metrics,会放入队列,消息发送线程会周期性的将数据发送至远端
  • 在N9E monapi端定义告警策略,集成钉钉通知

工程结构

├── sea-monitor   // 监控SDK
├── sea-monitor-boot-starter // spring-boot工程集成
├── sea-monitor-boot-starter-demo  // spring-boot工程示例
└── sea-monitor-web-demo // 常规spring-web工程示例

Doc

支持的中间件以及API

API

更多请参考这里

单个指标

      MetricDTO metricDTO = new MetricDTO();
      metricDTO.setMetric(MetricEnum.HTTP_REQUEST_ERROR.getKey());
      metricDTO.setValue(1);
      metricDTO.setErrorFlag(true);
      metricDTO.setTraceIdFlag(true);
      SeaMonitor.logMetric(metricDTO);

统计指标

     SeaMonitor.logCount(MetricEnum.HTTP_REQUEST_ERROR_COUNT.getKey());

SPI扩展指标

适用于定制化周期性指标上报,统计周期1min

  • META-INF/service/目录下新建文件com.github.seaframework.monitor.heartbeat.StatusExtension
  • 实现接口com.github.seaframework.monitor.heartbeat.StatusExtension
  • META-INF/service/com.github.seaframework.monitor.heartbeat.StatusExtension文件中存放对应的实现类即可

参考资料

  • SDK的实现参考了CAT-SDK
  • 感谢N9E团队的支持

最后

您的支持是我最大的动力

drawing