summaryrefslogtreecommitdiffstats
path: root/src/go/collectors/go.d.plugin/modules/phpdaemon/metadata.yaml
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/go/collectors/go.d.plugin/modules/phpdaemon/metadata.yaml276
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