php链路追踪框架skywalking介绍

目录
  • Skywalking介绍
  • Skywalking功能介绍

Skywalking介绍

Skywalking是一个国产的开源框架,2015年有吴晟个人开源,2017年加入Apache孵化器,国人开源的产品,主要开发人员来自于华为,2019年4月17日Apache董事会批准SkyWalking成为顶级项目,支持Java、.Net、NodeJs等探针,数据存储支持Mysql、Elasticsearch等,跟Pinpoint一样采用字节码注入的方式实现代码的无侵入,探针采集数据粒度粗,但性能表现优秀,且对云原生支持,目前增长势头强劲,社区活跃。

Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。

skywalking php的地址

由于公司要上微服务,和异构购语言进行链路的追踪和问题定位选择了skywalking

目前是5.0.1,由于5.0.1暂不支持swoole,官方说需要等5.1,暂时降级到4.2.0

4.2.0支持swoole

下面是部署文档

由于4.2采用的是rpc需要安装rpc组件需要梯子下载,付下载好免费的地址grpc

下载服务端
wget https://github.com/apache/skywalking/archive/refs/tags/v8.9.1.tar.gz
tar -zxvf v8.9.1.tar.gz
cd  apache-skywalking-apm-bin
#启动
bin/startup.sh
安装php的扩展
yum install boost-devel
#先安装grpc 必须要安装cmake
 $ git clone --depth 1 -b v1.34.x https://github.com/grpc/grpc.git /var/local/git/grpc
 $ cd /var/local/git/grpc
 $ git submodule update --init --recursive
 $ mkdir -p cmake/build
 $ cd cmake/build
 $ cmake ../..
 $ make -j$(nproc)
#下载扩展
wget https://github.com/SkyAPM/SkyAPM-php-sdk/archive/v4.2.0.tar.gz
tar zxvf v4.2.0.tar.gz
cd SkyAPM-php-sdk-4.2.0
phpize
./configure --with-grpc="/var/local/git/grpc"
make
sudo make install
添加配置到php.ini
; Loading extensions in PHP
extension=skywalking.so
; enable skywalking
skywalking.enable = 1
; Set skyWalking collector version (5 or 6 or 7 or 8)
skywalking.version = 8
; Set app code e.g. MyProjectName
skywalking.app_code = php_hyperf_agent
; Set grpc address
skywalking.grpc=127.0.0.1:11800
skywalking.log_level = enable
skywalking.log_path = /tmp/skywalking-php.log
重启php
systemctl restart php8-fpm
安装elastic7
cd /mnt/tools
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.4-linux-x86_64.tar.gz
tar -zvxf elasticsearch-7.17.4-linux-x86_64.tar.gz
cd elasticsearch-7.17.4/
vim config/elasticsearch.yml
+ network.host: 0.0.0.0
+ http.port: 9200
+ node.name: node-1
+ discovery.seed_hosts: ["node-1"]
+ cluster.initial_master_nodes: ["node-1"]
+ ingest.geoip.downloader.enabled: false
vim /etc/sysctl.conf
#添加
vm.max_map_count=655360
vim config/jvm.options
+ -Xms1g
+ -Xmx1g
vim /etc/security/limits.conf
* soft nproc 4096
* hard nproc 4096
执行:sysctl -p
#添加用户
useradd elastic
passwd elastic 
#密码 123456
vim /etc/sudoers
#新增
 elastic ALL=(ALL)       ALL
chown -R elastic:elastic elasticsearch-7.17.4
切换用户启动
bin/elasticsearch
# 后台启动
bin/elasticsearch -d
加入supervisorctl
vim /etc/supervisord.d/elastic.ini
[program:elastic]
command=su -c "/www/tools/elasticsearch-7.17.4/bin//elasticsearch" elastic
directory=/www/tools/elasticsearch-7.17.4/
autorestart=true
startsecs=3
startretries=3
stdout_logfile=/www/tools/elasticsearch-7.17.4/logs/elastic.out.log
stderr_logfile=/www/tools/elasticsearch-7.17.4/logs/elastic.err.log
stdout_logfile_maxbytes=2MB
stderr_logfile_maxbytes=2MB
user=root
priority=999
numprocs=1
supervisorctl update

Skywalking功能介绍

  • 多种监控手段,可以通过语言探针和service mesh获得监控的数据
  • 支持多重语言的自动探针,包括JAVA, .NET Core和NodeJS
  • 轻量高效,无需大数据平台和大量的服务器资源
  • 模块化,UI ,存储,集群管理都有多种机制可选
  • 支持告警
  • 优秀的可视化解决方案

到此这篇关于php链路追踪框架skywalking的使用的文章就介绍到这了,更多相关php skywalking内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • PHPLog php 程序调试追踪工具

    原理: 1.程序执行的过程中,在相应的地方记录你想要追踪的变量及调用栈和每次函数调用的参数,          把这些信息以一定的格式记录到文件,一个变量一行,具体数据格式请参看代码,这里不细讲. 2.现在有了每次记录变量时的所有信息(包括调用栈及参数),当你通过浏览器访问这个程序时, 这个程序会把整个文件读取分析,          在页面显示你的所有调试信息,并且它会动态ajax刷新,保持与你的调试同步. 画个图吧,要清晰得多.      BackTrace也就是调用栈信息,没有在图中体现,

  • SublimeText3配置PHP函数追踪定位插件

    一.下载ctags http://download.csdn.net/detail/xujunabc999/9604934 二.安装ctags和codeBeautifier插件 1)按Ctrl+shift+P,打开Install Package 2)搜索ctags进行插件安装: 3)搜索Php codeBeautifier进行插件安装. 三.配置快捷键 配置在sublime中使用Ctrl+左键单击函数跳转.Ctrl+右键单击跳回函数调用位置 复制以下代码到Preferences->Package

  • php链路追踪框架skywalking介绍

    目录 Skywalking介绍 Skywalking功能介绍 Skywalking介绍 Skywalking是一个国产的开源框架,2015年有吴晟个人开源,2017年加入Apache孵化器,国人开源的产品,主要开发人员来自于华为,2019年4月17日Apache董事会批准SkyWalking成为顶级项目,支持Java..Net.NodeJs等探针,数据存储支持Mysql.Elasticsearch等,跟Pinpoint一样采用字节码注入的方式实现代码的无侵入,探针采集数据粒度粗,但性能表现优秀,

  • .NET Core分布式链路追踪框架的基本实现原理

    分布式追踪 什么是分布式追踪 分布式系统 当我们使用 Google 或者 百度搜索时,查询服务会将关键字分发到多台查询服务器,每台服务器在自己的索引范围内进行搜索,搜索引擎可以在短时间内获得大量准确的搜索结果:同时,根据关键字,广告子系统会推送合适的相关广告,还会从竞价排名子系统获得网站权重.通常一个搜索可能需要成千上万台服务器参与,需要经过许多不同的系统提供服务. 多台计算机通过网络组成了一个庞大的系统,这个系统即是分布式系统. 在微服务或者云原生开发中,一般认为分布式系统是通过各种中间件/服

  • .NET Core分布式链路追踪框架的基本实现原理

    目录 分布式追踪 什么是分布式追踪 分布式系统 分布式追踪 分布式追踪有什么用呢 Dapper 分布式追踪系统的实现 跟踪树和 span Jaeger 和 OpenTracing OpenTracing Jaeger 结构 OpenTracing 数据模型 Span 格式 Trace Span OpenTracing API 分布式追踪 什么是分布式追踪 分布式系统 当我们使用 Google 或者 百度搜索时,查询服务会将关键字分发到多台查询服务器,每台服务器在自己的索引范围内进行搜索,搜索引擎

  • Jaeger Client Go入门并实现链路追踪

    目录 Jaeger 部署 Jaeger 从示例了解 Jaeger Client Go 了解 trace.span tracer 配置 Sampler 配置 Reporter 配置 分布式系统与span 怎么调.怎么传 HTTP,跨进程追踪 客户端 Web 服务端 Tag . Log 和 Ref Jaeger OpenTracing 是开放式分布式追踪规范,OpenTracing API 是一致,可表达,与供应商无关的API,用于分布式跟踪和上下文传播. OpenTracing 的客户端库以及规范

  • Jaeger Client Go入门并实现链路追踪

    目录 Jaeger 部署 Jaeger 从示例了解 Jaeger Client Go 了解 trace.span tracer 配置 Sampler 配置 Reporter 配置 分布式系统与span 怎么调.怎么传 HTTP,跨进程追踪 客户端 Web 服务端 Tag . Log 和 Ref Jaeger OpenTracing 是开放式分布式追踪规范,OpenTracing API 是一致,可表达,与供应商无关的API,用于分布式跟踪和上下文传播. OpenTracing 的客户端库以及规范

  • net core下链路追踪skywalking安装和简单使用教程

    当我们用很多服务时,各个服务间的调用关系是怎么样的?各个服务单调用的顺序\时间性能怎么样?服务出错了,到底是哪个服务引起的?这些问题我们用什么方案解决呢,以前的方式是各个系统自己单独做日志,出了问题从暴出问题的服务开始一个一个服务的排查,耗时耗力,有些日志不全的,还不一定查得出来.好在现在有Skywalking链路追踪系统,可以不用写任何代码,就追踪到各个服务间的调用关系和性能状态等. 本文将从0开始搭建两个webapi项目,使用Skywalking来追踪他们之间的调用关系及响应时间.开发环境为

  • skywalking分布式服务调用链路追踪APM应用监控

    目录 前言 skywalking是什么,有什么用? skywalaking总体架构分为三部分 如何快速开始? 第一步:进入官方release地址 第二步:配置需要监控的应用的agent探针 系统使用图例 其他 前言 当企业应用进入分布式微服务时代,应用服务依赖会越来越多,skywalking可以很好的解决服务调用链路追踪的问题,而且基于java探针技术,基本对应用零侵入零耦合. skywalking是什么,有什么用? Skywalking 是一个APM系统,即应用性能监控系统,为微服务架构和云原

  • Go 分布式链路追踪实现原理解析

    目录 为什么需要分布式链路追踪系统 微服务架构给运维.排障带来新挑战 分布式链路追踪系统如何帮助我们 分布式链路追踪系统架构概览 核心概念 一般架构 协议标准和开源实现 应用侧调用链跟踪实现方案概览 应用侧核心任务 基于 OTEL 库实现调用拦截 HttpServer Handler 生成 Span 过程 HttpClient 请求生成 Span 过程 基于 OTEL 库实现调用链跟踪总结 非侵入调用链跟踪实现思路 Go 非侵入链路追踪实现原理 在分布式.微服务架构下,应用一个请求往往贯穿多个分

  • 详解如何在Go服务中做链路追踪

    目录 1. 使用全局 map 来实现 2. 使用 Context 来实现 3. 小结 使用 Go 语言开发微服务的时候,需要追踪每一个请求的访问链路,这块在 Go 中目前没有很好的解决方案. 在 Java 中解决这个问题比较简单,可以使用 MDC,在一个进程内共享一个请求的 RequestId. 在 Go 中实现链路追踪有两种思路:一种是在项目中使用一个全局的 map, key 是 goroutine 的唯一 Id,value 是 RequestId,另一种思路可以使用 context.Cont

  • ASP.Net Core中的日志与分布式链路追踪

    目录 .NET Core 中的日志 控制台输出 非侵入式日志 Microsoft.Extensions.Logging ILoggerFactory ILoggerProvider ILogger Logging Providers 怎么使用 日志等级 Trace.Debug 链路跟踪 OpenTracing 上下文和跟踪功能 跟踪单个功能 将多个跨度合并到一条轨迹中 传播过程中的上下文 分布式链路跟踪 在不同进程中跟踪 在 ASP.NET Core 中跟踪 OpenTracing API 和

随机推荐