转载本文需注明出处:微信公众号EAWorld,违者必究。
引言:
微服务框架落地后,分布式部署架构带来的问题就会迅速凸显出来。服务之间的相互调用过程中,如果业务出现错误或者异常,如何快速定位问题?如何跟踪业务调用链路?如何分析解决业务瓶颈?...本文我们来看看如何解决以上问题。
目录:
一、SkyWalking初探
二、业务调用链路监控
三、服务性能指标监控
四、服务告警
一、SkyWalking初探
Skywalking 简介
Skywalking是一款国内开源的应用性能监控工具,支持对分布式系统的监控、跟踪和诊断。
它提供了如下的主要功能特性:
Skywalking 技术架构
SW总体可以分为四部分:
1.Skywalking Agent:使用Javaagent做字节码植入,无侵入式的收集,并通过HTTP或者gRPC方式发送数据到Skywalking Collector。
2. Skywalking Collector:链路数据收集器,对agent传过来的数据进行整合分析处理并落入相关的数据存储中。
3. Storage:Skywalking的存储,时间更迭,sw已经开发迭代到了6.x版本,在6.x版本中支持以ElasticSearch、Mysql、TiDB、H2、作为存储介质进行数据存储。
4. UI :Web可视化平台,用来展示落地的数据。
Skywalking Agent配置
通过了解配置,可以对一个组件功能有一个大致的了解。让我们一起看一下skywalking的相关配置。
解压开skywalking的压缩包,在agent/config文件夹中可以看到agent的配置文件。
从skywalking支持环境变量配置加载,在启动的时候优先读取环境变量中的相关配置。
agent.namespace: 跨进程链路中的header,不同的namespace会导致跨进程的链路中断
agent.service_name:一个服务(项目)的唯一标识,这个字段决定了在sw的UI上的关于service的展示名称
agent.sample_n_per_3_secs: 客户端采样率,默认是-1代表全采样
agent.authentication: 与collector进行通信的安全认证,需要同collector中配置相同
agent.ignore_suffix: 忽略特定请求后缀的trace
collecttor.backend_service: agent需要同collector进行数据传输的IP和端口
logging.level: agent记录日志级别
skywalking agent使用javaagent无侵入式的配合collector实现对分布式系统的追踪和相关数据的上下文传递。
Skywalking Collector关键配置
Collector支持集群部署,zookeeper、kubernetes(如果你的应用是部署在容器中