phpdaemon

package
v0.12.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 4, 2019 License: GPL-3.0 Imports: 9 Imported by: 1

README

phpdaemon

This module collects phpdaemon workers statistics via http.

Requirements:

  • phpdaemon with enabled http server.
  • statistics should be reported in json format.

It produces the following charts:

  1. Workers in workers
  • alive
  • shutdown
  1. Alive Workers State in workers
  • idle
  • busy
  • reloading
  1. Idle Workers State in workers
  • preinit
  • init
  • initialized
  1. Uptime in seconds
  • time
configuration

Here is an example for 2 instances:

jobs:
  - name: local
    url : http://127.0.0.1:8509/FullStatus
      
  - name: remote
    url : http://10.0.0.1:8509/FullStatus

For all available options please see module configuration file.

Without configuration, module attempts to connect to http://127.0.0.1:8509/FullStatus

phpdaemon configuration

Instruction from @METAJIJI

For enable phpd statistics on http, you must enable the http server and write an application.

Application is important, because standalone application ServerStatus.php provide statistics in html format and unusable for netdata.

/opt/phpdaemon/conf/phpd.conf

path /opt/phpdaemon/conf/AppResolver.php;
Pool:HTTPServer {
    privileged;
    listen '127.0.0.1';
    port 8509;
}

/opt/phpdaemon/conf/AppResolver.php

<?php

class MyAppResolver extends \PHPDaemon\Core\AppResolver {
    public function getRequestRoute($req, $upstream) {
        if (preg_match('~^/(ServerStatus|FullStatus)/~', $req->attrs->server['DOCUMENT_URI'], $m)) {
            return $m[1];
        }
    }
}

return new MyAppResolver;

/opt/phpdaemon/conf/PHPDaemon/Applications/FullStatus.php

<?php
namespace PHPDaemon\Applications;

class FullStatus extends \PHPDaemon\Core\AppInstance {
    public function beginRequest($req, $upstream) {
        return new FullStatusRequest($this, $upstream, $req);
    }
}

/opt/phpdaemon/conf/PHPDaemon/Applications/FullStatusRequest.php

<?php
namespace PHPDaemon\Applications;

use PHPDaemon\Core\Daemon;
use PHPDaemon\HTTPRequest\Generic;

class FullStatusRequest extends Generic {
    public function run() {
        $stime = microtime(true);
        $this->header('Content-Type: application/javascript; charset=utf-8');

        $stat = Daemon::getStateOfWorkers();
        $stat['uptime'] = time() - Daemon::$startTime;
        echo json_encode($stat);
    }
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Chart

type Chart = module.Chart

Chart is an alias for module.Chart

type Charts

type Charts = module.Charts

Charts is an alias for module.Charts

type Config

type Config struct {
	web.HTTP `yaml:",inline"`
}

Config is the PHPDaemon module configuration.

type Dims

type Dims = module.Dims

Dims is an alias for module.Dims

type FullStatus

type FullStatus struct {
	WorkerState `stm:""`
	Uptime      *int64 `stm:"uptime"`
}

FullStatus FullStatus.

type PHPDaemon

type PHPDaemon struct {
	module.Base
	Config `yaml:",inline"`
	// contains filtered or unexported fields
}

PHPDaemon PHPDaemon module.

func New

func New() *PHPDaemon

New creates PHPDaemon with default values.

func (PHPDaemon) Charts

func (p PHPDaemon) Charts() *Charts

Charts creates Charts.

func (*PHPDaemon) Check

func (p *PHPDaemon) Check() bool

Check makes check.

func (PHPDaemon) Cleanup

func (PHPDaemon) Cleanup()

Cleanup makes cleanup.

func (*PHPDaemon) Collect

func (p *PHPDaemon) Collect() map[string]int64

Collect collects metrics.

func (*PHPDaemon) Init

func (p *PHPDaemon) Init() bool

Init makes initialization.

type WorkerState

type WorkerState struct {
	// Alive is sum of Idle, Busy and Reloading
	Alive    int64 `stm:"alive"`
	Shutdown int64 `stm:"shutdown"`

	// Idle that the worker is not in the middle of execution valuable callback (e.g. request) at this moment of time.
	// It does not mean that worker not have any pending operations.
	// Idle is sum of Preinit, Init and Initialized.
	Idle int64 `stm:"idle"`
	// Busy means that the worker is in the middle of execution valuable callback.
	Busy      int64 `stm:"busy"`
	Reloading int64 `stm:"reloading"`

	Preinit int64 `stm:"preinit"`
	// Init means that worker is starting right now.
	Init int64 `stm:"init"`
	// Initialized means that the worker is in Idle state.
	Initialized int64 `stm:"initialized"`
}

WorkerState represents phpdaemon worker state.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL