jonnyanyc/gmetric-php

一个简单、轻量级的PHP客户端,用于通过UDP将Gmetric数据发送到Ganglia节点。

0.3.0-alpha2 2015-05-01 09:17 UTC

README

一个非常简单、轻量级的PHP客户端,用于通过UDP将Gmetric数据发送到Ganglia节点。这使您可以将PHP应用程序与Ganglia集成,并通过Ganglia Web UI跟踪特定于应用程序的度量。

Ganglia会自动为任何新指标生成一个图表。因此,跟踪新指标只需要在应用程序中编写一行或两行代码。

消息以乐观方式通过单向、非阻塞UDP数据报发送。这使跟踪指标的成本尽可能接近零。

安装

最简单的方法是使用Composer

composer require jonnyanyc/gmetric-php:~0.2.0

或者将包手动添加到您的composer.json文件中

    "require": {
    	"jonnyanyc/gmetric-php": "~0.2.0"
    }

使用方法

$gmetric = new \jonnyanyc\Ganglia\Gmetric\Gmetric();

$gmetric->sendMetric("app1.job2.execution_time", "app", "float", 3.12, "hours");
$gmetric->sendMetric("app1.job2.method3.failures", "app", "uint16", 3, "failures");
// send more metrics if needed

如果您在本地运行gmond,则可以使用Gmetric->useConfigFile()方法来设置连接细节。此方法读取本地的gmond配置文件,以设置应接收您的度量的服务器的主机和端口。它还设置报告度量时的主机名称。

如果您愿意,可以在创建Gmetric对象时定义这些设置。或者,您可以使用默认设置:将度量发送到本地主机UDP端口8649,并在报告度量时使用主机的默认主机名。

Gmetric字段

  • name:您要跟踪的度量的名称。
  • group:一个任意组,其中该度量应在Ganglia Web界面中显示。将所有特定于应用程序的度量收集在名为“app”的组下,或根据服务、作业、消费者、类型(例如错误计数)等分别。
  • type:值的类型。有效值包括
    • uint16
    • int16
    • uint32
    • int32
    • float
    • double
    • string
  • value:您要为给定度量记录的值。
  • unit:您值的任意单位,它显示为图表的Y轴。例如:“秒”、“失败”、“行”等。
  • valueTTL:此度量的值的正常生存期(以秒为单位)。例如,每小时批处理作业的错误计数将有一个生存期为1小时(3600秒)。
  • metricTTL:Ganglia在未收到任何新值后还应显示图表的时间(以秒为单位)。例如,如果您将其设置为3天(259,200秒),则Ganglia将在3天的非活动后删除图表。先前数据将保留,因此如果您发送新值,图表将重新出现并带有历史数据。
  • counter:用于确定数据应如何存储在RRDtool中。在大多数情况下,您将想要使用默认的数据处理。如果您希望度量只会增加,可以传递“counter”值,这样RRDtool将存储增量。这相当于向Gmetric二进制文件的“slope”选项传递“positive”值。

即将推出

性能

详细信息待定。在初步测试中,发送值似乎小于1毫秒。