mercyblitz / java-training-camp

Java Training Camp
Apache License 2.0
169 stars 116 forks source link

作业七:基于 Micrometer 搭建微服务监控平台 #3

Open mercyblitz opened 1 year ago

mercyblitz commented 1 year ago

具体要求

1. 创建自定义的 Metrics

Metrics 名称(自由发挥) 必须 Tags:

可选 Tags 自己决定

2. 将 Metrics 导出到 InfluxDB

搭建 InfluxDB 环境 创建 InfluxDB 数据库 通过 Spring Boot Influx Client 导出

3. 将 Grafana 添加 InfluxDB 数据源

4. 在 Grafana 展示自定义 Metrics

a. 熟悉 InfluxDB SQL 语法 b. 理解不同 Metrics 类型在图形化界面的展示 c. 导出模板 JSON 文件

5. 高阶:可选实现

替代 Spring Boot InfluxMetricsExportAutoConfiguration 实现,提供断点续传的能力的 InfluxDB 的推送,具体而言:

  1. 将 Metrics 导出到以本地文件的 MeterRegistry 实现(类似于日志实现)
  2. 独立 Metrics 上报进程
    1. 将本地文件 Metrics 数据同步到 InfluxDB(可参考独立进程)
    2. 实现调度任务,可记录上次成功提交的数据的偏移量(类似 Kafka Offset)
liqi19950722 commented 1 year ago

https://github.com/liqi19950722/Work/tree/master/work-7 安装Prometheus 安装Grafana docker安装influxdb 断电续传的能力的 InfluxDB 的推送 遇到问题

  1. AutoConfiguredCompositeMeterRegistry 中的 Meter tag 值 和 Children中的tag值不一致,原因是org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryConfigurer#configure不往AutoConfiguredCompositeMeterRegistry中添加 MeterFilter
  2. 上传Influxdb时,tag值中有空格或者逗号时需要转义

    tag set: Comma-delimited list of key value pairs, each representing a tag. Tag keys and values are unquoted strings. Spaces and commas must be escaped.

Kurok1 commented 1 year ago

https://github.com/Kurok1/java-training-camp/tree/homework/micrometer-platform/stage-1/src/biz-project

karidyang commented 1 year ago

https://github.com/karidyang/java-training-camp/tree/master/homework-7