就在今天,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. [Servlet]Servlet工作流程及注意事项

    Servlet工作过程 采用Servlet完成Web实际的工作流应用程序是通过Tomcatserver公布服务,client与server遵循的端部之间的相互作用Http议完毕的. 详细工作流程例如以 ...

  2. PHP中遍历关联数组的方法

    下面介绍PHP中遍历关联数组的三种方法:foreach <?php $sports = array( 'football' => 'good', 'swimming' => 'ver ...

  3. silverlight,WPF动画终极攻略之阳光灿烂篇(Blend 4开发)

    原文:silverlight,WPF动画终极攻略之阳光灿烂篇(Blend 4开发) 前面我们画了一只会飞动的小鸟,今天我们在目标是一个会发光的太阳.本章节的动画虽然简单,但是实现的效果可是一点也不打折 ...

  4. 多元函数(multivariate function)分析(方向导数和梯度)

    二阶泰勒展开: f(x)=f(0)+f′Tx+12xTf′′x+o(⋅) 对等式右端求导,并置 0,得 x=f′′−1f′ 1. 方向导数与梯度 设有单位向量 h=(h1,h2,⋯,hn)∈Rn(当然 ...

  5. react项目实践——(1)使用webpack创建项目

    1. 新建文件夹,命名为项目名称——myapp,并打开myapp文件夹. mkdir webpack-demo && cd webpack-demo 2. 在./myapp中打开命令行 ...

  6. Vertica变化Local时间到GMT时间

    在Vertica的数据库的使用过程中碰到这么一种场景.程序从不同一时候区的集群中收集数据写入同一张表,然后我们须要把这些数据依照GMT时间来显示. 此时我们能够通过Vertica提供TIME ZONE ...

  7. SICP 1.9-1.10

    1.9 2^102^162^16 2n2^(n)2的(n-1)层次方(每一层都是2次方) 比如 h(4) = 2^(2^(2^2)) = 2^16

  8. WPF值转换器的使用

    <Window x:Class="CollectionBinding.MainWindow"        xmlns="http://schemas.micros ...

  9. c# WebApi POST请求同时包含数据及其文件

    原因:创建.net WebApi的接口API.IIS作为服务端.安卓作为客户端发送json文件及其文件. Android端使用xUtils3.0实现文件上传 java代码: //要传递给服务器的jso ...

  10. Win8Metro(C#)数字图像处理--2.6图像对比度调整

    原文:Win8Metro(C#)数字图像处理--2.6图像对比度调整  2.6图像对比度调整函数 [函数名称] 图像对比度调整函数ContrastAdjustProcess(WriteableBi ...