skywalking

浅谈应用系统立体化监控

十年热恋 提交于 2020-02-26 17:56:28
本人浅析传统IT系统层面的系统监控,不涉及k8s以及Service Mesh,抛砖引玉。 随着系统增多,我们需要一套能够立体化监控系统去监控你的应用及业务,出现问题能够及时告警,或通过大屏、短信和邮件。 我个人认为监控应该从三个方面进行入手,即:Metrics、Logging、Tracing。 Metrics (指标) 通常指标信息担负着数据可视化的物料信息,比如:计量器、直方图、计数器、TPS等等。 Logging(日志) 日志信息通常记录了应用程序运行时的详细状态信息。通常会有INFO、WARN、ERROR等级别。 Tracing(追踪) 在传统的单体应用,如传统的MVC系统中,通常访问逻辑明确。而使用微服务对系统进行重新设计之后,就会带来接口互调,多线程,应用多活情况下的调用次序不明等种种问题。这时迫切需要记录每次请求都经过了哪些主机的那些服务,以及是一次调用会带来系统内部的多次调用问题。以及Http传输协议的天然低效率问题,都是需要在追踪层面上做考虑的。 监控选型与架构: Metrics (指标): Promethues+Grafanna+Influxdb Logging(日志): ELK or Spark Streaming Tracing(追踪): Zipkin or Skywalking 欢迎关注我的公号:彪悍大蓝猫,持续分享SpringCloud、大数据干货~ 来源

聊聊skywalking的JVMService

柔情痞子 提交于 2020-02-26 07:42:03
序 本文主要研究一下skywalking的JVMService BootService skywalking-6.6.0/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/boot/BootService.java public interface BootService { void prepare() throws Throwable; void boot() throws Throwable; void onComplete() throws Throwable; void shutdown() throws Throwable; } BootService定义了prepare、boot、onComplete、shutdown四个方法 JVMService skywalking-6.6.0/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/jvm/JVMService.java @DefaultImplementor public class JVMService implements BootService, Runnable { private static

Skywalking数据采集与收集源码分析

荒凉一梦 提交于 2020-02-26 03:30:08
Skywalking数据采集与收集源码分析 skywalking作为一个分布式APM(应用性能管理)系统,目前被广泛使用在各种系统中。 skywalking官网: https://skywalking.apache.org/ skywalking的架构图如下: Skywalking的agent负责采集数据,发送到collector,collector聚合,并且存储这些数据,且提供了一个简洁使用的UI端,可共我们查看监控的指标。 下面我们来开始分析skywalking的源码。 下载源码并构建 因为skywalking为了实现高性能通信,采用的是grpc的方式来实现服务器与客户端的数据传输的,所以导入之后我们需要稍微做一些事情,我们可以参考 docs/en/guides/How-to-build.md 这篇文档来构建。 打包构建 我们可以在github上面将skywalking源码fork一份,然后下载到自己的本地。 // 直接 git clone --recurse-submodules https://github.com/apache/skywalking.git // 或者 git clone https://github.com/apache/skywalking.git cd skywalking/ git submodule init git submodule

双11 背后的全链路可观测性:阿里巴巴鹰眼在“云原生时代”的全面升级

左心房为你撑大大i 提交于 2019-12-23 11:17:22
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 导读: 作为一支深耕多年链路追踪技术 (Tracing) 与性能管理服务 (APM) 的团队,阿里巴巴中间件鹰眼团队的工程师们见证了阿里巴巴基础架构的多次升级,每一次的架构升级都会对系统可观测性能力 (Observability) 带来巨大挑战,而这次的“云原生”升级,给我们带来的新挑战又是什么呢? 云原生与可观测性 在刚刚过去的 2019 年 双11,我们再次见证了一个技术奇迹:这一次,我们花了一整年的时间,让阿里巴巴的核心电商业务全面上云,并且利用阿里云的技术基础设施顶住了 54 万笔/秒的零点交易峰值;我们的研发、运维模式,也正式步入了云原生时代。 云原生所倡导的新范式,给传统的研发和运维模式带来巨大冲击:微服务、DevOps 等理念让研发变得更高效,但带来的却是海量微服务的问题排查、故障定位的难度变得更大;容器化、Kubernetes 等容器编排技术的逐渐成熟让规模化软件交付变得容易,但带来的挑战是如何更精准地评估容量、调度资源,确保成本与稳定性的最好平衡。 今年阿里巴巴所探索的 Serverless、Service Mesh 等新技术,未来将彻底地从用户手中接管运维中间件以及 IaaS 层的工作,对于基础设施的自动化程度来讲则是一个更加巨大的挑战。 基础设施的自动化(Automation

双11 背后的全链路可观测性:阿里巴巴鹰眼在“云原生时代”的全面升级

萝らか妹 提交于 2019-12-20 19:18:08
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 点击下载《不一样的 双11 技术:阿里巴巴经济体云原生实践》 本文节选自《不一样的 双11 技术:阿里巴巴经济体云原生实践》一书,点击上方图片即可下载! 作者: 周小帆(承嗣) 阿里云中间件技术部高级技术专家 王华锋(水彧) 阿里云中间件技术部技术专家 徐彤(绍宽) 阿里云中间件技术部技术专家 夏明(涯海) 阿里云中间件技术部技术专家 导读 :双11 背后的全链路可观测性:阿里巴巴鹰眼在“云原生时代”的全面升级作为一支深耕多年链路追踪技术 (Tracing) 与性能管理服务 (APM) 的团队,阿里巴巴中间件鹰眼团队的工程师们见证了阿里巴巴基础架构的多次升级,每一次的架构升级都会对系统可观测性能力 (Observability) 带来巨大挑战,而这次的“云原生”升级,给我们带来的新挑战又是什么呢? 云原生与可观测性 在刚刚过去的 2019 年 双11,我们再次见证了一个技术奇迹:这一次,我们花了一整年的时间,让阿里巴巴的核心电商业务全面上云,并且利用阿里云的技术基础设施顶住了 54 万笔/秒的零点交易峰值;我们的研发、运维模式,也正式步入了云原生时代。 云原生所倡导的新范式,给传统的研发和运维模式带来巨大冲击:微服务、DevOps 等理念让研发变得更高效,但带来的却是海量微服务的问题排查、故障定位的难度变得更大

Java agent

与世无争的帅哥 提交于 2019-12-04 20:27:49
jdk1.5的时候引入了Java Agent技术,agent是运行在方法前后的拦截器。利用字节码技术,在JVM加载class二进制文件的时候,利用ASM动态的修改加载的class文件,在监控的方法前后加入相应的功能。 Java Agent是运行在main方法之前的拦截器,它内定的方法交premain方法,也就是先执行premain方法,再执行main方法。 Skywalking等这些就是基于agent方式去追踪统计调用链路。 来源: https://my.oschina.net/u/3126880/blog/3130776

SpringBoot | 第一章:第一个SpringBoot应用

本小妞迷上赌 提交于 2019-12-01 09:58:19
SpringBoot | 第一章:第一个SpringBoot应用 springboot简单介绍 概述 随着动态语言的流行(Ruby、Groovy、Scala、Node.js),Java的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。 在上述环境下, Springboot 应运而生。它使用"习惯优于配置"(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让你的项目快速运行起来。使用springboot很容易创建一个独立运行(运行jar,内嵌servlet容器)、准生产级别的基于Spring框架的项目,使用 springboot 你可以不用或者只需要很少的Spring配置。 Spring Boot 的核心功能 独立运行的Spring项目 Spring Boot可以以jar包的形式独立运行,运行一个Spring Boot项目只需要通过java -jar xx.jar。 内置Servlet容器 Spring Boot可选择内嵌Tomcat、Jetty或者Undertow,这样无须以war包形式部署。 提供starter简化maven配置 Spring提供了一系列的starter pom来简化maven依赖加载,例如:当你使用了spring-boot-starter-web时,会自动加入相关依赖

分布式调用链调研(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

skywalking(容器部署)

北慕城南 提交于 2019-11-28 07:44:43
skywalking(容器部署) 标签(空格分隔): APM [toc] 1. Elasticsearch SkywalkingElasticsearch 5.X(部分功能报错、拓扑图不显示) Skywalking需要Elasticsearch 6.X docker network create somenetwork docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.5.1 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 2. 安装AOP docker run --name skywalking-oap --restart always -d --net somenetwork -e SW_STORAGE=elasticsearch -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 -e TZ=Asis/Shanghai -p 11800:11800 -p 1234:1234 -p 12800:12800 apache/skywalking-oap-server:6