作者回复: CAT主要是调用链监控,主要看服务之间依赖关系,它也统计服务接口性能,也就是说它也带一部分metrcs功能。Prometheus主要是Metrics监控,可以对各种指标(计数,延迟,大小,错误等)埋点监控,它同时可以工作在系统/应用/业务甚至端用户体验层,可以说Prometheus的应用范围更广泛。两者的功能有部分重叠,实际应用中两个侧重点不同,CAT侧重trace链,Prometheus侧重metrcs点,可以互为补充。
作者回复: 生产实践中可以用Micrometer+Promethues来实现接口请求记数,一般用Counter,在dashboard展示时一般转为请求率,单位按分钟或小时或天聚合展示,可以看接口调用趋势。 除了metrics埋点,我之前经历的企业大都采用CAT埋点,CAT也统计接口调用性能情况(qps,平均延迟,95/99线等),对实际排查问题和性能调优很有帮助。
作者回复: 你先用spring boot的actuator的metrics端点校验下,看看metrics的名称/tags是否正确,再到promethues里头去查询。
作者回复: 这个可能和spring boot配置有关,你尝试用stackoverflow帖子中的方式调整配置看看: https://stackoverflow.com/questions/35517713/unable-to-access-spring-boot-actuator-actuator-endpoint
作者回复: Prometheus埋点,可以做到侵入或者不侵入,如果你直接用Prometheus客户端对应用代码进行埋点,一般是侵入;但是也可以做成独立的exporter,由它间接去采集监控数据(前提是应用有暴露监控数据的端点),就可以做到不侵入,具体你可以参考Prometheus的很多现成的exporter,有不少是非侵入的。
作者回复: CAT设计就是侵入性的,这个有利有弊,好处是比较灵活,性能好,不足是开发成本门槛高。如果你倾向非侵入,可以考虑SkyWalking,也是国人主导开发。
作者回复: 你好,Prometheus可以覆盖多层次监控,既可以覆盖系统运维层(CPU/内存/网络/磁盘/OS等),也可以覆盖应用甚至业务层,这个时候就需要研发Dev参与帮助埋点了,光运维没有应用和业务上下文很难搞定;另外行业趋势是DevOps研发运维一体化,纯开发和纯运维会逐渐被同时具备Dev和Ops复合能力的工程师取代,所以即便是业务研发人员也需要掌握像Promethues这样的DevOps监控工具。Promotheus现有提供的接口和工具可以覆盖大部分应用场景,基本配置就好,有些特殊场景需要定制研发,但是工作量也不大,前提是理解和会运用。