@cryptotaxi247 / netdata-1 / commits / 5d0ce4c21

remove python.d/uwsgi (#18325)

Ilya Mashchenko committed Aug 13, 2024 at 19:53 UTC 5d0ce4c21b3e241968072b3371f6f439bc999617
6 files changed -725
CMakeLists.txt
-2
@@ -2793,7 +2793,6 @@ install(FILES
2793 src/collectors/python.d.plugin/spigotmc/spigotmc.conf
2794 src/collectors/python.d.plugin/tor/tor.conf
2795 src/collectors/python.d.plugin/traefik/traefik.conf
2796 - src/collectors/python.d.plugin/uwsgi/uwsgi.conf
2796 src/collectors/python.d.plugin/varnish/varnish.conf
2797 src/collectors/python.d.plugin/w1sensor/w1sensor.conf
2798 src/collectors/python.d.plugin/zscores/zscores.conf
@@ -2819,7 +2818,6 @@ install(FILES
2818 src/collectors/python.d.plugin/spigotmc/spigotmc.chart.py
2819 src/collectors/python.d.plugin/tor/tor.chart.py
2820 src/collectors/python.d.plugin/traefik/traefik.chart.py
2822 - src/collectors/python.d.plugin/uwsgi/uwsgi.chart.py
2821 src/collectors/python.d.plugin/varnish/varnish.chart.py
2822 src/collectors/python.d.plugin/w1sensor/w1sensor.chart.py
2823 src/collectors/python.d.plugin/zscores/zscores.chart.py
src/collectors/python.d.plugin/uwsgi/README.md deleted
-1
@@ -1 +0,0 @@
1 -integrations/uwsgi.md
\ No newline at end of file
src/collectors/python.d.plugin/uwsgi/integrations/uwsgi.md deleted
-252
@@ -1,252 +0,0 @@
1 -<!--startmeta
2 -custom_edit_url: "https://github.com/netdata/netdata/edit/master/src/collectors/python.d.plugin/uwsgi/README.md"
3 -meta_yaml: "https://github.com/netdata/netdata/edit/master/src/collectors/python.d.plugin/uwsgi/metadata.yaml"
4 -sidebar_label: "uWSGI"
5 -learn_status: "Published"
6 -learn_rel_path: "Collecting Metrics/Web Servers and Web Proxies"
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 -# uWSGI
12 -
13 -
14 -<img src="https://netdata.cloud/img/uwsgi.svg" width="150"/>
15 -
16 -
17 -Plugin: python.d.plugin
18 -Module: uwsgi
19 -
20 -<img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" />
21 -
22 -## Overview
23 -
24 -This collector monitors uWSGI metrics about requests, workers, memory and more.
25 -
26 -It collects every metric exposed from the stats server of uWSGI, either from the `stats.socket` or from the web server's TCP/IP 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 -This collector will auto-detect uWSGI instances deployed on the local host, running on port 1717, or exposing stats on socket `tmp/stats.socket`.
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 uWSGI 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 -| uwsgi.requests | a dimension per worker | requests/s |
67 -| uwsgi.tx | a dimension per worker | KiB/s |
68 -| uwsgi.avg_rt | a dimension per worker | milliseconds |
69 -| uwsgi.memory_rss | a dimension per worker | MiB |
70 -| uwsgi.memory_vsz | a dimension per worker | MiB |
71 -| uwsgi.exceptions | exceptions | exceptions |
72 -| uwsgi.harakiris | harakiris | harakiris |
73 -| uwsgi.respawns | respawns | respawns |
74 -
75 -
76 -
77 -## Alerts
78 -
79 -There are no alerts configured by default for this integration.
80 -
81 -
82 -## Setup
83 -
84 -### Prerequisites
85 -
86 -#### Enable the uWSGI Stats server
87 -
88 -Make sure that you uWSGI exposes it's metrics via a Stats server.
89 -
90 -Source: https://uwsgi-docs.readthedocs.io/en/latest/StatsServer.html
91 -
92 -
93 -
94 -### Configuration
95 -
96 -#### File
97 -
98 -The configuration file name for this integration is `python.d/uwsgi.conf`.
99 -
100 -
101 -You can edit the configuration file using the `edit-config` script from the
102 -Netdata [config directory](/docs/netdata-agent/configuration/README.md#the-netdata-config-directory).
103 -
104 -```bash
105 -cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
106 -sudo ./edit-config python.d/uwsgi.conf
107 -```
108 -#### Options
109 -
110 -There are 2 sections:
111 -
112 -* Global variables
113 -* One or more JOBS that can define multiple different instances to monitor.
114 -
115 -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.
116 -
117 -Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
118 -
119 -Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
120 -
121 -
122 -<details open><summary>Config options</summary>
123 -
124 -| Name | Description | Default | Required |
125 -|:----|:-----------|:-------|:--------:|
126 -| update_every | Sets the default data collection frequency. | 5 | no |
127 -| priority | Controls the order of charts at the netdata dashboard. | 60000 | no |
128 -| autodetection_retry | Sets the job re-check interval in seconds. | 0 | no |
129 -| penalty | Indicates whether to apply penalty to update_every in case of failures. | yes | no |
130 -| name | The JOB's name as it will appear at the dashboard (by default is the job_name) | job_name | no |
131 -| socket | The 'path/to/uwsgistats.sock' | no | no |
132 -| host | The host to connect to | no | no |
133 -| port | The port to connect to | no | no |
134 -
135 -</details>
136 -
137 -#### Examples
138 -
139 -##### Basic (default out-of-the-box)
140 -
141 -A basic example configuration, one job will run at a time. Autodetect mechanism uses it by default. As all JOBs have the same name, only one can run at a time.
142 -
143 -<details open><summary>Config</summary>
144 -
145 -```yaml
146 -socket:
147 - name : 'local'
148 - socket : '/tmp/stats.socket'
149 -
150 -localhost:
151 - name : 'local'
152 - host : 'localhost'
153 - port : 1717
154 -
155 -localipv4:
156 - name : 'local'
157 - host : '127.0.0.1'
158 - port : 1717
159 -
160 -localipv6:
161 - name : 'local'
162 - host : '::1'
163 - port : 1717
164 -
165 -```
166 -</details>
167 -
168 -##### Multi-instance
169 -
170 -> **Note**: When you define multiple jobs, their names must be unique.
171 -
172 -Collecting metrics from local and remote instances.
173 -
174 -
175 -<details open><summary>Config</summary>
176 -
177 -```yaml
178 -local:
179 - name : 'local'
180 - host : 'localhost'
181 - port : 1717
182 -
183 -remote:
184 - name : 'remote'
185 - host : '192.0.2.1'
186 - port : 1717
187 -
188 -```
189 -</details>
190 -
191 -
192 -
193 -## Troubleshooting
194 -
195 -### Debug Mode
196 -
197 -To troubleshoot issues with the `uwsgi` collector, run the `python.d.plugin` with the debug option enabled. The output
198 -should give you clues as to why the collector isn't working.
199 -
200 -- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on
201 - your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.
202 -
203 - ```bash
204 - cd /usr/libexec/netdata/plugins.d/
205 - ```
206 -
207 -- Switch to the `netdata` user.
208 -
209 - ```bash
210 - sudo -u netdata -s
211 - ```
212 -
213 -- Run the `python.d.plugin` to debug the collector:
214 -
215 - ```bash
216 - ./python.d.plugin uwsgi debug trace
217 - ```
218 -
219 -### Getting Logs
220 -
221 -If you're encountering problems with the `uwsgi` collector, follow these steps to retrieve logs and identify potential issues:
222 -
223 -- **Run the command** specific to your system (systemd, non-systemd, or Docker container).
224 -- **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.
225 -
226 -#### System with systemd
227 -
228 -Use the following command to view logs generated since the last Netdata service restart:
229 -
230 -```bash
231 -journalctl _SYSTEMD_INVOCATION_ID="$(systemctl show --value --property=InvocationID netdata)" --namespace=netdata --grep uwsgi
232 -```
233 -
234 -#### System without systemd
235 -
236 -Locate the collector log file, typically at `/var/log/netdata/collector.log`, and use `grep` to filter for collector's name:
237 -
238 -```bash
239 -grep uwsgi /var/log/netdata/collector.log
240 -```
241 -
242 -**Note**: This method shows logs from all restarts. Focus on the **latest entries** for troubleshooting current issues.
243 -
244 -#### Docker Container
245 -
246 -If your Netdata runs in a Docker container named "netdata" (replace if different), use this command:
247 -
248 -```bash
249 -docker logs netdata 2>&1 | grep uwsgi
250 -```
251 -
252 -
src/collectors/python.d.plugin/uwsgi/metadata.yaml deleted
-201
@@ -1,201 +0,0 @@
1 -plugin_name: python.d.plugin
2 -modules:
3 - - meta:
4 - plugin_name: python.d.plugin
5 - module_name: uwsgi
6 - monitored_instance:
7 - name: uWSGI
8 - link: "https://github.com/unbit/uwsgi/tree/2.0.21"
9 - categories:
10 - - data-collection.web-servers-and-web-proxies
11 - icon_filename: "uwsgi.svg"
12 - related_resources:
13 - integrations:
14 - list: []
15 - info_provided_to_referring_integrations:
16 - description: ""
17 - keywords:
18 - - application server
19 - - python
20 - - web applications
21 - most_popular: false
22 - overview:
23 - data_collection:
24 - metrics_description: "This collector monitors uWSGI metrics about requests, workers, memory and more."
25 - method_description: "It collects every metric exposed from the stats server of uWSGI, either from the `stats.socket` or from the web server's TCP/IP socket."
26 - supported_platforms:
27 - include: []
28 - exclude: []
29 - multi_instance: true
30 - additional_permissions:
31 - description: ""
32 - default_behavior:
33 - auto_detection:
34 - description: "This collector will auto-detect uWSGI instances deployed on the local host, running on port 1717, or exposing stats on socket `tmp/stats.socket`."
35 - limits:
36 - description: ""
37 - performance_impact:
38 - description: ""
39 - setup:
40 - prerequisites:
41 - list:
42 - - title: Enable the uWSGI Stats server
43 - description: |
44 - Make sure that you uWSGI exposes it's metrics via a Stats server.
45 -
46 - Source: https://uwsgi-docs.readthedocs.io/en/latest/StatsServer.html
47 - configuration:
48 - file:
49 - name: "python.d/uwsgi.conf"
50 - options:
51 - description: |
52 - There are 2 sections:
53 -
54 - * Global variables
55 - * One or more JOBS that can define multiple different instances to monitor.
56 -
57 - 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.
58 -
59 - Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
60 -
61 - Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
62 - folding:
63 - title: "Config options"
64 - enabled: true
65 - list:
66 - - name: update_every
67 - description: Sets the default data collection frequency.
68 - default_value: 5
69 - required: false
70 - - name: priority
71 - description: Controls the order of charts at the netdata dashboard.
72 - default_value: 60000
73 - required: false
74 - - name: autodetection_retry
75 - description: Sets the job re-check interval in seconds.
76 - default_value: 0
77 - required: false
78 - - name: penalty
79 - description: Indicates whether to apply penalty to update_every in case of failures.
80 - default_value: yes
81 - required: false
82 - - name: name
83 - description: The JOB's name as it will appear at the dashboard (by default is the job_name)
84 - default_value: job_name
85 - required: false
86 - - name: socket
87 - description: The 'path/to/uwsgistats.sock'
88 - default_value: no
89 - required: false
90 - - name: host
91 - description: The host to connect to
92 - default_value: no
93 - required: false
94 - - name: port
95 - description: The port to connect to
96 - default_value: no
97 - required: false
98 - examples:
99 - folding:
100 - enabled: true
101 - title: "Config"
102 - list:
103 - - name: Basic (default out-of-the-box)
104 - description: A basic example configuration, one job will run at a time. Autodetect mechanism uses it by default. As all JOBs have the same name, only one can run at a time.
105 - config: |
106 - socket:
107 - name : 'local'
108 - socket : '/tmp/stats.socket'
109 -
110 - localhost:
111 - name : 'local'
112 - host : 'localhost'
113 - port : 1717
114 -
115 - localipv4:
116 - name : 'local'
117 - host : '127.0.0.1'
118 - port : 1717
119 -
120 - localipv6:
121 - name : 'local'
122 - host : '::1'
123 - port : 1717
124 - - name: Multi-instance
125 - description: |
126 - > **Note**: When you define multiple jobs, their names must be unique.
127 -
128 - Collecting metrics from local and remote instances.
129 - config: |
130 - local:
131 - name : 'local'
132 - host : 'localhost'
133 - port : 1717
134 -
135 - remote:
136 - name : 'remote'
137 - host : '192.0.2.1'
138 - port : 1717
139 - troubleshooting:
140 - problems:
141 - list: []
142 - alerts: []
143 - metrics:
144 - folding:
145 - title: Metrics
146 - enabled: false
147 - description: ""
148 - availability: []
149 - scopes:
150 - - name: global
151 - description: "These metrics refer to the entire monitored application."
152 - labels: []
153 - metrics:
154 - - name: uwsgi.requests
155 - description: Requests
156 - unit: "requests/s"
157 - chart_type: stacked
158 - dimensions:
159 - - name: a dimension per worker
160 - - name: uwsgi.tx
161 - description: Transmitted data
162 - unit: "KiB/s"
163 - chart_type: stacked
164 - dimensions:
165 - - name: a dimension per worker
166 - - name: uwsgi.avg_rt
167 - description: Average request time
168 - unit: "milliseconds"
169 - chart_type: line
170 - dimensions:
171 - - name: a dimension per worker
172 - - name: uwsgi.memory_rss
173 - description: RSS (Resident Set Size)
174 - unit: "MiB"
175 - chart_type: stacked
176 - dimensions:
177 - - name: a dimension per worker
178 - - name: uwsgi.memory_vsz
179 - description: VSZ (Virtual Memory Size)
180 - unit: "MiB"
181 - chart_type: stacked
182 - dimensions:
183 - - name: a dimension per worker
184 - - name: uwsgi.exceptions
185 - description: Exceptions
186 - unit: "exceptions"
187 - chart_type: line
188 - dimensions:
189 - - name: exceptions
190 - - name: uwsgi.harakiris
191 - description: Harakiris
192 - unit: "harakiris"
193 - chart_type: line
194 - dimensions:
195 - - name: harakiris
196 - - name: uwsgi.respawns
197 - description: Respawns
198 - unit: "respawns"
199 - chart_type: line
200 - dimensions:
201 - - name: respawns
src/collectors/python.d.plugin/uwsgi/uwsgi.chart.py deleted
-177
@@ -1,177 +0,0 @@
1 -# -*- coding: utf-8 -*-
2 -# Description: uwsgi netdata python.d module
3 -# Author: Robbert Segeren (robbert-ef)
4 -# SPDX-License-Identifier: GPL-3.0-or-later
5 -
6 -import json
7 -from copy import deepcopy
8 -
9 -from bases.FrameworkServices.SocketService import SocketService
10 -
11 -ORDER = [
12 - 'requests',
13 - 'tx',
14 - 'avg_rt',
15 - 'memory_rss',
16 - 'memory_vsz',
17 - 'exceptions',
18 - 'harakiri',
19 - 'respawn',
20 -]
21 -
22 -DYNAMIC_CHARTS = [
23 - 'requests',
24 - 'tx',
25 - 'avg_rt',
26 - 'memory_rss',
27 - 'memory_vsz',
28 -]
29 -
30 -# NOTE: lines are created dynamically in `check()` method
31 -CHARTS = {
32 - 'requests': {
33 - 'options': [None, 'Requests', 'requests/s', 'requests', 'uwsgi.requests', 'stacked'],
34 - 'lines': [
35 - ['requests', 'requests', 'incremental']
36 - ]
37 - },
38 - 'tx': {
39 - 'options': [None, 'Transmitted data', 'KiB/s', 'requests', 'uwsgi.tx', 'stacked'],
40 - 'lines': [
41 - ['tx', 'tx', 'incremental']
42 - ]
43 - },
44 - 'avg_rt': {
45 - 'options': [None, 'Average request time', 'milliseconds', 'requests', 'uwsgi.avg_rt', 'line'],
46 - 'lines': [
47 - ['avg_rt', 'avg_rt', 'absolute']
48 - ]
49 - },
50 - 'memory_rss': {
51 - 'options': [None, 'RSS (Resident Set Size)', 'MiB', 'memory', 'uwsgi.memory_rss', 'stacked'],
52 - 'lines': [
53 - ['memory_rss', 'memory_rss', 'absolute', 1, 1 << 20]
54 - ]
55 - },
56 - 'memory_vsz': {
57 - 'options': [None, 'VSZ (Virtual Memory Size)', 'MiB', 'memory', 'uwsgi.memory_vsz', 'stacked'],
58 - 'lines': [
59 - ['memory_vsz', 'memory_vsz', 'absolute', 1, 1 << 20]
60 - ]
61 - },
62 - 'exceptions': {
63 - 'options': [None, 'Exceptions', 'exceptions', 'exceptions', 'uwsgi.exceptions', 'line'],
64 - 'lines': [
65 - ['exceptions', 'exceptions', 'incremental']
66 - ]
67 - },
68 - 'harakiri': {
69 - 'options': [None, 'Harakiris', 'harakiris', 'harakiris', 'uwsgi.harakiris', 'line'],
70 - 'lines': [
71 - ['harakiri_count', 'harakiris', 'incremental']
72 - ]
73 - },
74 - 'respawn': {
75 - 'options': [None, 'Respawns', 'respawns', 'respawns', 'uwsgi.respawns', 'line'],
76 - 'lines': [
77 - ['respawn_count', 'respawns', 'incremental']
78 - ]
79 - },
80 -}
81 -
82 -
83 -class Service(SocketService):
84 - def __init__(self, configuration=None, name=None):
85 - super(Service, self).__init__(configuration=configuration, name=name)
86 - self.order = ORDER
87 - self.definitions = deepcopy(CHARTS)
88 - self.url = self.configuration.get('host', 'localhost')
89 - self.port = self.configuration.get('port', 1717)
90 - # Clear dynamic dimensions, these are added during `_get_data()` to allow adding workers at run-time
91 - for chart in DYNAMIC_CHARTS:
92 - self.definitions[chart]['lines'] = []
93 - self.last_result = {}
94 - self.workers = []
95 -
96 - def read_data(self):
97 - """
98 - Read data from socket and parse as JSON.
99 - :return: (dict) stats
100 - """
101 - raw_data = self._get_raw_data()
102 - if not raw_data:
103 - return None
104 - try:
105 - return json.loads(raw_data)
106 - except ValueError as err:
107 - self.error(err)
108 - return None
109 -
110 - def check(self):
111 - """
112 - Parse configuration and check if we can read data.
113 - :return: boolean
114 - """
115 - self._parse_config()
116 - return bool(self.read_data())
117 -
118 - def add_worker_dimensions(self, key):
119 - """
120 - Helper to add dimensions for a worker.
121 - :param key: (int or str) worker identifier
122 - :return:
123 - """
124 - for chart in DYNAMIC_CHARTS:
125 - for line in CHARTS[chart]['lines']:
126 - dimension_id = '{}_{}'.format(line[0], key)
127 - dimension_name = str(key)
128 -
129 - dimension = [dimension_id, dimension_name] + line[2:]
130 - self.charts[chart].add_dimension(dimension)
131 -
132 - @staticmethod
133 - def _check_raw_data(data):
134 - # The server will close the connection when it's done sending
135 - # data, so just keep looping until that happens.
136 - return False
137 -
138 - def _get_data(self):
139 - """
140 - Read data from socket
141 - :return: dict
142 - """
143 - stats = self.read_data()
144 - if not stats:
145 - return None
146 -
147 - result = {
148 - 'exceptions': 0,
149 - 'harakiri_count': 0,
150 - 'respawn_count': 0,
151 - }
152 -
153 - for worker in stats['workers']:
154 - key = worker['pid']
155 -
156 - # Add dimensions for new workers
157 - if key not in self.workers:
158 - self.add_worker_dimensions(key)
159 - self.workers.append(key)
160 -
161 - result['requests_{}'.format(key)] = worker['requests']
162 - result['tx_{}'.format(key)] = worker['tx']
163 - result['avg_rt_{}'.format(key)] = worker['avg_rt']
164 -
165 - # avg_rt is not reset by uwsgi, so reset here
166 - if self.last_result.get('requests_{}'.format(key)) == worker['requests']:
167 - result['avg_rt_{}'.format(key)] = 0
168 -
169 - result['memory_rss_{}'.format(key)] = worker['rss']
170 - result['memory_vsz_{}'.format(key)] = worker['vsz']
171 -
172 - result['exceptions'] += worker['exceptions']
173 - result['harakiri_count'] += worker['harakiri_count']
174 - result['respawn_count'] += worker['respawn_count']
175 -
176 - self.last_result = result
177 - return result
src/collectors/python.d.plugin/uwsgi/uwsgi.conf deleted
-92
@@ -1,92 +0,0 @@
1 -# netdata python.d.plugin configuration for uwsgi
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, uwsgi also supports the following:
63 -#
64 -# socket: 'path/to/uwsgistats.sock'
65 -#
66 -# or
67 -# host: 'IP or HOSTNAME' # the host to connect to
68 -# port: PORT # the port to connect to
69 -#
70 -# ----------------------------------------------------------------------
71 -# AUTO-DETECTION JOBS
72 -# only one of them will run (they have the same name)
73 -#
74 -
75 -socket:
76 - name : 'local'
77 - socket : '/tmp/stats.socket'
78 -
79 -localhost:
80 - name : 'local'
81 - host : 'localhost'
82 - port : 1717
83 -
84 -localipv4:
85 - name : 'local'
86 - host : '127.0.0.1'
87 - port : 1717
88 -
89 -localipv6:
90 - name : 'local'
91 - host : '::1'
92 - port : 1717