skywalking

在 .NetCore 项目中使用 SkyWalkingAPM 踩坑排坑日记

怎甘沉沦 提交于 2020-08-08 12:02:33
SkyWalking 概述    SkyWalking 是观察性分析平台和应用性能管理系统。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。支持Java, .Net Core, PHP, NodeJS, Golang, LUA语言探针,支持Envoy + Istio构建的Service Mesh。   这里抛出两个概念,SkyWalking 服务和语言探针。SkyWalking 本身是用 Java 写的,作为应用性能管理系统,探针是收集应用性能指标数据的,比如在 .net core 项目中引入 SkyAPM.Agent.AspNetCore,做一些配置,就可以将该项目的数据报告给 SkyWalking 服务,在 SkyWalking UI 界面看到可视化的数据。   SkyWalking 展示的数据是需要存储的,默认是 H2,同时也支持使用ElasticSearch、MySQL、TiDB、InfluxDB,这里使用 elasticsearch。 环境说明   本机开发环境:Win10 + VS2019,服务器是 CentOS,ip:172.17.81.23 Docker 方式(踩坑)   安装 Elasticsearch docker run --name elasticsearch --restart always -d -p 9200:9200 -p 9300

智能家居巨头 Aqara 借助KubeSphere 打造物联网微服务平台

帅比萌擦擦* 提交于 2020-08-08 11:16:31
1、 关于绿米联创 深圳绿米联创科技有限公司 (以下简称:绿米联创) 成立于 2009 年。2016 年,绿米联创推出了“全屋智能”理念的自有品牌——Aqara,致力于通过一系列智能家居产品技术以及服务商模式,为用户构建更加智慧的生活。 旗下产品包括温度、湿度、门窗、人体、水浸、烟雾、燃气、光照和睡眠等各类传感器,以及智能开关、插座、窗帘电机、空调控制器、调光器、门锁等各类智能控制器,目前同时支持行业应用的自动化控制与大数据分析平台。 Aqara 秉持着“引领物联技术,服务千家万户”的愿景,坚持“持之以恒追求用户体验,坚持不懈创造用户体验”的使命,在智能家居行业不断创新,最终成为行业领军品牌。 2、 挑战 绿米联创原本采用传统的应用部署方式,微服务架构 80% 以上都是偏内存型服务,资源利用率非常低,尤其是 CPU、磁盘存储,且迭代速度也不尽人意。 为了改变这种情况,绿米联创试图从持续集成开始,Jenkins、Harbor 搭建,到测试环境 Docker Swarm 编排。 但随着业务量增长速度过快,Docker Swarm 编排跨平台支持效果差,在业务量访问高峰期时,内部 Service 通信就会出现超时的问题。 于是,绿米联创又将业务架构从 Docker Swarm 全面转向 Kubernetes。在原生安装与运维 Kubernetes 方面,他们想要借助第三方开源方案。 此外

SkyWalking 告警设置

南笙酒味 提交于 2020-08-08 07:26:08
版本:7.0.0 简介 告警是基于指标数据驱动的,告警在 config/alarm-settings.yml 里面配置,主要包含三种告警配置: 告警规则:声明指标的阈值和条件,当达到阈值时,将触发告警。 WebHooks:web服务列表,当告警规则触发时回调。 gRPCHook:远程gRPC方法的IP和端口,当告警规则触发时回调。 规则 告警规则组成关键字段如下: Rule name:具有唯一性,展示在告警信息里面,必须以 _rule 结尾。 Metrics name:oal脚本里面的指标名称,支持long, double, int 类型。 Include names:规则里包含的实体名称,例如:服务名字,端点名字。 Excluse names:规则里排除的实体名称,例如:服务名字,端点名字。 Threshold:目标值(阈值)。对于多值指标(如:百分位),这个阈值是一个数组,格式如:value1,value2,value3,value4,value5。与指标格式一一对应。当不想其中某些指标触发告警时,阈值设置为横杠( - ) OP:操作,目前支持 > , >= , < , <= , = 。 Period:周期。一个时间窗口,表示告警规则应当被检测多长时间。 Count:在期限窗口时间段内,如果统计次数达到阈值,将触发告警。 Silence Period:静默时间

Skywalking系列博客1-安装单机版 Skywalking

两盒软妹~` 提交于 2020-08-08 06:56:24
TIPS 本文基于Skywalking 6.6.0编写,理论支持Skywalking所有版本。 本文探讨如何快速安装单机的Skywalking。 下载 前往 http://skywalking.apache.org/downloads/ ,根据自己的操作系统,下载即可。 对于网络不好的童鞋,可用如下百度盘地址下载: 链接: https://pan.baidu.com/s/12jDtNoxVfulIOZFK5EYvaA 提取码: dsy3 环境需求 JDK版本在JDK 8 - JDK 12之间 注意 :如使用 ElasticSearch7 的版本,那么需要 JDK 11+ 确保如下端口可用: 11800:和Skywalking通信的gRPC端口 12800:和Skywalking通信的HTTP端口 8080:UI所占用的端口 TIPS 可使用如下命令查询端口是否被占用。 > # Linux/macOS > netstat -an|grep 8080 > > # 对于使用windows的同学,则可以使用 > netstat -ano|findstr 8080 > 如果没有结果,就说明8080端口没有被占用。其他端口也是一样,以此类推。 安装&启动 安装Skywalking比较简单,解压,然后根据操作系统的不同,执行对应命令即可。 Linux或macOS 执行: cd apache

#新闻拍一拍# 唯品会 Saturn 插件因未声明上游项目版权而被拒

妖精的绣舞 提交于 2020-08-07 11:28:26
唯品会 Saturn 插件因未声明上游项目版权而被拒 22 日晚,Apache SkyWalking 创始人吴晟在朋友圈中指出,因违反开源协议要求,SkyWalking 只能暂时拒绝针对唯品会 Saturn 项目的插件需求。吴晟称,“Saturn 是 fork 自 ElasticJob,并更改了版权信息,这是一个非常严重的许可证问题……我们都不能正式接受它作为 Apache SkyWalking 的一部分”。 来源: 开源中国 拍一拍:在参与和贡献开源项目时,忽视或对开源许可证的无知,都是投入开源生态的重大阻碍,是需要认真学习的一课。 谷歌再推 Kotlin:代码量比 Java 减少 80% Google Home 团队现身说法,通过自身经历,展示了 Kotlin 开发的好处。截至今年六月,该应用中约有 30% 的代码采用 Kotlin 编写,今后的新功能也被鼓励用 Kotlin 进行开发。Kotlin 编程语言 2011 年由 JetBrains 推出,2012 年开源,2017 年成为 Android 官方开发语言,并于 2019 年成为 Andoid 开发官方首选语言。 来源: 开源中国 拍一拍:Java 被爆锤,但是这依然不能影响 Java 的统治地位。 蚂蚁区块链正式升级为“蚂蚁链”:全球区块链专利排名第一 7月23日,蚂蚁集团董事长井贤栋在杭州宣布,蚂蚁区块链正式升级为

如何大大提升微服务的高可用性?

家住魔仙堡 提交于 2020-08-06 05:48:24
0、前言 微服务架构现在是个热门话题,微服务的高可用性自然也是企业非常关注的。眼下互联网的架构秘籍三板斧“高可用可扩展,缓存提速,消峰减流去并发”,在微服务架构体系中有着不一样的诠释。 在微服务中消息队列不仅用来消峰,还可以通过消息队列来解决微服务之间的多耦合,把同步调用转化为异步调用,减少调用链路,提升系统稳定性。 单体应用拆分为独立的多个无形中增加了系统的响应时间,可以通过本地缓存、分布式缓存相结合的方式来弥补性能的损耗。 以前通过内部接口调用的方法变成RPC调用多个服务,服务与服务之间还有依赖关系,每个服务接口响应时间也都不一样,简单的设置单个接口的超时时间已解决不了问题,可通过服务定级,哪些服务不能出问题,哪些服务允许有异常,采用降级、熔断的方式来解决问题,以达到系统的高可用。 以上这三种方式如能合理运用,微服务的高可用性大大提升,所以说缓存、队列、熔断降级成了微服务架构中的新三板斧。 以下是相关技术应用中的一些难点解答,供大家参考。 1、微服务架构中有哪些技术手段必须在设计阶段就需要规划进去? 互联网的三板斧:熔断、消息队列、缓存,这个必须有要考虑进入,另外为了提高响应时间,并行化操作也需要提前考虑。 熔断:保障服务高可用的重要手段,用户的请求将不再直接访问服务,而是通过线程池中的空闲线程来访问服务,如果线程池已满,则会进行降级处理,用户的请求不会被阻塞

微服务框架Demo.MicroServer运行手册

丶灬走出姿态 提交于 2020-08-06 03:38:34
一.背景说明: 之前分享过一个微服务开发框架, “ 享一个集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionless+Apollo+SkyWalking的微服务开发框架 ”,前两天在Github上收到一个Issues,是想我这边提供下完整的运行文档和配置文件,因为之前想法是弄清楚这几个东西的职责之后,对于运行的先后顺序,和需要的配置key应该都会有了解,所以README编写只是介绍了用到了哪些东西,没有说如何运行,但是既然有人问起,我还是满足一下,就当成是自己回顾了。 二.回顾下项目结构 项目结构比较简单: MicroServer.Instance文件夹下面存放的是微服务实例,至于微服务颗粒度的拆分得结合实际的业务情况 Demo.MicroServer.IdentityServer4 统一鉴权中心 Demo.MicroServer.Infrastructure 基础设施,可以自行在里面添加内容 Demo.MicroServer.Ocelot 这一层是Api网关 Demo.MicroServer.Repository 通用的数据访问层,包含MySQL,Mongo,Redis等,之所以抽离出来,是方便各个服务实例可是直接使用这些通用方法。 而上面说的 ".NET Core+Swagger+Consul

SkyWalking 调用链忽略(取消跟踪)

余生颓废 提交于 2020-08-05 15:49:37
版本:7.0.0 描述 在某些场景下,我们可能对一些调用链路不关心,但是这部分数据还挺大的,大到会影响我们正常的业务。比如一些中间件的心跳。 这个时候可以选择性的忽略一些调用链,SkyWalking将不在收集忽略掉的数据。 在SkyWalking中,有三种手段忽略不需要跟踪的数据。 禁用插件。 引入忽略插件,配置指定忽略端点(endpoint)集合。 配置指定忽略链路的第一个span的操作后缀名称。 配置 1. 禁用插件 我们可以移除掉 agent/plugins/ 目录下特定的jar包,来忽略对特定组件的链路跟踪。例如:移除rocketmq插件包来忽略rocketmq的链路追踪。 2. 引入忽略插件 将 agent/optional-plugins 目录下的 apm-trace-ignore-plugin-xxx.jar 复制到 agent/plugins/ 目录下。 两种配置方式,第一种方式是在 config 目录下新增 apm-trace-ignore-plugin.config 文件,配置 trace.ignore_path=${SW_AGENT_TRACE_IGNORE_PATH:/eureka/**} ,第二种方式是增加环境变量 -Dskywalking.trace.ignore_path=/eureka/** ,重启应用,SkyWalking将不在采集指定路径的数据。

Java Agent入门

喜你入骨 提交于 2020-08-05 12:33:09
介绍 在JDK1.5以后,我们可以使用agent技术构建一个独立于应用程序的代理程序(即为Agent),用来协助监测、运行甚至替换其他JVM上的程序。使用它可以实现虚拟机级别的AOP功能。Agent分为两种,一种是在主程序之前运行的Agent,一种是在主程序之后运行的Agent(前者的升级版,1.6以后提供)。 使用 主程序运行之前的代理程序 创建代理类 public class MyPreMainAgent { //方法名和参数都是固定的 premain表示在主程序运行之前运行 public static void premain(String agentArgs, Instrumentation inst) { System.out.println("PreMain start"); System.out.println(agentArgs); System.out.println(inst); } } Instrumentation是java1.5新提供的类,它提供在运行时重新加载某个类的的class文件的api。 public interface Instrumentation { /** * 添加一个转换器Transformer,之后的所有的类加载都会被Transformer拦截。 * ClassFileTransformer类是一个接口,使用时需要实现它

使用Skywalking追踪你的SpringBoot程序

落花浮王杯 提交于 2020-08-05 04:02:13
原文: https://blog.csdn.net/u011536031/article/details/105348475 由于Skywalking符合opentracing的数据标准,而opentracing也是未来的大势所趋。特写一个傻瓜式教程,帮你手把手进行监控自己的SpringBoot程序。 1.准备工作: 访问https://github.com/apache/skywalking/releases 去下载一个skywalking安装包,我这里使用的是6.6.0版本。 测试用的SpringBoot代码,少许。 一个IDEA 2.安装 直接对其解压,然后运行 startup.bat 或者 startup.sh(Linux or MacOS) 3.配置SpringBoot启动参数: 需要填写如下的运行参数,代码放在后面,需要的自己粘贴,别忘记修改真实目录哦! -javaagent:D:\\dev_tools\\apache-skywalking\\agent\\skywalking-agent.jar SW_AGENT_NAME=ad-eureka(这个是配置在skywalking上显示的姓名) SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800(配置skywalking OAP地址) 4.品尝skywalking的美好