Jaeger

如何检测 Web 服务请求丢失问题

心不动则不痛 提交于 2019-11-29 20:59:13
导读 『StabilityGuide』是阿里多位阿里技术工程师共同发起的稳定性领域的知识库开源项目,涵盖性能压测、故障演练、JVM、应用容器、服务框架、流量调度、监控、诊断等多个技术领域,以更结构化的方式来打造稳定性领域的知识库,欢迎您的加入。 @GitHub : https://github.com/StabilityMan/StabilityGuide 问题描述 最近偶尔有用户反馈某些 HTTP 接口出现超时问题,而 web 服务端的 Trace 监控没有出现 http 返回值为 503 等异常情况。出现这种情况一般是web容器出现问题,客户端连接不上来。本文将主要介绍如何去监控这类问题。 我们是用典型的 Web 服务架构,应用通过域名访问到我们的 LVS(Linux Virtual Server)机器,LVS 后面对应了多台 Web 服务器。 考虑到无法对 LVS 进行跟踪,而 Web 服务器(Tomcat 上出现堆积,无法评估影响范围)。考虑再三后,我们准备在Tomcat 和 LVS 上加一个 Nginx,用于追踪用户访问的真实情况。Nginx 是一款自由、开源的高性能 HTTP 服务器。通过 Nginx 代码,我们可以掌握第一手的用户访问的真实情况,本来是打算通过 Nginx 的 Access 日志来做统计, 后来参考 阿里云链路追踪的文档,用链路追踪可以把 HTTP

五, 跨语言微服务框架

余生颓废 提交于 2019-11-28 21:25:04
在使用微服务会面临最大的一个问题也就是在服务数量增加带来的排查成本和监控成本,大家为了解决这些成本也衍生出了很多工作,当然在Istio中也很好的融合了这些组件,默认安装下就已经带上了这些组件(zipkin + jaeger , prometheus + grafana),本节就来看看怎么来使用这些组件 附上: 喵了个咪的博客: w-blog.cn Istio官方地址: https://preliminary.istio.io/zh Istio中文文档: https://preliminary.istio.io/zh/docs/ PS : 此处基于当前最新istio版本1.0.3版本进行搭建和演示 一. 清理bookinfo重新创建 先重置官方示例bookinfo回到最初的状态: 运行清理bookinfo脚本,并且重新创建 > ./istio-1.0.3/samples/bookinfo/platform/kube/cleanup.sh namespace ? [default] istio-test using NAMESPACE=istio-test Deleted config: destinationrules details ... Application cleanup successful # 重新初始化 > kubectl apply -n istio-test -f

分布式调用链调研(pinpoint,skywalking,jaeger,zipkin等对比)

☆樱花仙子☆ 提交于 2019-11-28 11:36:30
1. APM简述 APM (Application Performance Management)是对企业的应用系统进行实时监控,它是用于实现对应用程序性能管理和故障管理的系统化的解决方案。 2.APM主要解决的问题: 集中式度量系统 分布式全链接追踪系统 集中式日志系统(elk) ...... 3.分布式调用追踪(APM)一览 google的Drapper--未开源,最早的APM 阿里-鹰眼--未开源 大众点评——CAT--跨服务的跟踪功能与点评内部的RPC框架集成,这部分未开源且项目在2014.1已经停止维护。服务粒度的监控,通过代码埋点的方式来实现监控,比如: 拦截器,注解,过滤器等,对代码的侵入性较大,集成成本较高。 Hydra-京东: 与dubbo框架集成,对于服务级别的跟踪统计,现有业务可以无缝接入。对于细粒度的兴趣点,需要业务人员手动添加.开源项目已于2013年6月停止维护 PinPoint-naver,字节码探针技术,代码无侵入,体系完善不易修改,支持java,技术栈支持dubbo.其他语言社区支援中 zipkin--java方便集成于springcloud,社区支持的插件也包括dubbo,rabbit,mysql,httpclient等( https://github.com/openzipkin/brave/tree/master/instrumentation

生产环境-微服务实践架构(springcloud)流程图分享

☆樱花仙子☆ 提交于 2019-11-28 09:25:59
线上微服务架构图 注: 绘图工具: https://www.processon.com 其他信息: 接口文档管理: swagger ,后期转入bootstrap-swagger-ui (其支持自定义http header 等参数)。同时利用yapi来进行跨部门间的对接 yapi 地址: https://github.com/ymfe/yapi yapi支持导入swagger.json文件,从而自动生成api文档,同时支持mock测试,web权限管理 mysql 链接原先是通过直链主库ip,后期改为 vip 链接(保证主库宕机时的ip指向漂移) 金丝雀与灰度发布 在开发中,目前思路是在请求参数中绑定上版本version来确定流量指向,在网关层面做分发。 参考链接: https://github.com/siaorg/sia-gateway 尝试在网关层面做过一次流量请求次数统计,最开始是 atomicInteger ,但因为其底层的CAS机制在高并发的时候表现较差,故改为JDK8中的 LongAddr 类来实现(实际性能测试:1000个线程并发,耗时约为 atomicInteger 的十分之一) 链路监控引入 jaeger ( Jaeger 是Uber推出的一款开源分布式追踪系统,兼容 OpenTracing API ),链路追踪数据存储到ES中,并配合grafana,