jam 编译工具_认识监视工具JaM背后PHP开发人员

jam 编译工具

Jess Portnoy是一位多产PHP开发人员和开源怪胎,在SourceForgeGitHub上具有许多有用的数据和Web数据实用程序。

从她的各种技术演讲中,我对Jess的工作含糊地熟悉了,由于她与网络多媒体平台Kaltura的联系,通常吸引了我的注意力。

她即将在LinuxFest Northwest发表的演讲是关于PHP监视的,并且考虑到Kaltura所处理的通信量,可能很少有人像Jess那样熟悉此主题。

什么是JaM?

JaM是一个PHP监视系统,它支持将PHP事件(重大错误,警告,通知,基本上列出的所有内容 )存储到不同的存储后端中。 以后可以从实现PHP_JAM_GET_FUNC()的后端检索事件。

JaM是对大型重量级站点主要有用的东西,还是仅使用一点点PHP来增强站点的人也可以从中受益?

我相信每个基于PHP的系统都可以从使用JaM中受益。

自然地,您越大,就越有可能遇到自己不知道的问题,监控就越重要。 但是,看到JaM如何需要很少的初始设置并且仅在发生错误事件时才触发,我觉得较小的项目也可以从中受益。

我收集了JaM的生活,作为Aware项目。 您是如何参与其中的?JaM提供了Aware所缺少的什么?

实际上,这是一个很好的例子,说明了FOSS多么惊人。

与我的一位同事进行对话后,我开始考虑JaM。 他的团队的代码中有一个致命错误,因为编写该代码的人在PHP 5.4上进行了测试,而生产站点在PHP 5.3上运行。 他告诉我他的团队查看了日志,找不到任何表明问题的条目。

这样做的原因是有人将error_log PHP指令设置为其他日志位置,因此该错误并未进入Apache的错误日志(团队希望在该位置找到它)。

因此,我开始考虑创建一个完全不需要日志解析的解决方案,而是直接插入Zend Engine并覆盖zend_error_cb()以通过电子邮件和其他方法报告错误,然后才写入错误日志,该解决方案是原始的zend_error_cb()函数的作用。

我已经知道Zend的一种解决方案,称为Zend Monitor。 但是Zend Monitor不是免费软件,并且依赖于其他Zend专有组件。 我想要一个FOSS解决方案。

在我看来,当您对一个新项目有一个想法时,您要做的第一件事就是检查它是否已经存在,而这正是我打算要做的。 它并不是很容易找到,但是结合使用“ zend_error_cb()”和其他关键字,我得到了Mikko KoppanenPHP Aware。

查看该项目的README文件,觉得它是一个很好的起点,因为它已经完成了我想要实现的大部分工作,并且以非常模块化的方式编写,这总是很好的。

但是,当我尝试构建它时,它没有编译。 那是因为它的上一次开发是在2011年,而PHP引擎此后发生了很大变化。

因此,我将其移植为支持较新PHP版本,按照我的原始计划添加了ElasticSearch后端,并提交了pull请求

我联系Mikko,询问他是否要合并。 Mikko说,虽然很高兴有人对该项目产生了兴趣,但是从此以后,他不再从事该项目或PHP的工作,对我拥有所有权感到非常高兴。

JaM就是这样诞生的。

Kaltura大概使用JaM。 对于喜欢看日志的系统管理员来说,这纯粹是一种后端技术吗?或者对于喜欢看图表的图形用户来说,这是否是一个漂亮的前端?

Kaltura确实使用JaM来监视我们的开发和测试ENV。 JaM是我今年举办的公司黑客马拉松的项目。 目前,我们的一些团队(包括我自己的团队)都在使用它,我希望其他人也会采用它。

JaM的主要目标受众是开发人员,因为JaM事件包括事件的完整堆栈跟踪,因此使他们能够了解触发事件的流程。

系统管理员还可以通过查看事件来获得见解,因为它通常可以指示支持服务的问题,而不一定表明代码本身。 例如,假设您的应用程序使用MySQL,而MySQL当前处于关闭状态。 这很可能会触发多个事件,因为如果没有它,您的应用程序将无法运行,这取决于系统管理员是否对此进行纠正。

就前端和图形而言,由于JaM知道如何使用ElasticSearch来存储事件,因此您可以利用Kibana轻松获取事件的可视化表示,运行查询并创建图形。

此外,由于可以通过发出简单的HTTP请求并传递JSON格式的数据来完成将数据插入ElasticSearch的操作,因此JaM的ElasticSearch后端可以用于向其他也可以通过这种方式接受数据的系统插入事件。

ElasticSearch是您对该项目的初衷之一。 对JaM有什么作用?

主要目标是使搜索更快。 但是,就像我在提到有关图形和其他数据可视化的问题时提到的那样,通过使用Kibana,您可以从数据中获得很多附加值,而不必编写一行代码。

JaM提供了其他监视系统无法提供的功能?

由于JaM直接从Zend Engine获取事件数据,因此完全避免了解析日志或创建API以将应用程序的错误报告给监视系统的必要性。

解析大文件很慢,有时很困难,因为您需要使用算法来确定它正在查看的行是否实际上是错误,并且经常会收到错误警报,否则由于错误的解析模式而会错过错误。

查看已解析的结果也很麻烦,尤其是当您有大量的日常日志时。

JaM具有多个后端的事实也很有用,因为您可以将其配置为仅将事件的子集发送到一个后端,同时将所有事件记录到另一个后端。

例如,考虑使用电子邮件来提醒问题。 许多应用程序会触发很多您要解决的通知,但这些通知对于应用程序的操作并不重要。 因此,您可能不希望通过电子邮件获得它们,因为它们很多,并且不会立即采取措施修复它们。

您可以将JaM配置为仅通过邮件发送您认为是严重错误的内容以立即响应,并将其余内容记录到ElasticSearch或任何其他后端以供以后分析和解决。

如果我有一个,可以运行JaM监视我的Wordpress安装吗?

是的,只要您的WordPress实例在Linux或任何其他UNIX上运行,就只需大约五分钟即可进行配置。 JaM也应该能够在Windows上运行,但是自从我几乎完全使用Linux(偶尔潜入FreeBSD)以来,我就从未对其进行过测试。

您是如何开始使用PHP的? 您显然已经完成了很多工作。 这是出于习惯,还是您首选的Web开发语言?

在Zend工作时,我开始大量使用PHP,在那里我编写了PHP代码,帮助维护了各种PHP扩展,并负责构建Zend Server deb和RPM软件包。

在Kaltura,我们还大量使用PHP,因为我们的大部分核心都是用PHP编写的。 因此,我确实写了很多PHP代码。

我认为PHP在Web开发方面肯定具有一些优势,其中之一就是您可以非常快速地产生结果。

使用PHP 7时 ,性能提升非常可观,传统上这是使用PHP的问题之一,因此这也是个好消息。

顺便说一句,在Kaltura,我们最近将Core移植到了PHP 7上

当然,花时间正确地了解它是非常重要的。

我认为易于开发的陷阱之一是,您可以在没有真正理解的情况下开始生成看似功能强大的代码,并且有些初学者显然很愿意这样做。

像任何其他语言一样,它仅与使用它的开发人员一样好。 但总而言之,对于快速的Web开发,我想说它是我的最爱之一,而Ruby也非常好用且灵活。

JaM非常可扩展。 您是否正在积极寻找贡献者? 您有待办事项列表,其中列出了需要完成的任务吗? 还是JaM现在处于一个好的位置?

从技术和意识形态的角度来看,我都是FOSS的坚定信奉者。 因此,我总是很高兴以代码,文档和错误报告的形式获得贡献。

对我来说,这个项目是开放的非常重要。 幸运的是,在Kaltura,我们的大多数项目都在。 实际上,我的一部分工作是与社区开发人员和用户合作,以​​将他们的贡献集成到我们的代码库中。

JaM处在一个非常好的位置,但是它在设计上非常可扩展,我希望看到人们贡献更多的后端。 我也开始将其移植到PHP 7,并希望让其他人参与其中。

您在开源方面做的很多。 为什么开源很重要?

我可以花几个小时来谈论这个话题。 仅用几行就很难总结了,但是我会尽力的。

从技术的角度来看,开放性可以使任何项目变得更好,因为在测试不同的用例,安全审核,错误报告和修复方面,没有任何一家公司可以与社区必须提供的大量资源竞争。

从意识形态的角度来看,开放源代码意味着用户不会在引擎盖焊接关闭的情况下得到汽车。 即使某个用户根本不是技术人员并且不能自己理解代码,但开放意味着他或她可以轻松地找到一个人来帮助他们,通常是完全免费的,而且常常是免费的。

这意味着用户不会被锁定,最终会遇到他们不再想要且无法更改的东西。 这是每个最终用户应享有的基本自由。

从社会的角度来看:FOSS是结识志趣相投的人和潜在朋友的好方法。 我曾经是,现在仍然是一个非常骄傲的书呆子,今天我很羡慕孩子们能够通过他们的FOSS活动找到朋友。

FOSS对一个人的职业也非常有用。 当你写的代码属于你的信用为您的工作工作的公司,属于你,你可以用它作为整个职业生涯的参考。 使用FOSS软件的开发人员也倾向于编写更好的代码,因为他们知道世界将会发展!

您是否在台式机/笔记本电脑上运行Linux? 如果是这样,该如何分配? 您的桌面或窗口管理器是什么?

从15岁起我就一直在Linux上运行。我从1997年开始使用Red Hat 5。

我最喜欢的桌面环境是LXDE 。 我喜欢它,因为它功能齐全,可以满足我的所有需求,而且重量很轻,并且实际上从未在我的任何机器上使用过,这是一个非常重要的功能。

我的台式计算机运行Debian ,但我也有带有CentOS的 chroot和LXC。

翻译自: https://opensource.com/life/16/4/linuxfest-northwest-interview-jess-portnoy

jam 编译工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值