skywalking分布式调用链

a 服务调用 b服务 b服务调用 c服务 想知道每个服务调用情况需要在每个服务添加agent和指定探针路径也可以指定不同的服务名
skywalking 下载
官方网站:
http://skywalking.apache.org/
http://incubator.apache.org/projects/skywalking.html

github项目地址:https://github.com/OpenSkywalking/skywalking-netcore

下载:http://skywalking.apache.org/downloads/

我下载是5.0.0GA且解压 下载 elasticsearch-5.6.12 且安装 win安装
在apache-skywalking-apm-incubating\config目录下配置
storage:
elasticsearch:
clusterName: cluster-es 就是es cluster_name
clusterTransportSniffer: true
clusterNodes: localhost:9300
indexShardsNumber: 2
indexReplicasNumber: 0
highPerformanceMode: true
# Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html
bulkActions: 2000 # Execute the bulk every 2000 requests
bulkSize: 20 # flush the bulk every 20mb
flushInterval: 10 # flush the bulk every 10 seconds whatever the number of requests
concurrentRequests: 2 # the number of concurrent requests
# Set a timeout on metric data. After the timeout has expired, the metric data will automatically be deleted.
traceDataTTL: 90 # Unit is minute
minuteMetricDataTTL: 90 # Unit is minute
hourMetricDataTTL: 36 # Unit is hour
dayMetricDataTTL: 45 # Unit is day
monthMetricDataTTL: 18 # Unit is month

部署 Elasticsearch

修改elasticsearch.yml文件
设置 cluster.name: CollectorDBCluster。此名称需要和collector配置文件一致。
设置 node.name: anyname,可以设置为任意名字,如Elasticsearch为集群模式,则每个节点名称需要不同。
增加如下配置:

ES监听的ip地址

network.host: 127.0.0.1
thread_pool.bulk.queue_size: 1000

jdk 有一个jar找不到 把找不到的jar拷贝到错误提示的文件里面

将apache-skywalking-apm-incubating\agent拷贝到项目
在这里插入图片描述
idea启动方式修改项目的 VM 运行参数,点击菜单栏中的 Run -> EditConfigurations…,此处我们以 nacos-provider 项目为例,修改参数如下
-javaagent:F:/vip/apache-skywalking-apm-incubating/agent/skywalking-agent.jar
-Dskywalking.agent.application_code=test-app
-Dskywalking.collector.servers=localhost:10800
在这里插入图片描述

-javaagent:用于指定探针路径
-Dskywalking.agent.application_code:用于重写 agent/config/agent.config 配置文件中的服务名

Java jar 启动方式
java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar
-Dskywalking.agent.application_code=test-app
-Dskywalking.collector.servers=localhost:10800
-jar yourApp.jar
在这里插入图片描述
启 es
启动apache-skywalking-apm-incubating\bin\startup.bat
(启动时提示子目录或文件 F:\viptest\apache-skywalking-apm-incubating-6.0.0-GA\apache-skywalking-apm-incubating\bin…\logs 已经存 在。)
解决方式:bin目录下webappService文件编辑 加not
在这里插入图片描述

通过 127.0.0.1:8080
在这里插入图片描述

服务可用性指标 SLA
每分钟平均响应数
平均响应时间
服务进程 PID
服务所在物理机的 IP、Host、OS
运行时 CPU 使用率
运行时堆内存使用率
运行时非堆内存使用率
GC 情况

自定义配置路径过滤
Skywalking提供了一个可选插件 apm-trace-ignore-plugin,这个插件的作用是对追踪的个性化服务过滤.
你可以设置多个需要忽略的URL路径, 意味着包含这些路径的追踪信息不会被agent发送到 collector。
当前的路径匹配规则是 Ant Path 匹配风格,例如 /path/*, /path/, /path/?
将apm-trace-ignore-plugin-x.jar拷贝到agent/plugins后,重启探针即可生效
Skywalking-使用可选插件 apm-trace-ignore-plugin 有详细使用介绍
自定义配置路径过滤
有两种配置方式,可使用任意一种,配置生效的优先级从高到低:
第一种:
在系统环境变量中配置,你需要在系统变量中添加skywalking.trace.ignore_path, 值是你需要忽略的路径,多个以,号分隔
如:在启动参数设置,添加-Dskywalking.trace.ignore_path=/your/path/

第二种:
将/agent/optional-plugins/apm-trace-ignore-plugin/apm-trace-ignore-plugin.config 复制或剪切到 /agent/config/ 目录下,加上配置
trace.ignore_path=/your/path/1/,/your/path/2/

配置 UI
UI的配置项保存在webapp/webapp.yml中,更改 collector.ribbon.listOfServers 与 naming.jetty参数值对应。
配置说明:
server.port 默认监听8080端口,修改该端口不能生效,则在skywalking-webapp.jar包application.yml中更改
collector.ribbon.listOfServers collector的访问服务名称(与config/application.yml中naming.jetty配置保持相同) 且若是多个 collector 服务名称用’,'分隔
collector.path Collector 查询uri地址. 默认是/graphql
collector.ribbon.ReadTimeout 查询超时时间,默认是10秒
security.user.* 登录用户名/密码. 默认是 admin/admin

使用 skywalking 手动追踪 API
使用 maven 和 gradle 依赖相应的工具包,该工具包通过mavne有可能无法下载,可手动导入

org.apache.skywalking
apm-toolkit-trace
5.0.0-GA
provided

随时使用 TraceContext.traceId() API,在应用程序的任何地方获取traceId,modelAndView.addObject(“traceId”, TraceContext.traceId());
对任何需要追踪的方法,使用 @Trace 标注,则此方法会被加入到追踪链中。
在被追踪的方法中自定义 tag.
ActiveSpan.tag(“my_tag”, “my_value”);

使用 skywalking 手动追踪 API
/**对任何需要追踪的方法,使用 @Trace 标注,则此方法会被加入到追踪链中。
* 在被追踪的方法中自定义 tag. */
@RequestMapping("/login")
@Trace
public String login(@RequestParam(“userName”) String userName, @RequestParam(“passwrod”) String passwrod){
logger.info("login to system1, user: " + userName);
//TraceContext.traceId() API,在应用程序的任何地方获取traceId.
System.out.println(userName + “" + passwrod + "==”+ TraceContext.traceId());
ActiveSpan.tag(“login_tag”, "login to system, user: " + userName);
return userService.login(userName,passwrod);
}
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值