diff options
Diffstat (limited to '')
-rw-r--r-- | src/go/collectors/go.d.plugin/modules/phpdaemon/metadata.yaml | 276 |
1 files changed, 276 insertions, 0 deletions
diff --git a/src/go/collectors/go.d.plugin/modules/phpdaemon/metadata.yaml b/src/go/collectors/go.d.plugin/modules/phpdaemon/metadata.yaml new file mode 100644 index 000000000..bd3ae8e57 --- /dev/null +++ b/src/go/collectors/go.d.plugin/modules/phpdaemon/metadata.yaml @@ -0,0 +1,276 @@ +plugin_name: go.d.plugin +modules: + - meta: + id: collector-go.d.plugin-phpdaemon + plugin_name: go.d.plugin + module_name: phpdaemon + monitored_instance: + name: phpDaemon + link: https://github.com/kakserpom/phpdaemon + icon_filename: php.svg + categories: + - data-collection.apm + keywords: + - phpdaemon + - php + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + most_popular: false + overview: + data_collection: + metrics_description: | + This collector monitors phpDaemon instances. + method_description: "" + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "" + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: Enable phpDaemon's HTTP server + description: | + Statistics expected to be in JSON format. + + <details> + <summary>phpDaemon configuration</summary> + + Instruction from [@METAJIJI](https://github.com/METAJIJI). + + To enable `phpd` statistics on http, you must enable the http server and write an application. + Application is important, because standalone application [ServerStatus.php](https://github.com/kakserpom/phpdaemon/blob/master/PHPDaemon/Applications/ServerStatus.php) provides statistics in html format and unusable for `netdata`. + + ```php + // /opt/phpdaemon/conf/phpd.conf + + path /opt/phpdaemon/conf/AppResolver.php; + Pool:HTTPServer { + privileged; + listen '127.0.0.1'; + port 8509; + } + ``` + + ```php + // /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; + ``` + + ```php + /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); + } + } + ``` + + ```php + // /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); + } + } + ``` + + </details> + configuration: + file: + name: go.d/phpdaemon.conf + options: + description: | + The following options can be defined globally: update_every, autodetection_retry. + folding: + title: Config options + enabled: true + list: + - name: update_every + description: Data collection frequency. + default_value: 1 + required: false + - name: autodetection_retry + description: Recheck interval in seconds. Zero means no recheck will be scheduled. + default_value: 0 + required: false + - name: url + description: Server URL. + default_value: http://127.0.0.1:8509/FullStatus + required: true + - name: timeout + description: HTTP request timeout. + default_value: 2 + required: false + - name: username + description: Username for basic HTTP authentication. + default_value: "" + required: false + - name: password + description: Password for basic HTTP authentication. + default_value: "" + required: false + - name: proxy_url + description: Proxy URL. + default_value: "" + required: false + - name: proxy_username + description: Username for proxy basic HTTP authentication. + default_value: "" + required: false + - name: proxy_password + description: Password for proxy basic HTTP authentication. + default_value: "" + required: false + - name: method + description: HTTP request method. + default_value: GET + required: false + - name: body + description: HTTP request body. + default_value: "" + required: false + - name: headers + description: HTTP request headers. + default_value: "" + required: false + - name: not_follow_redirects + description: Redirect handling policy. Controls whether the client follows redirects. + default_value: false + required: false + - name: tls_skip_verify + description: Server certificate chain and hostname validation policy. Controls whether the client performs this check. + default_value: false + required: false + - name: tls_ca + description: Certification authority that the client uses when verifying the server's certificates. + default_value: "" + required: false + - name: tls_cert + description: Client TLS certificate. + default_value: "" + required: false + - name: tls_key + description: Client TLS key. + default_value: "" + required: false + examples: + folding: + title: Config + enabled: true + list: + - name: Basic + description: A basic example configuration. + config: | + jobs: + - name: local + url: http://127.0.0.1:8509/FullStatus + - name: HTTP authentication + description: HTTP authentication. + config: | + jobs: + - name: local + url: http://127.0.0.1:8509/FullStatus + username: username + password: password + - name: HTTPS with self-signed certificate + description: HTTPS with self-signed certificate. + config: | + jobs: + - name: local + url: http://127.0.0.1:8509/FullStatus + tls_skip_verify: yes + - name: Multi-instance + description: | + > **Note**: When you define multiple jobs, their names must be unique. + + Collecting metrics from local and remote instances. + config: | + jobs: + - name: local + url: http://127.0.0.1:8509/FullStatus + + - name: remote + url: http://192.0.2.1:8509/FullStatus + troubleshooting: + problems: + list: [] + alerts: [] + metrics: + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: These metrics refer to the entire monitored application. + labels: [] + metrics: + - name: phpdaemon.workers + description: Workers + unit: workers + chart_type: line + dimensions: + - name: alive + - name: shutdown + - name: phpdaemon.alive_workers + description: Alive Workers State + unit: workers + chart_type: line + dimensions: + - name: idle + - name: busy + - name: reloading + - name: phpdaemon.idle_workers + description: Idle Workers State + unit: workers + chart_type: line + dimensions: + - name: preinit + - name: init + - name: initialized + - name: phpdaemon.uptime + description: Uptime + unit: seconds + chart_type: line + dimensions: + - name: time |