Skyworking:部署
Ver: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 软件基金会顶级项目。
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和防火墙
1 | systemctl stop firewalld |
修改最大打开进程数和文件句柄数
1 | # 查看当前服务器最大打开进程数和文件句柄数 |
安装jdk
1 | [root@test-01 ~]# yum install java-1.8.0-openjdk |
安装Elasticsearch
1 | mkdir -p /data/elasticsearch/logs |
修改配置/etc/elasticsearch/elasticsearch.yml
1 | path.data: /data/elasticsearch |
启动
1 | systemctl start elasticsearch |
部署SkyWorking
1 | # 下载安装包 |
确保8080,10800,11800,12800 端口不被占用,若有冲突,可以在
webapp/webapp.yml
中修改
打开UI,地址为http://服务器IP:8080
配置 java agent
参考地址:java agent
- 在安装包中,找到
agent
的路径 - 在
config/agent.config
,设置agent.service_name
- 在
config/agent.config
,设置collector.backend_service
,默认连接到127.0.0.1:11800
- 在
-jar
前,将-javaagent:/path/to/skywalking-package/agent/skywalking-agent.jar
添加到表达式
agent目录下的文件和目录
1 | +-- agent |
支持的中间件
Install javaagent FAQs
Linux Tomcat 7, Tomcat 8
Change the first line oftomcat/bin/catalina.sh
.1
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/skywalking-agent/skywalking-agent.jar"; export CATALINA_OPTS
Windows Tomcat 7, Tomcat 8
Change the first line oftomcat/bin/catalina.bat
.1
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:1
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
路径下。
插件开发指南