热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于laravel:基于PrometheusGrafana监控LaravelSwoole应用

1.Swoole开启自定义过程定时采集监控指标,如$server->stats()memory_get_usage()sys_getloadavg()gc_status(),将这些指标存储到APCu;2.配置Laravel全局terminate中间件统计HTTP申请次数与耗时指标,将指标存储APCu;3.Laravel提供一个指标接口,从APCu中查问指标数据;4.Prometheus定时拉取指标接

实现思路

1.Swoole 开启自定义过程定时采集监控指标,如 $server->stats() memory_get_usage() sys_getloadavg() gc_status(),将这些指标存储到 APCu;
2.配置 Laravel 全局terminate 中间件统计 HTTP 申请次数与耗时指标,将指标存储 APCu;
3.Laravel 提供一个指标接口,从 APCu 中查问指标数据;
4.Prometheus 定时拉取指标接口,存储指标数据到它的 TSDB;
5.Grafana 接入 Prometheus 数据源,图形化展现监控指标数据。

用到哪些中间件

  • APCu:存储指标数据,多过程共享数据,读写速度快;
  • Prometheus:收集监控指标数据,存储到 TSDB,设置告警规定;
  • Grafana:图形化展现监控数据,反对配置告警。

难点

  • Swoole是多过程模型,如何在自定义过程中取统计其余 Worker 过程的内存占用呢?
    过程间通信,应用sendMessage()与onPipeMessage()来实现自定义过程与 Worker 过程通信,统计Worker过程的内存与GC状况。
  • 统计申请的中间件势必会减少接口耗时,如果将影响降到最低?
    所有与中间件相干的实例(包含中间件)都采纳单例模式,尽可能减少对象的初始化,只操作 APCu,无其余简单操作,将中间件整体耗时降到最低。

看看成果吧

待优化项

  • 中间件反对路由参数合并统计:/users/123/users/456合并为/users/{id},还须要兼容多版本的Laravel/Lumen;

LaravelS下如何配置?

查看具体文档


推荐阅读
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • 在Laravel中实现PHP对JSON数据的发布与处理 ... [详细]
  • Swoole是针对PHP的生产级异步编程框架。它是一种用纯C语言编写的PHP扩展,它使PHP开发人员能够在PHP中编写高性能,可扩展的并发TCP ... [详细]
  • 本文通过基准测试(Benchmark)对.NET Core环境下Thrift和HTTP客户端的微服务通信性能进行对比分析。基准测试是一种评估系统或组件性能的方法,通过运行一系列标准化的测试来衡量其表现。 ... [详细]
  • Ubuntu 22.04 安装搜狗输入法详细指南及常见问题解决方案
    本文将详细介绍如何在 Ubuntu 22.04 上安装搜狗输入法,并提供常见问题的解决方法。包括下载安装包、更新源、安装依赖项等步骤。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
  • CSS3 @font-face 字体应用技术解析与实践
    在Web前端开发中,HTML教程和CSS3的结合使得网页设计更加多样化。长期以来,Web设计师受限于“web-safe”字体的选择。然而,CSS3中的`@font-face`规则允许从服务器端加载自定义字体,极大地丰富了网页的视觉效果。通过这一技术,设计师可以自由选择和使用各种字体,提升用户体验和页面美观度。本文将深入解析`@font-face`的实现原理,并提供实际应用案例,帮助开发者更好地掌握这一强大工具。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • 利用树莓派畅享落网电台音乐体验
    最近重新拾起了闲置已久的树莓派,这台小巧的开发板已经沉寂了半年多。上个月闲暇时间较多,我决定将其重新启用。恰逢落网电台进行了改版,回忆起之前在树莓派论坛上看到有人用它来播放豆瓣音乐,便萌生了同样的想法。通过一番调试,终于实现了在树莓派上流畅播放落网电台音乐的功能,带来了全新的音乐享受体验。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了laravel中抽离公共模版共用数据相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 项目为laravel网站上的项目:http://laravelacademy.org/post/2265.html当部署完成后,用浏览器打开首页出现/blognotfou ... [详细]
  • 导读:很多朋友问到关于入门学什么php框架简单的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览: ... [详细]
  • 如何通过swoole加速laravel的问题?
    这篇文章主要介绍了关于如何使用swoole加速laravel,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下再来复习一下吧,导致php慢的各种因素中解析性语言的 ... [详细]
author-avatar
坐看末日之景L_170
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有