remove python.d/gearman (#18291)
Ilya Mashchenko committed
Aug 9, 2024 at 18:24 UTC
ed16b50e24b02734d99e9effbf03cbd0f16d4723
6 files changed
-732
CMakeLists.txt
-2
@@ -2783,7 +2783,6 @@ install(FILES
2783
src/collectors/python.d.plugin/dovecot/dovecot.conf
2784
src/collectors/python.d.plugin/example/example.conf
2785
src/collectors/python.d.plugin/exim/exim.conf
2786
- src/collectors/python.d.plugin/gearman/gearman.conf
2786
src/collectors/python.d.plugin/go_expvar/go_expvar.conf
2787
src/collectors/python.d.plugin/haproxy/haproxy.conf
2788
src/collectors/python.d.plugin/monit/monit.conf
@@ -2814,7 +2813,6 @@ install(FILES
2813
src/collectors/python.d.plugin/dovecot/dovecot.chart.py
2814
src/collectors/python.d.plugin/example/example.chart.py
2815
src/collectors/python.d.plugin/exim/exim.chart.py
2817
- src/collectors/python.d.plugin/gearman/gearman.chart.py
2816
src/collectors/python.d.plugin/go_expvar/go_expvar.chart.py
2817
src/collectors/python.d.plugin/haproxy/haproxy.chart.py
2818
src/collectors/python.d.plugin/monit/monit.chart.py
src/collectors/python.d.plugin/gearman/README.md
deleted
-1
@@ -1 +0,0 @@
1
-integrations/gearman.md
\ No newline at end of file
src/collectors/python.d.plugin/gearman/gearman.chart.py
deleted
-243
@@ -1,243 +0,0 @@
1
-# Description: dovecot netdata python.d module
2
-# Author: Kyle Agronick (agronick)
3
-# SPDX-License-Identifier: GPL-3.0+
4
-
5
-# Gearman Netdata Plugin
6
-
7
-from copy import deepcopy
8
-
9
-from bases.FrameworkServices.SocketService import SocketService
10
-
11
-CHARTS = {
12
- 'total_workers': {
13
- 'options': [None, 'Total Jobs', 'Jobs', 'Total Jobs', 'gearman.total_jobs', 'line'],
14
- 'lines': [
15
- ['total_pending', 'Pending', 'absolute'],
16
- ['total_running', 'Running', 'absolute'],
17
- ]
18
- },
19
-}
20
-
21
-
22
-def job_chart_template(job_name):
23
- return {
24
- 'options': [None, job_name, 'Jobs', 'Activity by Job', 'gearman.single_job', 'stacked'],
25
- 'lines': [
26
- ['{0}_pending'.format(job_name), 'Pending', 'absolute'],
27
- ['{0}_idle'.format(job_name), 'Idle', 'absolute'],
28
- ['{0}_running'.format(job_name), 'Running', 'absolute'],
29
- ]
30
- }
31
-
32
-
33
-def build_result_dict(job):
34
- """
35
- Get the status for each job
36
- :return: dict
37
- """
38
-
39
- total, running, available = job['metrics']
40
-
41
- idle = available - running
42
- pending = total - running
43
-
44
- return {
45
- '{0}_pending'.format(job['job_name']): pending,
46
- '{0}_idle'.format(job['job_name']): idle,
47
- '{0}_running'.format(job['job_name']): running,
48
- }
49
-
50
-
51
-def parse_worker_data(job):
52
- job_name = job[0]
53
- job_metrics = job[1:]
54
-
55
- return {
56
- 'job_name': job_name,
57
- 'metrics': job_metrics,
58
- }
59
-
60
-
61
-class GearmanReadException(BaseException):
62
- pass
63
-
64
-
65
-class Service(SocketService):
66
- def __init__(self, configuration=None, name=None):
67
- super(Service, self).__init__(configuration=configuration, name=name)
68
- self.request = "status\n"
69
- self._keep_alive = True
70
-
71
- self.host = self.configuration.get('host', 'localhost')
72
- self.port = self.configuration.get('port', 4730)
73
-
74
- self.tls = self.configuration.get('tls', False)
75
- self.cert = self.configuration.get('cert', None)
76
- self.key = self.configuration.get('key', None)
77
-
78
- self.active_jobs = set()
79
- self.definitions = deepcopy(CHARTS)
80
- self.order = ['total_workers']
81
-
82
- def _get_data(self):
83
- """
84
- Format data received from socket
85
- :return: dict
86
- """
87
-
88
- try:
89
- active_jobs = self.get_active_jobs()
90
- except GearmanReadException:
91
- return None
92
-
93
- found_jobs, job_data = self.process_jobs(active_jobs)
94
- self.remove_stale_jobs(found_jobs)
95
- return job_data
96
-
97
- def get_active_jobs(self):
98
- active_jobs = []
99
-
100
- for job in self.get_worker_data():
101
- parsed_job = parse_worker_data(job)
102
-
103
- # Gearman does not clean up old jobs
104
- # We only care about jobs that have
105
- # some relevant data
106
- if not any(parsed_job['metrics']):
107
- continue
108
-
109
- active_jobs.append(parsed_job)
110
-
111
- return active_jobs
112
-
113
- def get_worker_data(self):
114
- """
115
- Split the data returned from Gearman
116
- into a list of lists
117
-
118
- This returns the same output that you
119
- would get from a gearadmin --status
120
- command.
121
-
122
- Example output returned from
123
- _get_raw_data():
124
- prefix generic_worker4 78 78 500
125
- generic_worker2 78 78 500
126
- generic_worker3 0 0 760
127
- generic_worker1 0 0 500
128
-
129
- :return: list
130
- """
131
-
132
- try:
133
- raw = self._get_raw_data()
134
- except (ValueError, AttributeError):
135
- raise GearmanReadException()
136
-
137
- if raw is None:
138
- self.debug("Gearman returned no data")
139
- raise GearmanReadException()
140
-
141
- workers = list()
142
-
143
- for line in raw.splitlines()[:-1]:
144
- parts = line.split()
145
- if not parts:
146
- continue
147
-
148
- name = '_'.join(parts[:-3])
149
- try:
150
- values = [int(w) for w in parts[-3:]]
151
- except ValueError:
152
- continue
153
-
154
- w = [name]
155
- w.extend(values)
156
- workers.append(w)
157
-
158
- return workers
159
-
160
- def process_jobs(self, active_jobs):
161
-
162
- output = {
163
- 'total_pending': 0,
164
- 'total_idle': 0,
165
- 'total_running': 0,
166
- }
167
- found_jobs = set()
168
-
169
- for parsed_job in active_jobs:
170
-
171
- job_name = self.add_job(parsed_job)
172
- found_jobs.add(job_name)
173
- job_data = build_result_dict(parsed_job)
174
-
175
- for sum_value in ('pending', 'running', 'idle'):
176
- output['total_{0}'.format(sum_value)] += job_data['{0}_{1}'.format(job_name, sum_value)]
177
-
178
- output.update(job_data)
179
-
180
- return found_jobs, output
181
-
182
- def remove_stale_jobs(self, active_job_list):
183
- """
184
- Removes jobs that have no workers, pending jobs,
185
- or running jobs
186
- :param active_job_list: The latest list of active jobs
187
- :type active_job_list: iterable
188
- :return: None
189
- """
190
-
191
- for to_remove in self.active_jobs - active_job_list:
192
- self.remove_job(to_remove)
193
-
194
- def add_job(self, parsed_job):
195
- """
196
- Adds a job to the list of active jobs
197
- :param parsed_job: A parsed job dict
198
- :type parsed_job: dict
199
- :return: None
200
- """
201
-
202
- def add_chart(job_name):
203
- """
204
- Adds a new job chart
205
- :param job_name: The name of the job to add
206
- :type job_name: string
207
- :return: None
208
- """
209
-
210
- job_key = 'job_{0}'.format(job_name)
211
- template = job_chart_template(job_name)
212
- new_chart = self.charts.add_chart([job_key] + template['options'])
213
- for dimension in template['lines']:
214
- new_chart.add_dimension(dimension)
215
-
216
- if parsed_job['job_name'] not in self.active_jobs:
217
- add_chart(parsed_job['job_name'])
218
- self.active_jobs.add(parsed_job['job_name'])
219
-
220
- return parsed_job['job_name']
221
-
222
- def remove_job(self, job_name):
223
- """
224
- Removes a job to the list of active jobs
225
- :param job_name: The name of the job to remove
226
- :type job_name: string
227
- :return: None
228
- """
229
-
230
- def remove_chart(job_name):
231
- """
232
- Removes a job chart
233
- :param job_name: The name of the job to remove
234
- :type job_name: string
235
- :return: None
236
- """
237
-
238
- job_key = 'job_{0}'.format(job_name)
239
- self.charts[job_key].obsolete()
240
- del self.charts[job_key]
241
-
242
- remove_chart(job_name)
243
- self.active_jobs.remove(job_name)
src/collectors/python.d.plugin/gearman/gearman.conf
deleted
-75
@@ -1,75 +0,0 @@
1
-# netdata python.d.plugin configuration for gearman
2
-#
3
-# This file is in YaML format. Generally the format is:
4
-#
5
-# name: value
6
-#
7
-# There are 2 sections:
8
-# - global variables
9
-# - one or more JOBS
10
-#
11
-# JOBS allow you to collect values from multiple sources.
12
-# Each source will have its own set of charts.
13
-#
14
-# JOB parameters have to be indented (using spaces only, example below).
15
-
16
-# ----------------------------------------------------------------------
17
-# Global Variables
18
-# These variables set the defaults for all JOBs, however each JOB
19
-# may define its own, overriding the defaults.
20
-
21
-# update_every sets the default data collection frequency.
22
-# If unset, the python.d.plugin default is used.
23
-# update_every: 1
24
-
25
-# priority controls the order of charts at the netdata dashboard.
26
-# Lower numbers move the charts towards the top of the page.
27
-# If unset, the default for python.d.plugin is used.
28
-# priority: 60000
29
-
30
-# penalty indicates whether to apply penalty to update_every in case of failures.
31
-# Penalty will increase every 5 failed updates in a row. Maximum penalty is 10 minutes.
32
-# penalty: yes
33
-
34
-# autodetection_retry sets the job re-check interval in seconds.
35
-# The job is not deleted if check fails.
36
-# Attempts to start the job are made once every autodetection_retry.
37
-# This feature is disabled by default.
38
-# autodetection_retry: 0
39
-
40
-# ----------------------------------------------------------------------
41
-# JOBS (data collection sources)
42
-#
43
-# The default JOBS share the same *name*. JOBS with the same name
44
-# are mutually exclusive. Only one of them will be allowed running at
45
-# any time. This allows autodetection to try several alternatives and
46
-# pick the one that works.
47
-#
48
-# Any number of jobs is supported.
49
-#
50
-# All python.d.plugin JOBS (for all its modules) support a set of
51
-# predefined parameters. These are:
52
-#
53
-# job_name:
54
-# name: myname # the JOB's name as it will appear at the
55
-# # dashboard (by default is the job_name)
56
-# # JOBs sharing a name are mutually exclusive
57
-# update_every: 1 # the JOB's data collection frequency
58
-# priority: 60000 # the JOB's order on the dashboard
59
-# penalty: yes # the JOB's penalty
60
-# autodetection_retry: 0 # the JOB's re-check interval in seconds
61
-#
62
-# Additionally to the above, gearman also supports the following:
63
-#
64
-# host: localhost # The host running the Gearman server
65
-# port: 4730 # Port of the Gearman server
66
-# tls: no # Whether to use TLS or not
67
-# cert: /path/to/cert # Path to cert if using TLS
68
-# key: /path/to/key # Path to key if using TLS
69
-# ----------------------------------------------------------------------
70
-# AUTO-DETECTION JOB
71
-
72
-localhost:
73
- name : 'local'
74
- host : 'localhost'
75
- port : 4730
\ No newline at end of file
src/collectors/python.d.plugin/gearman/integrations/gearman.md
deleted
-243
@@ -1,243 +0,0 @@
1
-<!--startmeta
2
-custom_edit_url: "https://github.com/netdata/netdata/edit/master/src/collectors/python.d.plugin/gearman/README.md"
3
-meta_yaml: "https://github.com/netdata/netdata/edit/master/src/collectors/python.d.plugin/gearman/metadata.yaml"
4
-sidebar_label: "Gearman"
5
-learn_status: "Published"
6
-learn_rel_path: "Collecting Metrics/Distributed Computing Systems"
7
-most_popular: False
8
-message: "DO NOT EDIT THIS FILE DIRECTLY, IT IS GENERATED BY THE COLLECTOR'S metadata.yaml FILE"
9
-endmeta-->
10
-
11
-# Gearman
12
-
13
-
14
-<img src="https://netdata.cloud/img/gearman.png" width="150"/>
15
-
16
-
17
-Plugin: python.d.plugin
18
-Module: gearman
19
-
20
-<img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" />
21
-
22
-## Overview
23
-
24
-Monitor Gearman metrics for proficient system task distribution. Track job counts, worker statuses, and queue lengths for effective distributed task management.
25
-
26
-This collector connects to a Gearman instance via either TCP or unix socket.
27
-
28
-This collector is supported on all platforms.
29
-
30
-This collector supports collecting metrics from multiple instances of this integration, including remote instances.
31
-
32
-
33
-### Default Behavior
34
-
35
-#### Auto-Detection
36
-
37
-When no configuration file is found, the collector tries to connect to TCP/IP socket: localhost:4730.
38
-
39
-#### Limits
40
-
41
-The default configuration for this integration does not impose any limits on data collection.
42
-
43
-#### Performance Impact
44
-
45
-The default configuration for this integration is not expected to impose a significant performance impact on the system.
46
-
47
-
48
-## Metrics
49
-
50
-Metrics grouped by *scope*.
51
-
52
-The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.
53
-
54
-
55
-
56
-### Per Gearman instance
57
-
58
-These metrics refer to the entire monitored application.
59
-
60
-This scope has no labels.
61
-
62
-Metrics:
63
-
64
-| Metric | Dimensions | Unit |
65
-|:------|:----------|:----|
66
-| gearman.total_jobs | Pending, Running | Jobs |
67
-
68
-### Per gearman job
69
-
70
-Metrics related to Gearman jobs. Each job produces its own set of the following metrics.
71
-
72
-This scope has no labels.
73
-
74
-Metrics:
75
-
76
-| Metric | Dimensions | Unit |
77
-|:------|:----------|:----|
78
-| gearman.single_job | Pending, Idle, Runnning | Jobs |
79
-
80
-
81
-
82
-## Alerts
83
-
84
-
85
-The following alerts are available:
86
-
87
-| Alert name | On metric | Description |
88
-|:------------|:----------|:------------|
89
-| [ gearman_workers_queued ](https://github.com/netdata/netdata/blob/master/src/health/health.d/gearman.conf) | gearman.single_job | average number of queued jobs over the last 10 minutes |
90
-
91
-
92
-## Setup
93
-
94
-### Prerequisites
95
-
96
-#### Socket permissions
97
-
98
-The gearman UNIX socket should have read permission for user netdata.
99
-
100
-
101
-### Configuration
102
-
103
-#### File
104
-
105
-The configuration file name for this integration is `python.d/gearman.conf`.
106
-
107
-
108
-You can edit the configuration file using the `edit-config` script from the
109
-Netdata [config directory](/docs/netdata-agent/configuration/README.md#the-netdata-config-directory).
110
-
111
-```bash
112
-cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
113
-sudo ./edit-config python.d/gearman.conf
114
-```
115
-#### Options
116
-
117
-There are 2 sections:
118
-
119
-* Global variables
120
-* One or more JOBS that can define multiple different instances to monitor.
121
-
122
-The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
123
-
124
-Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
125
-
126
-Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
127
-
128
-
129
-<details open><summary>Config options</summary>
130
-
131
-| Name | Description | Default | Required |
132
-|:----|:-----------|:-------|:--------:|
133
-| update_every | Sets the default data collection frequency. | 5 | no |
134
-| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |
135
-| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |
136
-| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |
137
-| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | no |
138
-| host | URL or IP where gearman is running. | localhost | no |
139
-| port | Port of URL or IP where gearman is running. | 4730 | no |
140
-| tls | Use tls to connect to gearman. | false | no |
141
-| cert | Provide a certificate file if needed to connect to a TLS gearman instance. | | no |
142
-| key | Provide a key file if needed to connect to a TLS gearman instance. | | no |
143
-
144
-</details>
145
-
146
-#### Examples
147
-
148
-##### Local gearman service
149
-
150
-A basic host and port gearman configuration for localhost.
151
-
152
-```yaml
153
-localhost:
154
- name: 'local'
155
- host: 'localhost'
156
- port: 4730
157
-
158
-```
159
-##### Multi-instance
160
-
161
-> **Note**: When you define multiple jobs, their names must be unique.
162
-
163
-Collecting metrics from local and remote instances.
164
-
165
-
166
-<details open><summary>Config</summary>
167
-
168
-```yaml
169
-localhost:
170
- name: 'local'
171
- host: 'localhost'
172
- port: 4730
173
-
174
-remote:
175
- name: 'remote'
176
- host: '192.0.2.1'
177
- port: 4730
178
-
179
-```
180
-</details>
181
-
182
-
183
-
184
-## Troubleshooting
185
-
186
-### Debug Mode
187
-
188
-To troubleshoot issues with the `gearman` collector, run the `python.d.plugin` with the debug option enabled. The output
189
-should give you clues as to why the collector isn't working.
190
-
191
-- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on
192
- your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.
193
-
194
- ```bash
195
- cd /usr/libexec/netdata/plugins.d/
196
- ```
197
-
198
-- Switch to the `netdata` user.
199
-
200
- ```bash
201
- sudo -u netdata -s
202
- ```
203
-
204
-- Run the `python.d.plugin` to debug the collector:
205
-
206
- ```bash
207
- ./python.d.plugin gearman debug trace
208
- ```
209
-
210
-### Getting Logs
211
-
212
-If you're encountering problems with the `gearman` collector, follow these steps to retrieve logs and identify potential issues:
213
-
214
-- **Run the command** specific to your system (systemd, non-systemd, or Docker container).
215
-- **Examine the output** for any warnings or error messages that might indicate issues. These messages should provide clues about the root cause of the problem.
216
-
217
-#### System with systemd
218
-
219
-Use the following command to view logs generated since the last Netdata service restart:
220
-
221
-```bash
222
-journalctl _SYSTEMD_INVOCATION_ID="$(systemctl show --value --property=InvocationID netdata)" --namespace=netdata --grep gearman
223
-```
224
-
225
-#### System without systemd
226
-
227
-Locate the collector log file, typically at `/var/log/netdata/collector.log`, and use `grep` to filter for collector's name:
228
-
229
-```bash
230
-grep gearman /var/log/netdata/collector.log
231
-```
232
-
233
-**Note**: This method shows logs from all restarts. Focus on the **latest entries** for troubleshooting current issues.
234
-
235
-#### Docker Container
236
-
237
-If your Netdata runs in a Docker container named "netdata" (replace if different), use this command:
238
-
239
-```bash
240
-docker logs netdata 2>&1 | grep gearman
241
-```
242
-
243
-
src/collectors/python.d.plugin/gearman/metadata.yaml
deleted
-168
@@ -1,168 +0,0 @@
1
-plugin_name: python.d.plugin
2
-modules:
3
- - meta:
4
- plugin_name: python.d.plugin
5
- module_name: gearman
6
- monitored_instance:
7
- name: Gearman
8
- link: "http://gearman.org/"
9
- categories:
10
- - data-collection.distributed-computing-systems
11
- icon_filename: "gearman.png"
12
- related_resources:
13
- integrations:
14
- list: []
15
- info_provided_to_referring_integrations:
16
- description: ""
17
- keywords:
18
- - gearman
19
- - gearman job server
20
- most_popular: false
21
- overview:
22
- data_collection:
23
- metrics_description: "Monitor Gearman metrics for proficient system task distribution. Track job counts, worker statuses, and queue lengths for effective distributed task management."
24
- method_description: "This collector connects to a Gearman instance via either TCP or unix socket."
25
- supported_platforms:
26
- include: []
27
- exclude: []
28
- multi_instance: true
29
- additional_permissions:
30
- description: ""
31
- default_behavior:
32
- auto_detection:
33
- description: "When no configuration file is found, the collector tries to connect to TCP/IP socket: localhost:4730."
34
- limits:
35
- description: ""
36
- performance_impact:
37
- description: ""
38
- setup:
39
- prerequisites:
40
- list:
41
- - title: "Socket permissions"
42
- description: The gearman UNIX socket should have read permission for user netdata.
43
- configuration:
44
- file:
45
- name: python.d/gearman.conf
46
- options:
47
- description: |
48
- There are 2 sections:
49
-
50
- * Global variables
51
- * One or more JOBS that can define multiple different instances to monitor.
52
-
53
- The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
54
-
55
- Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
56
-
57
- Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
58
- folding:
59
- title: "Config options"
60
- enabled: true
61
- list:
62
- - name: update_every
63
- description: Sets the default data collection frequency.
64
- default_value: 5
65
- required: false
66
- - name: priority
67
- description: Controls the order of charts at the netdata dashboard.
68
- default_value: 60000
69
- required: false
70
- - name: autodetection_retry
71
- description: Sets the job re-check interval in seconds.
72
- default_value: 0
73
- required: false
74
- - name: penalty
75
- description: Indicates whether to apply penalty to update_every in case of failures.
76
- default_value: yes
77
- required: false
78
- - name: name
79
- description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
80
- default_value: ""
81
- required: false
82
- - name: host
83
- description: URL or IP where gearman is running.
84
- default_value: "localhost"
85
- required: false
86
- - name: port
87
- description: Port of URL or IP where gearman is running.
88
- default_value: "4730"
89
- required: false
90
- - name: tls
91
- description: Use tls to connect to gearman.
92
- default_value: "false"
93
- required: false
94
- - name: cert
95
- description: Provide a certificate file if needed to connect to a TLS gearman instance.
96
- default_value: ""
97
- required: false
98
- - name: key
99
- description: Provide a key file if needed to connect to a TLS gearman instance.
100
- default_value: ""
101
- required: false
102
- examples:
103
- folding:
104
- enabled: true
105
- title: "Config"
106
- list:
107
- - name: Local gearman service
108
- description: A basic host and port gearman configuration for localhost.
109
- folding:
110
- enabled: false
111
- config: |
112
- localhost:
113
- name: 'local'
114
- host: 'localhost'
115
- port: 4730
116
- - name: Multi-instance
117
- description: |
118
- > **Note**: When you define multiple jobs, their names must be unique.
119
-
120
- Collecting metrics from local and remote instances.
121
- config: |
122
- localhost:
123
- name: 'local'
124
- host: 'localhost'
125
- port: 4730
126
-
127
- remote:
128
- name: 'remote'
129
- host: '192.0.2.1'
130
- port: 4730
131
- troubleshooting:
132
- problems:
133
- list: []
134
- alerts:
135
- - name: gearman_workers_queued
136
- link: https://github.com/netdata/netdata/blob/master/src/health/health.d/gearman.conf
137
- metric: gearman.single_job
138
- info: average number of queued jobs over the last 10 minutes
139
- metrics:
140
- folding:
141
- title: Metrics
142
- enabled: false
143
- description: ""
144
- availability: []
145
- scopes:
146
- - name: global
147
- description: "These metrics refer to the entire monitored application."
148
- labels: []
149
- metrics:
150
- - name: gearman.total_jobs
151
- description: Total Jobs
152
- unit: "Jobs"
153
- chart_type: line
154
- dimensions:
155
- - name: Pending
156
- - name: Running
157
- - name: gearman job
158
- description: "Metrics related to Gearman jobs. Each job produces its own set of the following metrics."
159
- labels: []
160
- metrics:
161
- - name: gearman.single_job
162
- description: "{job_name}"
163
- unit: "Jobs"
164
- chart_type: stacked
165
- dimensions:
166
- - name: Pending
167
- - name: Idle
168
- - name: Runnning