Skywalking方式接入APM实现链路追踪指标监控
操作步骤
- 登录APM控制台。
- 单击左侧
,选择“管理与监管 > 应用性能管理 APM”,进入APM服务页面。 - 在左侧导航栏中选择“链路追踪 > 探针接入”,进入接入应用页面。
- 选择“区域”和“应用”。
- 选择接入类型“Skywalking”。如果当前应用支持Skywalking类型,则OpenTelemetry类型置灰,不支持选择。
图1 接入Skywalking类型
- 根据应用类型选择接入对应的接入方式,按照步骤接入。请注意,同一个应用下的组件名称不能重复。
- JAVA应用接入
- 下载 Skywalking。
前往Skywalking 官网,推荐下载 Java Agent 8.9.0 及以上版本,解压后 Agent 文件放至在 Java 进程有访问权限的目录。
如需配置插件,在启动阶段将新的插件放进/plugins目录中,即可令插件生效。将插件从该目录删除,即可令其失效。
日志文件默认输出到/logs目录中。
- 添加启动命令并重启应用。
- 在应用程序的启动命令行中配置。
java -javaagent:skywalking-agent-path -Dskywalking.collector.backend_service=***.**.**.**:***** -Dskywalking.agent.authentication=******* -Dskywalking.agent.service_name=应用名称.组件名称.环境名称 -jar <yourApp>.jar
- 在 agent/config/agent.config 中配置。
collector.backend_service=100.79.29.107:11800 agent.authentication=***** agent.service_name=应用名称.组件名称.环境名称 //配置 javaagent 路径,并重新启动应用。 java -javaagent:skywalking-agent-path -jar yourApp.jar
如果您两种方式均进行配置,则只在启动命令行中的配置生效。
- 在应用程序的启动命令行中配置。
- 下载 Skywalking。
- Python应用接入
- 前往Skywalking 官网下载 Skywalking。
- 通过 PyPi 安装 Python 代理模块。
pip install "apache-skywalking" pip install "apache-skywalking[http]" pip install "apache-skywalking[kafka]" pip install apache-skywalking==0.7.0
通过 pip 成功安装 Skywalking Python 代理后,会在您的环境中安装一个命令行脚本 sw-python。
- 接入 Agent。
接入 Agent 需要配置 接入点、令牌(Token)、应用名称三个参数,在您的启动文件中配置如下参数:
from skywalking import agent, config config.init( collector_address='***.**.**.**:*****', authentication='*******', service_name='apply name', ) agent.start() - 重启应用。
目前,sw-pythonCLI 提供了一个 run 选项,您可以使用该选项来执行您的应用程序。
如果您之前运行 gunicorn 应用程序的命令是:
gunicorn app.wsgi
请将其改为:
sw-python run gunicorn app.wsgi
Skywalking Python 代理将很快与您的应用程序一起启动。
- GO应用接入
- 前往Skywalking 官网下载 Skywalking。
- 安装 Skywalking go sdk,命令如下。
go get -u github.com/SkyAPM/go2sky-plugins/sql
- 接入 sdk。
import ( "github.com/SkyAPM/go2sky" "github.com/SkyAPM/go2sky/reporter" )在 main 方法里接入 sdk
r, err := reporter.NewGRPCReporter(***.**.**.**:*****, reporter.WithCDS(0), reporter.WithAuthentication(******)) if err != nil { log.Fatalf("new reporter error %v \n", err) } defer r.Close() tracer, err := go2sky.NewTracer(<应用名称.组件名称.环境名称>, go2sky.WithReporter(r)) if err != nil { log.Fatalf("create tracer error %v \n", err) } go2sky.SetGlobalTracer(tracer)
- Nodejs应用接入
- 前往Skywalking 官网下载 Skywalking。
- 使用官方推荐的新库来接入,原来的模块为:SkyAPM-nodejs,版本要求 NodeJS >= 10,控制台输入命令:
npm i skywalking-backend-js
- 接入 Agent。
接入 Agent 需要配置 接入点、令牌 Token、应用名称三个必填参数,在您的启动文件中配置如下参数:
const { default: agent } = require('skywalking-backend-js'); agent.start({ serviceName: '应用名称.组件名称.环境名称', collectorAddress: '***.**.**.**:*****', authorization: '*********' }); - 重启应用。按照正常命令启动项目,无报错,数据正常上报即启动成功。如出现报错,请检查配置与版本;如无上报数据,请检查 token 与应用名称是否正确。
- PHP应用接入
- 前往Skywalking 官网下载 Skywalking。
- 使用官方推荐的 pecl.net 安装,控制台输入命令:
pecl install skywalking_agent
- 或通过源代码的方式安装:
git clone --recursive https://github.com/apache/skywalking-php.git cd skywalking-php phpize ./configure make make install
- 使用官方推荐的 pecl.net 安装,控制台输入命令:
- 接入 Agent。
[skywalking] extension=skywalking.so skywalking.app_code = 应用名称.组件名称.环境名称 skywalking.enable = 1 skywalking.version = 8 skywalking.grpc = ***.**.**.***:***** skywalking.authentication = ****** skywalking.error_handler_enable = 0
- 重启应用。
- 方法一: 将修改 php-fpm.conf 的配置项中启动方式为 daemonize = no
- 方法二:使用 nohup 命令重启 php-fpm:
nohup /usr/local/services/php7/sbin/php-fpm > /usr/local/services/php7/log/php-fpm-output.log 2>&1 &
- 前往Skywalking 官网下载 Skywalking。
- .Net应用接入
- 前往Skywalking 官网下载 Skywalking。
添加库SkyAPM .NET Core Agent。
dotnet add package SkyAPM.Agent.AspNetCore
- 接入 Agent。
dotnet tool install -g SkyAPM.DotNet.CLI
使用工具生成 skyapm.json 文件。
dotnet skyapm config 应用名称.组件名称.环境名称 ***.**.**.***:*****
修改 skyapm.json 中的 Authentication。
Authentication: "***********"
在项目 Properties 下的 launchSettings.json 文件,添加环境变量:ASPNETCORE_HOSTINGSTARTUPASSEMBLIES 和 SKYWALKING__SERVICENAME。
environmentVariables: { "SKYWALKING__SERVICENAME": "应用名称.组件名称.环境名称", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore" }
- 前往Skywalking 官网下载 Skywalking。
- JAVA应用接入