summaryrefslogtreecommitdiffstats
path: root/src/go/collectors/go.d.plugin/modules/phpdaemon/metadata.yaml
blob: bd3ae8e575733290c0c4ec5266de303c46689089 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
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