就在今天,SkyWorking发布了6.2版本。

概述

什么是SkyWorking

SkyWalking是观察性分析平台和应用性能管理系统。

提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。

SkyWalking 的核心是数据分析和度量结果的存储平台,通过 HTTP 或 gRPC 方式向 SkyWalking Collecter 提交分析和度量数据,SkyWalking Collecter 对数据进行分析和聚合,存储到 Elasticsearch、MySQL、TiDB 等其一即可,最后我们可以通过 SkyWalking UI 的可视化界面对最终的结果进行查看。

Skywalking 支持从多个来源和多种格式收集数据:多种语言的 Skywalking Agent 、Zipkin v1/v2 、Istio 勘测、Envoy 度量等数据格式。

特性

  • 多种监控手段,语言探针和service mesh
  • 多语言自动探针,Java,.NET Core和Node.JS
  • 轻量高效,不需要大数据
  • 模块化,UI、存储、集群管理多种机制可选
  • 支持告警
  • 优秀的可视化方案

为什么是SkyWorking

2019 年 4 月 24 日(北美时间),Apache 软件基金会宣布,Apache SkyWalking 毕业,成为 Apache 软件基金会顶级项目。

目前最主流的两个APM对比

Skyworking体验地址: link

6.2版本更新内容

Project

  • ElasticSearch implementation performance improved, and CHANGED totally. Must delete all existing indexes to do upgrade.
  • CI and Integration tests provided by ASF INFRA.
  • Plan to enhance tests including e2e, plugin tests in all pull requests, powered by ASF INFRA.
  • DataCarrier queue write index controller performance improvement. 3-5 times quicker than before.
  • Add windows compile support in CI.

Java Agent

  • Support collect SQL parameter in MySQL plugin.[Optional]
  • Support SolrJ plugin.
  • Support RESTEasy plugin.
  • Support Spring Gateway plugin for 2.1.x
  • TracingContext performance improvement.
  • Support Apache ShardingSphere(incubating) plugin.
  • Support span#error in application toolkit.
  • Fix OOM by empty stack of exception.
  • FIx wrong cause exception of stack in span log.
  • Fix unclear the running context in SpringMVC plugin.
  • Fix CPU usage accessor calculation issue.
  • Fix SpringMVC plugin span not stop bug when doing HTTP forward.
  • Fix lettuce plugin async commend bug and NPE.
  • Fix webflux plugin cast exception.
  • [CI]Support import check.

Backend

  • Support time serious ElasticSearch storage.
  • Provide dynamic configuration module and implementation. Slow SQL threshold supports dynamic config today.
  • Dynamic Configuration module provide multiple implementations, DCS(gRPC based), Zookeeper, Apollo, Nacos.
  • Provide P99/95/90/75/50 charts in topology edge.
  • New topology query protocol and implementation.
  • Support Envoy ALS in Service Mesh scenario.
  • Support Nacos cluster management.
  • Enhance metric exporter. Run in increment and total modes.
  • Fix module provider is loaded repeatedly.
  • Change TOP slow SQL storage in ES to Text from Keyword, as too long text issue.
  • Fix H2TopologyQuery tiny bug.
  • Fix H2 log query bug.(No feature provided yet)
  • Filtering pods not in 'Running' phase in mesh scenario.
  • Fix query alarm bug in MySQL and H2 storage.
  • Codes refactor.

UI

  • Fix some ID is null query(s).
  • Page refactor, especially time-picker, more friendly.
  • Login removed.
  • Trace timestamp visualization issue fixed.
  • Provide P99/95/90/75/50 charts in topology edge.
  • Change all P99/95/90/75/50 charts style. More readable.
  • Fix 404 in trace page.

Document

  • Go2Sky project has been donated to SkyAPM, change document link.
  • Add FAQ for ElasticSearch storage, and links from document.
  • Add FAQ fro WebSphere installation.
  • Add several open users.
  • Add alarm webhook document.

环境准备

  • 系统:CentOS 7.6
  • jdk:1.8
  • 存储:Elasticsearch 6.8.1

关闭SElinux和防火墙

systemctl stop firewalld
systemctl disable firewalld
sed -i 's#^SELINUX=.*#SELINUX=disabled#g' /etc/sysconfig/selinux
setenforce 0

修改最大打开进程数和文件句柄数

# 查看当前服务器最大打开进程数和文件句柄数
[root@test-01 ~]#ulimit -a|egrep 'open files|max user'
open files (-n) 1024
max user processes (-u) 7191 # 修改/etc/systemd/system.conf文件中的相关参数,与CentOS6修改的方式略有不同
[root@test-01 ~]#sed -i '/^#DefaultLimitNOFILE=/aDefaultLimitNOFILE=65535' /etc/systemd/system.conf
[root@test-01 ~]#sed -i '/^#DefaultLimitNPROC=/aDefaultLimitNPROC=65535' /etc/systemd/system.conf
[root@test-01 ~]#sed -i 's#nproc 4096#nproc 65535#' /etc/security/limits.d/20-nproc.conf # 需要重启才能生效
[root@test-01 ~]#reboot

安装jdk

[root@test-01 ~]# yum install java-1.8.0-openjdk
[root@test-01 ~]# java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

安装Elasticsearch

mkdir -p /data/elasticsearch/logs

# 下载rpm安装包
wget -P /opt/downloads -c https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.1.rpm # 安装
rpm -ivh /opt/downloads/elasticsearch-6.8.1.rpm # 授权
chown -R elasticsearch.elasticsearch /data/elasticsearch

修改配置/etc/elasticsearch/elasticsearch.yml

path.data: /data/elasticsearch
path.logs: /data/elasticsearch/logs
network.host: 0.0.0.0

启动

systemctl start elasticsearch

部署SkyWorking

# 下载安装包
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" -P /opt/downloads https://mirrors.tuna.tsinghua.edu.cn/apache/skywalking/6.2.0/apache-skywalking-apm-6.2.0.tar.gz # 压缩
tar zxf /opt/downloads/apache-skywalking-apm-6.2.0.tar.gz -C /usr/local
mv apache-skywalking-apm-bin skyworking # 启动
cd /usr/local/skyworking/bin
./startup.sh

确保8080,10800,11800,12800 端口不被占用,若有冲突,可以在webapp/webapp.yml中修改

打开UI,地址为http://服务器IP:8080

配置 java agent

参考地址:java agent

  1. 安装包中,找到 agent 的路径
  2. config/agent.config,设置agent.service_name
  3. config/agent.config,设置 collector.backend_service ,默认连接到 127.0.0.1:11800
  4. -jar前,将 -javaagent:/path/to/skywalking-package/agent/skywalking-agent.jar添加到表达式

agent目录下的文件和目录

+-- agent
+-- activations
apm-toolkit-log4j-1.x-activation.jar
apm-toolkit-log4j-2.x-activation.jar
apm-toolkit-logback-1.x-activation.jar
...
+-- config
agent.config
+-- plugins
apm-dubbo-plugin.jar
apm-feign-default-http-9.x.jar
apm-httpClient-4.x-plugin.jar
.....
skywalking-agent.jar

支持的中间件

支持中间件列表

Install javaagent FAQs

  • Linux Tomcat 7, Tomcat 8

    Change the first line of tomcat/bin/catalina.sh.
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/skywalking-agent/skywalking-agent.jar"; export CATALINA_OPTS
  • Windows Tomcat 7, Tomcat 8

    Change the first line of tomcat/bin/catalina.bat.
set "CATALINA_OPTS=-javaagent:/path/to/skywalking-agent/skywalking-agent.jar"
  • JAR file

    Add -javaagent argument to command line in which you start your app. eg:
java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -jar yourApp.jar

Agent配置属性

以下为agent/config/agent.config的配置属性列表

property key Description Default
agent.namespace Namespace isolates headers in cross process propagation. The HEADER name will be HeaderName:Namespace. Not set
agent.service_name Application(5.x)/Service(6.x) code is showed in sky-walking-ui. Suggestion: set a unique name for each service, service instance nodes share the same code Your_ApplicationName
agent.sample_n_per_3_secs Negative or zero means off, by default.SAMPLE_N_PER_3_SECS means sampling N TraceSegment in 3 seconds tops. Not set
agent.authentication Authentication active is based on backend setting, see application.yml for more details.For most scenarios, this needs backend extensions, only basic match auth provided in default implementation. Not set
agent.span_limit_per_segment The max number of spans in a single segment. Through this config item, skywalking keep your application memory cost estimated. Not set
agent.ignore_suffix If the operation name of the first span is included in this set, this segment should be ignored. Not set
agent.is_open_debugging_class If true, skywalking agent will save all instrumented classes files in /debugging folder.Skywalking team may ask for these files in order to resolve compatible problem. Not set
agent.active_v2_header Active V2 header in default. true
agent.instance_uuid Instance uuid is the identity of an instance, skywalking treat same instance uuid as one instance.if empty, skywalking agent will generate an 32-bit uuid. ""
agent.cause_exception_depth How depth the agent goes, when log all cause exceptions. 5
agent.active_v1_header Deactive V1 header in default. false
collector.grpc_channel_check_interval grpc channel status check interval. 30
collector.app_and_service_register_check_interval application and service registry check interval. 3
collector.backend_service Collector skywalking trace receiver service addresses. 127.0.0.1:11800
logging.level The log level. Default is debug. DEBUG
logging.file_name Log file name. skywalking-api.log
logging.dir Log files directory. Default is blank string, means, use "system.out" to output logs. ""
logging.max_file_size The max size of log file. If the size is bigger than this, archive the current file, and write into a new file. 300 * 1024 * 1024
jvm.buffer_size The buffer size of collected JVM info. 60 * 10
buffer.channel_size The buffer channel size. 5
buffer.buffer_size The buffer size. 300
dictionary.service_code_buffer_size The buffer size of application codes and peer 10 * 10000
dictionary.endpoint_name_buffer_size The buffer size of endpoint names and peer 1000 * 10000
plugin.mongodb.trace_param If true, trace all the parameters in MongoDB access, default is false. Only trace the operation, not include parameters. false
plugin.elasticsearch.trace_dsl If true, trace all the DSL(Domain Specific Language) in ElasticSearch access, default is false. false
plugin.springmvc.use_qualified_name_as_endpoint_name If true, the fully qualified method name will be used as the endpoint name instead of the request URL, default is false. false
plugin.toolit.use_qualified_name_as_operation_name If true, the fully qualified method name will be used as the operation name instead of the given operation name, default is false. false
plugin.mysql.trace_sql_parameters If set to true, the parameters of the sql (typically java.sql.PreparedStatement) would be collected. false
plugin.mysql.sql_parameters_max_length If set to positive number, the db.sql.parameters would be truncated to this length, otherwise it would be completely saved, which may cause performance problem. 512
plugin.solrj.trace_statement If true, trace all the query parameters(include deleteByIds and deleteByQuery) in Solr query request, default is false. false
plugin.solrj.trace_ops_params If true, trace all the operation parameters in Solr request, default is false. false

关于插件

若需要使用第三方插件,可以将插件放入 /plugins路径下。

插件开发指南

测试

Java Agent Performance Test

SkyWorking基础:6.2版本安装部署的更多相关文章

  1. OEMCC 13.2 集群版本安装部署

    之前测试部署过OEMCC 13.2单机,具体可参考之前随笔: OEMCC 13.2 安装部署 当时环境:两台主机,系统RHEL 6.5,分别部署OMS和OMR: OMS,也就是OEMCC的服务端 IP ...

  2. ELK7.11.2版本安装部署及ElastAlert告警相关配置

    文档开篇,我还是要说一遍,虽然我在文档内容中也会说好多遍,但是希望大家不要嫌我墨迹: 请多看官方文档,请多看命令行报错信息,请多看日志信息,很多时候它们比百度.比必应.比谷歌有用: 请不要嫌麻烦,打开 ...

  3. Solr版本安装部署指南

    一.依赖包 1.  JDK 1.6以上 2.  solr-4.3.0.tgz 3.  Tomcat或者jetty(注意,solr包中本身就含有jetty的启动相关内容):apache-tomcat-7 ...

  4. ELK6.3版本安装部署

    一.Elasticsearch 安装 1.部署系统以及环境准备 cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) uname - ...

  5. Lepus监控之安装部署

    PHP和Python都是跨平台的语言,所以理论上系统应该可以支持在不同的平台上运行.但是由于时间和精力以及资源有限,目前天兔系统只测试完善了Centos/RedHat系统的支持.我们目前提供的技术支持 ...

  6. 安装部署Apache Hadoop (本地模式和伪分布式)

    本节内容: Hadoop版本 安装部署Hadoop 一.Hadoop版本 1. Hadoop版本种类 目前Hadoop发行版非常多,有华为发行版.Intel发行版.Cloudera发行版(CDH)等, ...

  7. Redis (一)Redis简介、安装部署

    Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案. 既然是key-value,对于Java开发来说更熟悉的是Map集合.那就有问题了,有M ...

  8. Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本)

    Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本) Hive 安装依赖 Hadoop 的集群,它是运行在 Hadoop 的基础上. 所以在安装 Hive 之 ...

  9. 基于HDP版本的YDB安装部署(转)

    第三章 YDB依赖环境准备 一.硬件环境 硬件如何搭配,能做到比较高的性价比,不存在短板.合理的硬件搭配,对系统的稳定性也很关键. 1.CPU不是核数越高越好,性价比才是关键. 经常遇到很多的企业级客 ...

随机推荐

  1. 配置文件——App.config文件读取和修改

    作为普通的xml文件读取的话,首先就要知道怎么寻找文件的路径.我们知道一般配置文件就在跟可执行exe文件在同一目录下,且仅仅在名称后面添加了一个.config 因此,可以用Application.Ex ...

  2. [C++学习笔记14]动态创建对象(定义静态方法实现在map查找具体类名对应的创建函数,并返回函数指针,map真是一个万能类)good

    [C++学习笔记14]动态创建对象   C#/Java中的反射机制 动态获取类型信息(方法与属性) 动态创建对象 动态调用对象的方法 动态操作对象的属性 前提:需要给每个类添加元数据 动态创建对象 实 ...

  3. Matlab Tricks(十七)—— 使用 Latex

    >> set(text, 'Interpreter') 'none' 'tex' 'latex' % Matlab将返回'Interpreter'(解释器,对 text 文本的解释)所包含 ...

  4. 在WPF中添加3D特性

    原文:在WPF中添加3D特性 35.4  在WPF中添加3D特性 本节介绍WPF中的3D特性,其中包含了开始使用该特性的信息. 提示: WPF中的3D特性在System.Windows.Media.M ...

  5. BSD介绍

    BSD许可证模板  * Copyright (c) 1998, Regents of the University of California  * All rights reserved.    * ...

  6. 淘宝平台进行数据的实时传输: TimeTunnel介绍

    在班级工作中遇到似业务场景中的实时流传输数据的访问,所以,淘宝实时数据仓库这个人做了一些研究和了解. 本文介绍的业务场景和淘宝的设计TimeTunnel工具,从淘宝数据仓库团队沟通过程中的图像文字si ...

  7. Effective C++:规定24:如果所有的单位都需要的参数类型转换,使用请做到这一点non-member功能

    (一个) 如果一个class.同意整数"隐式转换为"有理数似乎非常合理. class Rational{ public: Rational(int numerator = 0, i ...

  8. JS-LINQ

    JS中使用LINQ 详细使用方法可找相关资料 文件在这里 引用: <script type="text/javascript" src="@Url.Content( ...

  9. Binding控件某个属性

    <Grid Margin="60"> <Grid.RowDefinitions> <RowDefinition Height="*" ...

  10. .NET Core 3.0 Preview 5 亮点之一:发布单文件可执行程序

    在阅读 Announcing .NET Core 3.0 Preview 5 时发现了 .NET Core 3.0 Preview 5 的一个新特性 —— Publishing Single EXEs ...