Fix metadata validation for ibm.d, network-viewer, and netdata-otel (#21756)
- Add missing default_behavior section to ibm.d docgen template - Fix ibm.d module categories to use valid category IDs - Regenerate all ibm.d module metadata (as400, db2, mq, websphere) - Fix network-viewer supported_platforms format and add missing function fields - Fix netdata-otel supported_platforms format - Add detailed error logging to gen_integrations.py validation
Costa Tsaousis committed
Feb 13, 2026 at 00:41 UTC
d89a841f6e42e8f71ede50954e722ac9c7235aef
24 files changed
+855
-494
integrations/gen_integrations.py
+16
-16
@@ -267,8 +267,8 @@ def load_categories():
267
268
try:
269
CATEGORY_VALIDATOR.validate(categories)
270
- except ValidationError:
271
- warn(f'Failed to validate {CATEGORIES_FILE} against the schema.', CATEGORIES_FILE)
270
+ except ValidationError as e:
271
+ warn(f'Failed to validate {CATEGORIES_FILE} against the schema: {e.message} (path: {"/".join(str(p) for p in e.absolute_path)})', CATEGORIES_FILE)
272
sys.exit(1)
273
274
return categories
@@ -288,8 +288,8 @@ def load_collectors():
288
289
try:
290
COLLECTOR_VALIDATOR.validate(data)
291
- except ValidationError:
292
- warn(f'Failed to validate {path} against the schema.', path)
291
+ except ValidationError as e:
292
+ warn(f'Failed to validate {path} against the schema: {e.message} (path: {"/".join(str(p) for p in e.absolute_path)})', path)
293
continue
294
295
for idx, item in enumerate(data['modules']):
@@ -313,8 +313,8 @@ def _load_deploy_file(file, repo):
313
314
try:
315
DEPLOY_VALIDATOR.validate(data)
316
- except ValidationError:
317
- warn(f'Failed to validate {file} against the schema.', file)
316
+ except ValidationError as e:
317
+ warn(f'Failed to validate {file} against the schema: {e.message} (path: {"/".join(str(p) for p in e.absolute_path)})', file)
318
return []
319
320
for idx, item in enumerate(data):
@@ -349,8 +349,8 @@ def _load_exporter_file(file, repo):
349
350
try:
351
EXPORTER_VALIDATOR.validate(data)
352
- except ValidationError:
353
- warn(f'Failed to validate {file} against the schema.', file)
352
+ except ValidationError as e:
353
+ warn(f'Failed to validate {file} against the schema: {e.message} (path: {"/".join(str(p) for p in e.absolute_path)})', file)
354
return []
355
356
if 'id' in data:
@@ -395,8 +395,8 @@ def _load_agent_notification_file(file, repo):
395
396
try:
397
AGENT_NOTIFICATION_VALIDATOR.validate(data)
398
- except ValidationError:
399
- warn(f'Failed to validate {file} against the schema.', file)
398
+ except ValidationError as e:
399
+ warn(f'Failed to validate {file} against the schema: {e.message} (path: {"/".join(str(p) for p in e.absolute_path)})', file)
400
return []
401
402
if 'id' in data:
@@ -441,8 +441,8 @@ def _load_cloud_notification_file(file, repo):
441
442
try:
443
CLOUD_NOTIFICATION_VALIDATOR.validate(data)
444
- except ValidationError:
445
- warn(f'Failed to validate {file} against the schema.', file)
444
+ except ValidationError as e:
445
+ warn(f'Failed to validate {file} against the schema: {e.message} (path: {"/".join(str(p) for p in e.absolute_path)})', file)
446
return []
447
448
if 'id' in data:
@@ -487,8 +487,8 @@ def _load_logs_file(file, repo):
487
488
try:
489
LOGS_VALIDATOR.validate(data)
490
- except ValidationError:
491
- warn(f'Failed to validate {file} against the schema.', file)
490
+ except ValidationError as e:
491
+ warn(f'Failed to validate {file} against the schema: {e.message} (path: {"/".join(str(p) for p in e.absolute_path)})', file)
492
return []
493
494
if 'id' in data:
@@ -533,8 +533,8 @@ def _load_authentication_file(file, repo):
533
534
try:
535
AUTHENTICATION_VALIDATOR.validate(data)
536
- except ValidationError:
537
- warn(f'Failed to validate {file} against the schema.', file)
536
+ except ValidationError as e:
537
+ warn(f'Failed to validate {file} against the schema: {e.message} (path: {"/".join(str(p) for p in e.absolute_path)})', file)
538
return []
539
540
if 'id' in data:
src/collectors/network-viewer.plugin/metadata.yaml
+7
-1
@@ -32,7 +32,7 @@ modules:
32
including TCP and UDP sockets in all states, for both IPv4 and IPv6.
33
supported_platforms:
34
include:
35
- - description: Linux
35
+ - Linux
36
exclude: []
37
multi_instance: false
38
additional_permissions:
@@ -88,3 +88,9 @@ modules:
88
89
Connections are classified as system or container based on network namespace.
90
parameters: []
91
+ returns:
92
+ description: ""
93
+ columns: []
94
+ performance: ""
95
+ security: ""
96
+ availability: ""
src/crates/netdata-otel/otel-plugin/metadata.yaml
+1
-1
@@ -40,7 +40,7 @@ modules:
40
mapping rules. Logs are stored in journal files for querying via the Netdata Logs tab.
41
supported_platforms:
42
include:
43
- - description: Linux
43
+ - Linux
44
exclude: []
45
multi_instance: false
46
additional_permissions:
src/go/plugin/ibm.d/README.md
+472
-296
@@ -1,353 +1,529 @@
1
-# Netdata IBM Monitoring Plugin
2
-
3
-Monitor your IBM infrastructure with Netdata's comprehensive IBM ecosystem plugin, providing real-time metrics for IBM i (AS/400), DB2, IBM MQ, and WebSphere Application Server.
4
-
5
-## What Can Be Monitored
6
-
7
-### IBM i (AS/400)
8
-- CPU utilization and configuration
9
-- Memory pools and storage
10
-- Disk I/O and health status
11
-- Active jobs and subsystems
12
-- Job queues and message queues
13
-- Network interfaces and connections
14
-
15
-For a detailed comparison with other IBM i monitoring solutions, see [IBM i Monitoring Solutions Comparison](modules/as400/IBMi-MONITORING.md).
16
-
17
-### IBM DB2
18
-- Database connections and locks
19
-- Buffer pool efficiency
20
-- Tablespace utilization
21
-- Transaction rates
22
-- SQL statement performance
23
-- Memory usage by component
24
-
25
-### IBM MQ
26
-- Queue managers and queue depth
27
-- Channel status and performance
28
-- Message flow rates
29
-- Topic and subscription metrics
30
-- Dead letter queue monitoring
31
-
32
-For a comprehensive comparison with other MQ monitoring solutions, see [IBM MQ Monitoring Solutions Comparison](modules/mq/MQ-MONITORING.md).
33
-
34
-### WebSphere Application Server
35
-- JVM heap and thread pools
36
-- Connection pool statistics
37
-- Servlet response times
38
-- Session management
39
-- PMI (Performance Monitoring Infrastructure) metrics
40
-- Transaction rates and response times
41
-
42
-## Prerequisites
43
-
44
-The IBM monitoring plugin requires specific libraries depending on which systems you want to monitor:
45
-
46
-| System | Required Libraries | Minimum Version |
47
-|--------|-------------------|-----------------|
48
-| IBM i (AS/400) | unixODBC + IBM i Access ODBC Driver | IBM i 7.2+ |
49
-| IBM DB2 | unixODBC + IBM DB2 ODBC Driver | DB2 10.5+ |
50
-
51
-## Installation
52
-
53
-### Using native DEB/RPM packages
54
-
55
-After installing Netdata normally, use your system package manager to
56
-install the `netdata-plugin-ibm` package.
57
-
58
-### Using a local build
59
-
60
-1. Ensure that unixODBC development files are installed (depending on
61
- your platform the required package will usually be either `unixodbc-dev`
62
- or `unixODBC-devel`).
63
-2. Add `--local-build-options "--enable-plugin-ibm"` to the options you
64
- pass to the `kickstart.sh` script for the install.
65
-
66
-### IBM i (AS/400) Monitoring Additional Setup
67
-
68
-1. **Download IBM i Access Client Solutions** from IBM:
69
- - Go to [IBM i Access Client Solutions](https://www.ibm.com/support/pages/ibm-i-access-client-solutions)
70
- - Download the appropriate package for Linux
71
- - Extract the package
72
-
73
-2. **Install the ODBC driver:**
74
- ```bash
75
- # Navigate to the extracted directory
76
- cd /path/to/ibm-iaccess
77
-
78
- # Install the ODBC driver (example for 64-bit)
79
- sudo ./install_acs_64.sh
80
- ```
81
-
82
-3. **Configure ODBC DSN** in `/etc/odbc.ini`:
83
- ```ini
84
- [AS400_PROD]
85
- Description = IBM i Production System
86
- Driver = IBM i Access ODBC Driver
87
- System = your.as400.hostname
88
- UserID = your_username
89
- Password = your_password
90
- Naming = 0
91
- DefaultLibraries = QSYS2,QSYS
92
- Database =
93
- ConnectionType = 0
94
- CommitMode = 2
95
- ExtendedDynamic = 1
96
- DefaultPkgLibrary = QGPL
97
- DefaultPackage = A/DEFAULT(IBM),2,0,1,0,512
98
- AllowDataCompression = 1
99
- LibraryView = 0
100
- AllowUnsupportedChar = 0
101
- ForceTranslation = 0
102
- Trace = 0
103
- ```
104
-
105
-#### IBM DB2 Monitoring Additional Setup
106
-
107
-1. **Download IBM Data Server Driver Package** from IBM:
108
- - Visit [IBM Data Server Driver Downloads](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers)
109
- - Download "IBM Data Server Driver Package (DS Driver)" for Linux
110
- - Choose the appropriate architecture (AMD64/x86-64)
111
-
112
-2. **Install the driver:**
113
- ```bash
114
- # Extract the downloaded file
115
- tar -xzf ibm_data_server_driver_package_linuxx64.tar.gz
116
- cd dsdriver
117
-
118
- # Install
119
- sudo ./installDSDriver
120
- ```
121
-
122
-3. **Configure ODBC DSN** in `/etc/odbc.ini`:
123
- ```ini
124
- [DB2_PROD]
125
- Description = DB2 Production Database
126
- Driver = /opt/ibm/dsdriver/lib/libdb2o.so
127
- Database = SAMPLE
128
- Hostname = your.db2.hostname
129
- Port = 50000
130
- Protocol = TCPIP
131
- UID = your_username
132
- PWD = your_password
133
- ```
1
+# IBM i (AS/400) collector
2
135
-## Configuration
3
+## Overview
4
137
-Configuration files are located in `/etc/netdata/ibm.d/`. Each collector has its own configuration file:
5
+Monitors IBM i (AS/400) systems using SQL services and CL commands to
6
+expose CPU, memory, storage, job, and subsystem activity.
7
139
-### IBM i (AS/400) Configuration
8
+**Dependencies:**
9
+- unixODBC 2.3+ with IBM i Access ODBC driver
10
+- IBM i 7.2 or later with SQL services enabled
11
141
-Edit `/etc/netdata/ibm.d/as400.conf`:
12
+**Required Libraries:**
13
+- libodbc.so (provided by unixODBC)
14
+- IBM i Access Client Solutions
15
143
-```yaml
144
-jobs:
145
- - name: production_as400
146
- dsn: AS400_PROD # ODBC DSN name from /etc/odbc.ini
147
- update_every: 10 # Collection frequency in seconds
148
- collect_active_jobs: yes # Enable job monitoring
149
- active_jobs:
150
- - 123456/QSYS/QSPCJOB # Fully qualified JOB_NUMBER/USER/JOB_NAME
151
- reset_statistics: no # Reset cumulative counters
152
-```
16
+**Collection paths**
17
154
-### IBM DB2 Configuration
18
+The collector executes queries in multiple tracks:
19
156
-Edit `/etc/netdata/ibm.d/db2.conf`:
20
+- **Fast path (5s)**: lightweight system status queries remain sequential on the main plugin thread.
21
+- **Slow path (10s beat)**: heavier queries (per-queue metrics, subsystems, plan cache, etc.) run in a background worker with bounded concurrency.
22
+- **Batch path (≥60s beat)**: optional long-period worker used for expensive aggregate queries such as queue totals. Disabled by default unless queue totals are explicitly enabled.
23
158
-```yaml
159
-jobs:
160
- - name: production_db2
161
- dsn: DB2_PROD # ODBC DSN name
162
- update_every: 10
163
- database: SAMPLE # Database to monitor
164
- collect_tablespaces: yes # Enable tablespace monitoring
165
- collect_bufferpools: yes # Enable buffer pool monitoring
166
- collect_locks: yes # Enable lock monitoring
167
-```
24
+**CPU Collection Methods:**
25
169
-### IBM MQ Configuration
26
+The collector uses a hybrid approach for CPU utilization metrics to handle IBM i 7.4+ where
27
+`AVERAGE_CPU_*` columns were deprecated:
28
171
-Edit `/etc/netdata/ibm.d/mq.conf`:
29
+1. **Primary Method - TOTAL_CPU_TIME**: Uses the monotonic `TOTAL_CPU_TIME` counter from
30
+ `QSYS2.SYSTEM_STATUS()` to calculate CPU utilization via delta-based calculation. This is
31
+ the most accurate method but requires `*JOBCTL` special authority. TOTAL_CPU_TIME is a
32
+ cumulative counter in nanoseconds representing CPU-seconds consumed, naturally in per-core
33
+ scale.
34
173
-```yaml
174
-jobs:
175
- - name: production_mq
176
- hostname: mq.example.com
177
- port: 1414
178
- channel: SYSTEM.DEF.SVRCONN
179
- queue_manager: QM1
180
- username: mqadmin # Optional
181
- password: secret # Optional
182
- update_every: 5
183
- collect_queues: yes
184
- collect_channels: yes
185
- collect_topics: yes
186
-```
35
+2. **Fallback Method - ELAPSED_CPU_USED**: If `*JOBCTL` authority is not available, falls back
36
+ to `ELAPSED_CPU_USED` with automatic reset detection. This method tracks when IBM i statistics
37
+ are reset (either manually or via `reset_statistics` configuration) and re-establishes a
38
+ baseline after detecting resets. The values are already in per-core scale.
39
188
-### WebSphere Configuration
40
+3. **Legacy Method - AVERAGE_CPU_UTILIZATION**: For IBM i versions before 7.4, uses the now-
41
+ deprecated `AVERAGE_CPU_UTILIZATION` column, which IBM reports in the same per-core scale.
42
190
-Edit `/etc/netdata/ibm.d/websphere_pmi.conf`:
43
+The collector automatically selects the appropriate method based on available permissions and
44
+logs which method is being used.
45
192
-```yaml
193
-jobs:
194
- - name: production_was
195
- hostname: was.example.com
196
- port: 9043 # SOAP connector port
197
- username: wasadmin
198
- password: secret
199
- update_every: 10
200
- servlet_url: /wasPerfTool/servlet/perfservlet
201
- cell: Cell01
202
- node: Node01
203
- server: server1
204
-```
46
+**CPU Metric Scale:**
47
206
-## Verifying Your Setup
48
+CPU utilization is reported using the "100% = 1 CPU core" semantic. This means:
49
+- 100% indicates one CPU core is fully utilized
50
+- 400% indicates four CPU cores are fully utilized
51
+- Values are limited to 100% × ConfiguredCPUs, matching the partition's configured capacity
52
208
-### Test ODBC Connectivity
53
+For shared LPARs, the metrics show absolute CPU consumption in per-core scale, not relative to
54
+entitled capacity. For example, a shared LPAR entitled to 0.20 cores can show 150% utilization
55
+when bursting above entitlement.
56
210
-```bash
211
-# List configured DSNs
212
-odbcinst -q -s
57
+**Statistics Reset Behavior:**
58
214
-# Test connection to IBM i
215
-isql -v AS400_PROD username password
59
+The `reset_statistics` configuration option controls whether the collector resets IBM i system
60
+statistics on each query via `SYSTEM_STATUS(RESET_STATISTICS=>'YES')`. When enabled:
61
217
-# Test connection to DB2
218
-isql -v DB2_PROD username password
219
-```
62
+- System-level statistics (CPU, memory pools, etc.) are reset after each collection cycle
63
+- Matches legacy behavior but clears global statistics that other tools may rely on
64
+- The ELAPSED_CPU_USED fallback method will detect and handle these resets automatically
65
+- **Caution**: Enabling this affects all users and applications on the IBM i system
66
221
-### Test the Plugin
67
+Default: `false` (statistics are not reset, using `RESET_STATISTICS=>'NO'`)
68
223
-```bash
224
-# Test specific collector in debug mode
225
-sudo /usr/libexec/netdata/plugins.d/ibm.d.plugin -d -m as400
69
+**Chart Gaps During Baseline Resets:**
70
227
-# Run with dump mode to see collected metrics
228
-script -c 'sudo /usr/libexec/netdata/plugins.d/ibm.d.plugin -d -m as400 --dump=10s --dump-summary 2>&1' /dev/null
229
-```
71
+The `as400.system_activity_cpu_rate` and `as400.system_activity_cpu_utilization` charts rely on
72
+delta calculations. When the collector detects that IBM i reset these statistics—or when it is
73
+still establishing the initial baseline—it intentionally skips a sample instead of emitting a zero
74
+or spike. Netdata renders those skipped samples as small gaps, which is expected behaviour.
75
231
-### Check Netdata Logs
76
+**Cardinality Management:**
77
233
-```bash
234
-# View plugin logs
235
-tail -f /var/log/netdata/error.log | grep ibm.d
78
+To prevent performance issues from excessive metric creation, the collector enforces cardinality
79
+limits on per-instance metrics (disks, subsystems, job queues, message queues, output queues,
80
+active jobs, network interfaces, HTTP servers).
81
237
-# Check collector status in Netdata
238
-curl http://localhost:19999/api/v1/info | jq '.collectors'
239
-```
82
+**How Limits Work:**
83
+- The collector counts instances before collecting metrics
84
+- If count exceeds the configured `max_*` limit, **collection is skipped entirely** for that category
85
+- The collector logs a warning: `"[category] count (X) exceeds limit (Y), skipping collection"`
86
+- No metrics are collected for that category until you adjust the configuration
87
241
-## Troubleshooting
88
+**Configuration Options:**
89
243
-### Common Issues
90
+Use **both** limit and selector options together to manage high-cardinality environments:
91
245
-#### ODBC Driver Not Found
246
-**Error:** `Can't open lib 'IBM i Access ODBC Driver' : file not found`
92
+| Option | Purpose | Default |
93
+|--------|---------|---------|
94
+| `max_disks` | Maximum disk units to monitor | 100 |
95
+| `max_subsystems` | Maximum subsystems to monitor | 100 |
96
+| `max_job_queues` | Maximum job queues to monitor | 100 |
97
+| `max_message_queues` | Maximum message queues to monitor | 100 |
98
+| `max_output_queues` | Maximum output queues to monitor | 100 |
99
+| `active_jobs` | Fully qualified active jobs to monitor (`JOB_NUMBER/USER/JOB_NAME`) | `[]` |
100
+| `collect_disks_matching` | Glob pattern to filter disks (e.g., `"001* 002*"`) | `""` (match all) |
101
+| `collect_subsystems_matching` | Glob pattern to filter subsystems (e.g., `"QINTER QBATCH"`) | `""` (match all) |
102
+| `collect_job_queues_matching` | Glob pattern to filter job queues (e.g., `"QSYS/*"`) | `""` (match all) |
103
248
-**Solution:** Verify driver installation and check `/etc/odbcinst.ini`:
249
-```bash
250
-odbcinst -q -d
251
-```
104
+Optional batch-path controls:
105
253
-#### Connection Refused
254
-**Error:** `SQL30081N A communication error has been detected`
106
+| Option | Purpose | Default |
107
+|--------|---------|---------|
108
+| `batch_path` | Enables the long-period batch worker for aggregate queries | `false` |
109
+| `batch_path_update_every` | Batch worker cadence (minimum 60s, recommend ≥600s in production) | `60s` |
110
+| `batch_path_max_connections` | Maximum concurrent connections for batch queries | `1` |
111
+| `collect_message_queue_totals` | Enables full-scan counting of all message queues and messages | `auto` (off) |
112
+| `collect_job_queue_totals` | Enables aggregate counting of job queues and queued jobs | `auto` (off) |
113
+| `collect_output_queue_totals` | Enables aggregate counting of output queues and spooled files | `auto` (off) |
114
256
-**Solution:**
257
-1. Verify network connectivity: `ping your.ibm.system`
258
-2. Check firewall rules for required ports
259
-3. Verify credentials and system names
115
+> **Warning:** queue totals require scanning IBM i catalog views and can be very expensive on large systems. Leave these options disabled unless aggregate counts are absolutely necessary.
116
261
-#### Missing Libraries
262
-**Error:** `error while loading shared libraries: libodbc.so.2`
117
264
-**Solution:**
265
-```bash
266
-# Find and install missing library
267
-sudo ldconfig -p | grep odbc
268
-sudo apt-get install libodbc2 # or equivalent for your distro
269
-```
118
+**Example Workflow:**
119
+
120
+1. System has 500 disks, collector skips disk metrics (exceeds default limit of 100)
121
+2. Check logs: `"disk count (500) exceeds limit (100), skipping per-disk metrics"`
122
+3. Two options:
123
+ - **Option A**: Increase limit: `max_disks: 500` (collects all 500 disks)
124
+ - **Option B**: Use selector: `collect_disks_matching: "00[1-5]*"` (cherry-pick specific disks)
125
+
126
+**Best Practices:**
127
+- Use selectors to monitor only business-critical objects in large environments
128
+- Set limits based on your Netdata server's capacity (each instance = multiple charts)
129
+- Start with defaults and adjust based on actual usage patterns
130
+
131
+**IBM i 7.2–7.3 Behavior Note (Message Queues):**
132
+
133
+IBM i 7.4 introduced a message-queue table function that returns only the live backlog. On
134
+7.2–7.3 systems we fall back to the `QSYS2.MESSAGE_QUEUE_INFO` view, which includes *all*
135
+recorded messages (even those already processed/cleared from the queue). Aggregations—especially
136
+`MAX(SEVERITY)`—therefore reflect the historical log, not just the outstanding backlog. This
137
+behaviour is inherent to the IBM SQL service and can lead to higher-than-expected max severity
138
+values on pre-7.4 systems.
139
+
140
+Network interface metrics have a fixed internal limit of 50 instances, and HTTP server metrics are capped at 200 instances; these limits are currently not configurable.
141
+
142
+
143
+This collector is part of the [Netdata](https://github.com/netdata/netdata) monitoring solution.
144
+
145
+## Collected metrics
146
+
147
+Metrics grouped by scope.
148
+
149
+The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.
150
+
151
+### Per IBM i (AS/400) instance
152
+
153
+
154
+These metrics refer to the entire monitored IBM i (AS/400) instance.
155
+
156
+This scope has no labels.
157
+
158
+Metrics:
159
+
160
+| Metric | Dimensions | Unit |
161
+|:-------|:-----------|:-----|
162
+| netdata.plugin_ibm.as400_query_latency_fast | count_disks, count_http_servers, count_network_interfaces, detect_ibmi_version_primary, detect_ibmi_version_fallback, disk_instances, disk_instances_enhanced, disk_status, http_server_info, job_info, memory_pools, network_connections, network_interfaces, serial_number, system_name, system_activity, system_model, system_status, temp_storage_named, temp_storage_total, technology_refresh_level, active_job | ms |
163
+| netdata.plugin_ibm.as400_query_latency_slow | analyze_plan_cache, count_subsystems, subsystems, message_queue_aggregates, job_queues, output_queue_info, plan_cache_summary | ms |
164
+| netdata.plugin_ibm.as400_query_latency_batch | message_queue_totals, job_queue_totals, output_queue_totals | ms |
165
+
166
+These metrics refer to the entire monitored IBM i (AS/400) instance.
167
+
168
+This scope has no labels.
169
+
170
+Metrics:
171
+
172
+| Metric | Dimensions | Unit |
173
+|:-------|:-----------|:-----|
174
+| as400.cpu_utilization | utilization | percentage |
175
+| as400.cpu_utilization_entitled | utilization | percentage |
176
+| as400.cpu_configuration | configured | cpus |
177
+| as400.cpu_capacity | capacity | percentage |
178
+| as400.total_jobs | total | jobs |
179
+| as400.active_jobs_by_type | batch, interactive, active | jobs |
180
+| as400.job_queue_length | waiting | jobs |
181
+| as400.main_storage_size | total | bytes |
182
+| as400.temporary_storage | current, maximum | MiB |
183
+| as400.memory_pool_usage | machine, base, interactive, spool | bytes |
184
+| as400.memory_pool_defined | machine, base | bytes |
185
+| as400.memory_pool_reserved | machine, base | bytes |
186
+| as400.memory_pool_threads | machine, base | threads |
187
+| as400.memory_pool_max_threads | machine, base | threads |
188
+| as400.disk_busy_average | busy | percentage |
189
+| as400.system_asp_usage | used | percentage |
190
+| as400.system_asp_storage | total | MiB |
191
+| as400.total_auxiliary_storage | total | MiB |
192
+| as400.system_threads | active, per_processor | threads |
193
+| as400.network_connections | remote, total | connections |
194
+| as400.network_connection_states | listen, close_wait | connections |
195
+| as400.temp_storage_total | current, peak | bytes |
196
+| as400.system_activity_cpu_rate | average | percentage |
197
+| as400.system_activity_cpu_utilization | average, minimum, maximum | percentage |
198
+
199
+
200
+
201
+### Per activejob
202
+
203
+These metrics refer to individual activejob instances.
204
+
205
+Labels:
206
+
207
+| Label | Description |
208
+|:------|:------------|
209
+| job_name | Job_name identifier |
210
+| job_status | Job_status identifier |
211
+| subsystem | Subsystem identifier |
212
+| job_type | Job_type identifier |
213
+
214
+Metrics:
215
+
216
+| Metric | Dimensions | Unit |
217
+|:-------|:-----------|:-----|
218
+| as400.activejob_cpu | cpu | percentage |
219
+| as400.activejob_resources | temp_storage | MiB |
220
+| as400.activejob_time | cpu_time, total_time | seconds |
221
+| as400.activejob_activity | disk_io, interactive_transactions | operations/s |
222
+| as400.activejob_threads | threads | threads |
223
+
224
+### Per disk
225
+
226
+These metrics refer to individual disk instances.
227
+
228
+Labels:
229
+
230
+| Label | Description |
231
+|:------|:------------|
232
+| disk_unit | Disk_unit identifier |
233
+| disk_type | Disk_type identifier |
234
+| disk_model | Disk_model identifier |
235
+| hardware_status | Hardware_status identifier |
236
+| disk_serial_number | Disk_serial_number identifier |
237
+
238
+Metrics:
239
+
240
+| Metric | Dimensions | Unit |
241
+|:-------|:-----------|:-----|
242
+| as400.disk_busy | busy | percentage |
243
+| as400.disk_io_requests | read, write | requests/s |
244
+| as400.disk_space_usage | used | percentage |
245
+| as400.disk_capacity | available, used | gigabytes |
246
+| as400.disk_blocks | read, write | blocks/s |
247
+| as400.disk_ssd_health | life_remaining | percentage |
248
+| as400.disk_ssd_age | power_on_days | days |
249
+
250
+### Per httpserver
251
+
252
+These metrics refer to individual httpserver instances.
253
+
254
+Labels:
255
+
256
+| Label | Description |
257
+|:------|:------------|
258
+| server | Server identifier |
259
+| function | Function identifier |
260
+
261
+Metrics:
262
+
263
+| Metric | Dimensions | Unit |
264
+|:-------|:-----------|:-----|
265
+| as400.http_server_connections | normal, ssl | connections |
266
+| as400.http_server_threads | active, idle | threads |
267
+| as400.http_server_requests | requests, responses, rejected | requests/s |
268
+| as400.http_server_bytes | received, sent | bytes/s |
269
+
270
+### Per jobqueue
271
271
-#### Permission Denied
272
-**Error:** `Permission denied accessing /etc/netdata/ibm.d/`
272
+These metrics refer to individual jobqueue instances.
273
+
274
+Labels:
275
+
276
+| Label | Description |
277
+|:------|:------------|
278
+| job_queue | Job_queue identifier |
279
+| library | Library identifier |
280
+| status | Status identifier |
281
+
282
+Metrics:
283
+
284
+| Metric | Dimensions | Unit |
285
+|:-------|:-----------|:-----|
286
+| as400.jobqueue_length | jobs | jobs |
287
+
288
+### Per messagequeue
289
+
290
+These metrics refer to individual messagequeue instances.
291
+
292
+Labels:
293
+
294
+| Label | Description |
295
+|:------|:------------|
296
+| library | Library identifier |
297
+| queue | Queue identifier |
298
+
299
+Metrics:
300
+
301
+| Metric | Dimensions | Unit |
302
+|:-------|:-----------|:-----|
303
+| as400.message_queue_messages | total, informational, inquiry, diagnostic, escape, notify, sender_copy | messages |
304
+| as400.message_queue_severity | max | severity |
305
+
306
+### Per networkinterface
307
+
308
+These metrics refer to individual networkinterface instances.
309
+
310
+Labels:
311
+
312
+| Label | Description |
313
+|:------|:------------|
314
+| interface | Interface identifier |
315
+| interface_type | Interface_type identifier |
316
+| connection_type | Connection_type identifier |
317
+| internet_address | Internet_address identifier |
318
+| network_address | Network_address identifier |
319
+| subnet_mask | Subnet_mask identifier |
320
+
321
+Metrics:
322
+
323
+| Metric | Dimensions | Unit |
324
+|:-------|:-----------|:-----|
325
+| as400.network_interface_status | active | status |
326
+| as400.network_interface_mtu | mtu | bytes |
327
+
328
+### Per outputqueue
329
+
330
+These metrics refer to individual outputqueue instances.
331
+
332
+Labels:
333
+
334
+| Label | Description |
335
+|:------|:------------|
336
+| library | Library identifier |
337
+| queue | Queue identifier |
338
+| status | Status identifier |
339
+
340
+Metrics:
341
+
342
+| Metric | Dimensions | Unit |
343
+|:-------|:-----------|:-----|
344
+| as400.output_queue_files | files | files |
345
+| as400.output_queue_writers | writers | writers |
346
+| as400.output_queue_status | released | state |
347
+
348
+### Per plancache
349
+
350
+These metrics refer to individual plancache instances.
351
+
352
+Labels:
353
+
354
+| Label | Description |
355
+|:------|:------------|
356
+| metric | Metric identifier |
357
+
358
+Metrics:
359
+
360
+| Metric | Dimensions | Unit |
361
+|:-------|:-----------|:-----|
362
+| as400.plan_cache_summary | value | value |
363
+
364
+### Per queueoverview
365
+
366
+These metrics refer to individual queueoverview instances.
367
+
368
+Labels:
369
+
370
+| Label | Description |
371
+|:------|:------------|
372
+| queue_type | Queue_type identifier |
373
+| item_type | Item_type identifier |
374
+
375
+Metrics:
376
+
377
+| Metric | Dimensions | Unit |
378
+|:-------|:-----------|:-----|
379
+| as400.queues_count | queues | queues |
380
+| as400.queued_items | items | items |
381
+
382
+### Per subsystem
383
+
384
+These metrics refer to individual subsystem instances.
385
+
386
+Labels:
387
+
388
+| Label | Description |
389
+|:------|:------------|
390
+| subsystem | Subsystem identifier |
391
+| library | Library identifier |
392
+| status | Status identifier |
393
+
394
+Metrics:
395
+
396
+| Metric | Dimensions | Unit |
397
+|:-------|:-----------|:-----|
398
+| as400.subsystem_jobs | active, maximum | jobs |
399
+
400
+### Per tempstoragebucket
401
+
402
+These metrics refer to individual tempstoragebucket instances.
403
+
404
+Labels:
405
+
406
+| Label | Description |
407
+|:------|:------------|
408
+| bucket | Bucket identifier |
409
+
410
+Metrics:
411
+
412
+| Metric | Dimensions | Unit |
413
+|:-------|:-----------|:-----|
414
+| as400.temp_storage_bucket | current, peak | bytes |
415
+
416
+
417
+## Configuration
418
+
419
+### File
420
+
421
+The configuration file name for this integration is `ibm.d/as400.conf`.
422
+
423
+You can edit the configuration file using the `edit-config` script from the
424
+Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration.md#the-netdata-config-directory).
425
274
-**Solution:**
426
```bash
276
-# Fix permissions
277
-sudo chown -R netdata:netdata /etc/netdata/ibm.d/
278
-sudo chmod 640 /etc/netdata/ibm.d/*.conf
427
+cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
428
+sudo ./edit-config ibm.d/as400.conf
429
```
430
281
-### Performance Tuning
431
+### Options
432
+
433
+The following options can be defined globally or per job.
434
+
435
+| Name | Description | Default | Required | Min | Max |
436
+|:-----|:------------|:--------|:---------|:----|:----|
437
+| update_every | Data collection frequency | `5` | no | 1 | - |
438
+| Vnode | Vnode allows binding the collector to a virtual node. | `` | no | - | - |
439
+| DSN | DSN provides a full IBM i ODBC connection string if manual override is needed. | `` | no | - | - |
440
+| Timeout | Timeout controls how long to wait for SQL statements and RPCs. | `2000000000` | no | - | - |
441
+| Hostname | Hostname is the remote IBM i host to monitor. | `` | no | - | - |
442
+| Port | Port is the TCP port for the IBM i Access ODBC server. | `8471` | no | 1 | 65535 |
443
+| Username | Username supplies the credentials used for authentication. | `` | no | - | - |
444
+| Password | Password supplies the password used for authentication. | `` | no | - | - |
445
+| Database | Database selects the IBM i database (library) to use when building the DSN. | `*SYSBAS` | no | - | - |
446
+| ConnectionType | ConnectionType selects how the collector connects (currently only "odbc"). | `odbc` | no | - | - |
447
+| ODBCDriver | ODBCDriver specifies the driver name registered on the host. | `IBM i Access ODBC Driver` | no | - | - |
448
+| UseSSL | UseSSL enables TLS for the ODBC connection when supported by the driver. | `false` | no | - | - |
449
+| ResetStatistics | ResetStatistics toggles destructive SQL services that reset system statistics on each query. | `false` | no | - | - |
450
+| CollectDiskMetrics | CollectDiskMetrics toggles collection of disk unit statistics. | `auto` | no | - | - |
451
+| CollectSubsystemMetrics | CollectSubsystemMetrics toggles collection of subsystem activity metrics. | `auto` | no | - | - |
452
+| CollectActiveJobs | CollectActiveJobs toggles collection of detailed per-job metrics. | `auto` | no | - | - |
453
+| CollectHTTPServerMetrics | CollectHTTPServerMetrics toggles collection of IBM HTTP Server statistics. | `auto` | no | - | - |
454
+| CollectPlanCacheMetrics | CollectPlanCacheMetrics toggles collection of plan cache analysis metrics. | `auto` | no | - | - |
455
+| CollectMessageQueueTotals | CollectMessageQueueTotals enables expensive aggregate counting across all message queues. | `auto` | no | - | - |
456
+| CollectJobQueueTotals | CollectJobQueueTotals enables expensive aggregate counting across all job queues. | `auto` | no | - | - |
457
+| CollectOutputQueueTotals | CollectOutputQueueTotals enables expensive aggregate counting across all output queues. | `auto` | no | - | - |
458
+| SlowPath | SlowPath enables the asynchronous slow-path worker for heavy queries. | `true` | no | - | - |
459
+| SlowPathUpdateEvery | SlowPathUpdateEvery controls the beat interval for the slow-path worker. | `10000000000` | no | - | - |
460
+| SlowPathMaxConnections | SlowPathMaxConnections caps the number of concurrent queries the slow-path worker may run. | `1` | no | - | - |
461
+| BatchPath | BatchPath enables the long-period batch worker for expensive queue aggregates. | `false` | no | - | - |
462
+| BatchPathUpdateEvery | BatchPathUpdateEvery controls the beat interval for the batch worker. | `60000000000` | no | - | - |
463
+| BatchPathMaxConnections | BatchPathMaxConnections caps concurrent queries for the batch worker. | `1` | no | - | - |
464
+| MaxDisks | MaxDisks caps how many disk units may be charted. | `100` | no | - | - |
465
+| MaxSubsystems | MaxSubsystems caps how many subsystems may be charted. | `100` | no | - | - |
466
+| DiskSelector | DiskSelector filters disk units by name using glob-style patterns. | `` | no | - | - |
467
+| SubsystemSelector | SubsystemSelector filters subsystems by name using glob-style patterns. | `` | no | - | - |
468
+| ActiveJobs | ActiveJobs lists active jobs to monitor, using fully-qualified job identifiers (JOB_NUMBER/USER/JOB_NAME). When empty, active job collection is disabled. | `nil` | no | - | - |
469
+| MessageQueues | MessageQueues lists message queues to collect, formatted as LIBRARY/QUEUE strings. When empty, message queue collection is disabled. The default configuration monitors QSYS/QSYSOPR, QSYS/QSYSMSG, and QSYS/QHST. | `[QSYS/QSYSOPR QSYS/QSYSMSG QSYS/QHST]` | no | - | - |
470
+| JobQueues | JobQueues lists job queues to collect, formatted as LIBRARY/QUEUE strings. When empty, job queue collection is disabled. | `nil` | no | - | - |
471
+| OutputQueues | OutputQueues lists output queues to collect, formatted as LIBRARY/QUEUE strings. When empty, output queue collection is disabled. | `nil` | no | - | - |
472
+
473
+### Examples
474
+
475
+#### Basic configuration
476
+
477
+IBM i (AS/400) monitoring with default settings.
478
+
479
+<details>
480
+<summary>Config</summary>
481
283
-For large IBM i systems with many jobs:
482
```yaml
483
jobs:
286
- - name: tuned_as400
287
- dsn: AS400_PROD
288
- update_every: 30 # Reduce frequency
289
- collect_active_jobs: yes # Enable job metrics
290
- active_jobs:
291
- - 123456/QSYS/QSPCJOB # Explicit job list controls collection
292
- connection_timeout: 30 # Increase timeout
293
- query_timeout: 25 # Increase query timeout
484
+ - name: local
485
+ endpoint: dummy://localhost
486
```
487
296
-For high-volume MQ systems:
297
-```yaml
298
-jobs:
299
- - name: tuned_mq
300
- # ... connection details ...
301
- update_every: 15 # Balance load vs granularity
302
- queue_filter: "APP.*" # Monitor specific queues
303
- channel_filter: "SYSTEM.*" # Exclude system channels
304
-```
488
+</details>
489
+
490
+## Troubleshooting
491
+
492
+### Debug Mode
493
306
-## Security Considerations
494
+To troubleshoot issues with the `as400` collector, run the `ibm.d.plugin` with the debug option enabled.
495
+The output should give you clues as to why the collector isn't working.
496
308
-1. **Use dedicated monitoring accounts** with minimal required permissions
309
-2. **Encrypt passwords** in configuration files:
310
- ```bash
311
- # Store credentials in environment variables
312
- export IBM_AS400_PASSWORD='secret'
313
- ```
314
- Then reference in config:
315
- ```yaml
316
- password: ${IBM_AS400_PASSWORD}
317
- ```
497
+- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`
498
+- Switch to the `netdata` user
499
+- Run the `ibm.d.plugin` to debug the collector:
500
319
-3. **Restrict configuration file access:**
320
- ```bash
321
- chmod 600 /etc/netdata/ibm.d/*.conf
322
- chown netdata:netdata /etc/netdata/ibm.d/*.conf
323
- ```
501
+```bash
502
+sudo -u netdata ./ibm.d.plugin -d -m as400
503
+```
504
325
-4. **Use SSL/TLS connections** where supported by configuring ODBC with SSL
505
+## Getting Logs
506
327
-## Metrics and Alerts
507
+If you're encountering problems with the `as400` collector, follow these steps to retrieve logs and identify potential issues:
508
329
-The plugin automatically creates alerts for critical conditions:
509
+- **Run the command** specific to your system (systemd, non-systemd, or Docker container).
510
+- **Examine the output** for any warnings or error messages that might indicate issues. These messages will typically provide clues about the root cause of the problem.
511
331
-- **CPU utilization** > 80% sustained
332
-- **Disk space** < 10% free
333
-- **Message queue depth** > threshold
334
-- **Lock wait time** > 30 seconds
335
-- **Connection pool exhaustion**
512
+### For systemd systems (most Linux distributions)
513
337
-View active alerts:
514
```bash
339
-curl http://localhost:19999/api/v1/alarms | jq '.alarms'
515
+sudo journalctl -u netdata --reverse | grep as400
516
```
517
342
-## Getting Help
518
+### For non-systemd systems
519
344
-- **Documentation:** Full metrics reference available in each module's metadata.yaml
345
-- **IBM i Comparison:** [Detailed comparison with other IBM i monitoring tools](modules/as400/IBMi-MONITORING.md)
346
-- **MQ Comparison:** [DevOps evaluation guide for MQ monitoring solutions](modules/mq/MQ-MONITORING.md)
347
-- **Community:** [Netdata Community Forums](https://community.netdata.cloud)
348
-- **Issues:** [GitHub Issues](https://github.com/netdata/netdata/issues)
349
-- **Developer Guide:** See [AGENTS.md](AGENTS.md) for contributing
520
+```bash
521
+sudo grep as400 /var/log/netdata/error.log
522
+sudo grep as400 /var/log/netdata/collector.log
523
+```
524
351
-## License
525
+### For Docker containers
526
353
-The IBM monitoring plugin is part of Netdata and is released under the GPL v3+ license. IBM client libraries are subject to IBM's licensing terms.
527
+```bash
528
+sudo docker logs netdata 2>&1 | grep as400
529
+```
src/go/plugin/ibm.d/docgen/main.go
+7
@@ -591,6 +591,13 @@ modules:
591
multi_instance: true
592
additional_permissions:
593
description: ""
594
+ default_behavior:
595
+ auto_detection:
596
+ description: ""
597
+ limits:
598
+ description: ""
599
+ performance_impact:
600
+ description: ""
601
setup:
602
prerequisites:
603
list:
src/go/plugin/ibm.d/modules/as400/README.md
+13
-17
@@ -151,6 +151,18 @@ The scope defines the instance that the metric belongs to. An instance is unique
151
### Per IBM i (AS/400) instance
152
153
154
+These metrics refer to the entire monitored IBM i (AS/400) instance.
155
+
156
+This scope has no labels.
157
+
158
+Metrics:
159
+
160
+| Metric | Dimensions | Unit |
161
+|:-------|:-----------|:-----|
162
+| netdata.plugin_ibm.as400_query_latency_fast | count_disks, count_http_servers, count_network_interfaces, detect_ibmi_version_primary, detect_ibmi_version_fallback, disk_instances, disk_instances_enhanced, disk_status, http_server_info, job_info, memory_pools, network_connections, network_interfaces, serial_number, system_name, system_activity, system_model, system_status, temp_storage_named, temp_storage_total, technology_refresh_level, active_job | ms |
163
+| netdata.plugin_ibm.as400_query_latency_slow | analyze_plan_cache, count_subsystems, subsystems, message_queue_aggregates, job_queues, output_queue_info, plan_cache_summary | ms |
164
+| netdata.plugin_ibm.as400_query_latency_batch | message_queue_totals, job_queue_totals, output_queue_totals | ms |
165
+
166
These metrics refer to the entire monitored IBM i (AS/400) instance.
167
168
This scope has no labels.
@@ -313,22 +325,6 @@ Metrics:
325
| as400.network_interface_status | active | status |
326
| as400.network_interface_mtu | mtu | bytes |
327
316
-### Per observability
317
-
318
-These metrics refer to individual observability instances.
319
-
320
-Labels:
321
-
322
-| Label | Description |
323
-|:------|:------------|
324
-| path | Path identifier |
325
-
326
-Metrics:
327
-
328
-| Metric | Dimensions | Unit |
329
-|:-------|:-----------|:-----|
330
-| netdata.plugin_ibm.as400_query_latency | analyze_plan_cache, count_disks, count_http_servers, count_network_interfaces, count_subsystems, detect_ibmi_version_primary, detect_ibmi_version_fallback, disk_instances, disk_instances_enhanced, disk_status, http_server_info, job_info, job_queues, job_queue_totals, memory_pools, message_queue_aggregates, message_queue_totals, network_connections, network_interfaces, output_queue_info, output_queue_totals, plan_cache_summary, serial_number, system_activity, system_model, system_status, temp_storage_named, temp_storage_total, technology_refresh_level, active_job, other | ms |
331
-
328
### Per outputqueue
329
330
These metrics refer to individual outputqueue instances.
@@ -462,7 +458,7 @@ The following options can be defined globally or per job.
458
| SlowPath | SlowPath enables the asynchronous slow-path worker for heavy queries. | `true` | no | - | - |
459
| SlowPathUpdateEvery | SlowPathUpdateEvery controls the beat interval for the slow-path worker. | `10000000000` | no | - | - |
460
| SlowPathMaxConnections | SlowPathMaxConnections caps the number of concurrent queries the slow-path worker may run. | `1` | no | - | - |
465
-| BatchPath | BatchPath enables the long-period batch worker for expensive queue aggregates. | `true` | no | - | - |
461
+| BatchPath | BatchPath enables the long-period batch worker for expensive queue aggregates. | `false` | no | - | - |
462
| BatchPathUpdateEvery | BatchPathUpdateEvery controls the beat interval for the batch worker. | `60000000000` | no | - | - |
463
| BatchPathMaxConnections | BatchPathMaxConnections caps concurrent queries for the batch worker. | `1` | no | - | - |
464
| MaxDisks | MaxDisks caps how many disk units may be charted. | `100` | no | - | - |
src/go/plugin/ibm.d/modules/as400/config_schema.json
+1
-1
@@ -371,4 +371,4 @@
371
"fullPage": true
372
}
373
}
374
-}
374
+}
\ No newline at end of file
src/go/plugin/ibm.d/modules/as400/metadata.yaml
+33
-17
@@ -166,6 +166,13 @@ modules:
166
multi_instance: true
167
additional_permissions:
168
description: ""
169
+ default_behavior:
170
+ auto_detection:
171
+ description: ""
172
+ limits:
173
+ description: ""
174
+ performance_impact:
175
+ description: ""
176
setup:
177
prerequisites:
178
list:
@@ -422,22 +429,18 @@ modules:
429
chart_type: line
430
dimensions:
431
- name: mtu
425
- - name: observability
426
- description: These metrics refer to observability instances.
427
- labels:
428
- - name: path
429
- description: Path identifier
432
+ - name: global
433
+ description: These metrics refer to the entire monitored instance.
434
+ labels: []
435
metrics:
431
- - name: netdata.plugin_ibm.as400_query_latency
432
- description: AS400 Query Latency
436
+ - name: netdata.plugin_ibm.as400_query_latency_fast
437
+ description: AS400 Query Latency (Fast Path)
438
unit: ms
439
chart_type: stacked
440
dimensions:
436
- - name: analyze_plan_cache
441
- name: count_disks
442
- name: count_http_servers
443
- name: count_network_interfaces
440
- - name: count_subsystems
444
- name: detect_ibmi_version_primary
445
- name: detect_ibmi_version_fallback
446
- name: disk_instances
@@ -445,17 +448,11 @@ modules:
448
- name: disk_status
449
- name: http_server_info
450
- name: job_info
448
- - name: job_queues
451
- name: memory_pools
450
- - name: message_queue_aggregates
452
- name: network_connections
453
- name: network_interfaces
453
- - name: output_queue_info
454
- - name: plan_cache_summary
455
- - name: job_queue_totals
456
- - name: message_queue_totals
457
- - name: output_queue_totals
454
- name: serial_number
455
+ - name: system_name
456
- name: system_activity
457
- name: system_model
458
- name: system_status
@@ -463,7 +460,26 @@ modules:
460
- name: temp_storage_total
461
- name: technology_refresh_level
462
- name: active_job
466
- - name: other
463
+ - name: netdata.plugin_ibm.as400_query_latency_slow
464
+ description: AS400 Query Latency (Slow Path)
465
+ unit: ms
466
+ chart_type: stacked
467
+ dimensions:
468
+ - name: analyze_plan_cache
469
+ - name: count_subsystems
470
+ - name: subsystems
471
+ - name: message_queue_aggregates
472
+ - name: job_queues
473
+ - name: output_queue_info
474
+ - name: plan_cache_summary
475
+ - name: netdata.plugin_ibm.as400_query_latency_batch
476
+ description: AS400 Query Latency (Batch Path)
477
+ unit: ms
478
+ chart_type: stacked
479
+ dimensions:
480
+ - name: message_queue_totals
481
+ - name: job_queue_totals
482
+ - name: output_queue_totals
483
- name: outputqueue
484
description: These metrics refer to outputqueue instances.
485
labels:
src/go/plugin/ibm.d/modules/as400/module.yaml
+1
-1
@@ -139,7 +139,7 @@ description: |
139
Network interface metrics have a fixed internal limit of 50 instances, and HTTP server metrics are capped at 200 instances; these limits are currently not configurable.
140
icon: ibm-i.svg
141
categories:
142
- - data-collection.infrastructure
142
+ - data-collection.operating-systems
143
link: https://www.ibm.com/products/power-systems
144
keywords:
145
- ibm i
src/go/plugin/ibm.d/modules/db2/metadata.yaml
+7
@@ -45,6 +45,13 @@ modules:
45
multi_instance: true
46
additional_permissions:
47
description: ""
48
+ default_behavior:
49
+ auto_detection:
50
+ description: ""
51
+ limits:
52
+ description: ""
53
+ performance_impact:
54
+ description: ""
55
setup:
56
prerequisites:
57
list:
src/go/plugin/ibm.d/modules/db2/module.yaml
+1
-1
@@ -18,7 +18,7 @@ description: |
18
visibility is preserved even when individual instances are trimmed.
19
icon: ibm.svg
20
categories:
21
- - data-collection.database-servers
21
+ - data-collection.databases
22
link: https://www.ibm.com/products/db2
23
keywords:
24
- db2
src/go/plugin/ibm.d/modules/mq/metadata.yaml
+8
-1
@@ -8,7 +8,7 @@ modules:
8
name: IBM MQ
9
link: https://www.ibm.com/products/mq
10
categories:
11
- - data-collection.databases
11
+ - data-collection.applications
12
icon_filename: "ibm-mq.svg"
13
related_resources:
14
integrations:
@@ -45,6 +45,13 @@ modules:
45
multi_instance: true
46
additional_permissions:
47
description: ""
48
+ default_behavior:
49
+ auto_detection:
50
+ description: ""
51
+ limits:
52
+ description: ""
53
+ performance_impact:
54
+ description: ""
55
setup:
56
prerequisites:
57
list:
src/go/plugin/ibm.d/modules/mq/module.yaml
+1
-1
@@ -18,7 +18,7 @@ description: |
18
high-level visibility is never lost even when detailed charts are trimmed.
19
icon: ibm-mq.svg
20
categories:
21
- - data-collection.message-brokers
21
+ - data-collection.applications
22
link: https://www.ibm.com/products/mq
23
keywords:
24
- message queue
src/go/plugin/ibm.d/modules/websphere/jmx/README.md
+25
-25
@@ -163,12 +163,12 @@ The following options can be defined globally or per job.
163
| update_every | Data collection frequency | `5` | no | 1 | - |
164
| Vnode | Vnode | `` | no | - | - |
165
| JMXURL | Connection settings | `` | no | - | - |
166
-| JMXUsername | Username for authentication | `` | no | - | - |
167
-| JMXPassword | Password for authentication | `` | no | - | - |
166
+| JMXUsername | Username | `` | no | - | - |
167
+| JMXPassword | Password | `` | no | - | - |
168
| JMXClasspath | J m x classpath | `` | no | - | - |
169
| JavaExecPath | Java exec path | `` | no | - | - |
170
-| JMXTimeout | Connection timeout duration in seconds | `5000000000` | no | - | - |
171
-| InitTimeout | Connection timeout duration in seconds | `30000000000` | no | - | - |
170
+| JMXTimeout | Timeout | `5000000000` | no | - | - |
171
+| InitTimeout | Timeout | `30000000000` | no | - | - |
172
| ShutdownDelay | Shutdown delay | `100000000` | no | - | - |
173
| ClusterName | Identity labels | `` | no | - | - |
174
| CellName | Cell name | `` | no | - | - |
@@ -176,29 +176,29 @@ The following options can be defined globally or per job.
176
| ServerName | Server name | `` | no | - | - |
177
| ServerType | Server type | `` | no | - | - |
178
| CollectJVMMetrics | Metric toggles | `enabled` | no | - | - |
179
-| CollectThreadPoolMetrics | Enable collection of thread pool metrics metrics | `enabled` | no | - | - |
180
-| CollectJDBCMetrics | Enable collection of j d b c metrics metrics | `enabled` | no | - | - |
181
-| CollectJCAMetrics | Enable collection of j c a metrics metrics | `enabled` | no | - | - |
182
-| CollectJMSMetrics | Enable collection of j m s metrics metrics | `enabled` | no | - | - |
183
-| CollectWebAppMetrics | Enable collection of web app metrics metrics | `enabled` | no | - | - |
184
-| CollectSessionMetrics | Enable collection of session metrics metrics | `enabled` | no | - | - |
185
-| CollectTransactionMetrics | Enable collection of transaction metrics metrics | `enabled` | no | - | - |
186
-| CollectClusterMetrics | Enable collection of cluster metrics metrics | `enabled` | no | - | - |
187
-| CollectServletMetrics | Enable collection of servlet metrics metrics | `enabled` | no | - | - |
188
-| CollectEJBMetrics | Enable collection of e j b metrics metrics | `enabled` | no | - | - |
189
-| CollectJDBCAdvanced | Enable collection of j d b c advanced metrics | `disabled` | no | - | - |
179
+| CollectThreadPoolMetrics | Collect Thread pool metrics | `enabled` | no | - | - |
180
+| CollectJDBCMetrics | Collect J d b c metrics | `enabled` | no | - | - |
181
+| CollectJCAMetrics | Collect J c a metrics | `enabled` | no | - | - |
182
+| CollectJMSMetrics | Collect J m s metrics | `enabled` | no | - | - |
183
+| CollectWebAppMetrics | Collect Web app metrics | `enabled` | no | - | - |
184
+| CollectSessionMetrics | Collect Session metrics | `enabled` | no | - | - |
185
+| CollectTransactionMetrics | Collect Transaction metrics | `enabled` | no | - | - |
186
+| CollectClusterMetrics | Collect Cluster metrics | `enabled` | no | - | - |
187
+| CollectServletMetrics | Collect Servlet metrics | `enabled` | no | - | - |
188
+| CollectEJBMetrics | Collect E j b metrics | `enabled` | no | - | - |
189
+| CollectJDBCAdvanced | Collect J d b c advanced | `disabled` | no | - | - |
190
| MaxThreadPools | Cardinality guards | `50` | no | - | - |
191
-| MaxJDBCPools | Maximum number of j d b c pools to monitor | `50` | no | - | - |
192
-| MaxJCAPools | Maximum number of j c a pools to monitor | `50` | no | - | - |
193
-| MaxJMSDestinations | Maximum number of j m s destinations to monitor | `50` | no | - | - |
194
-| MaxApplications | Maximum number of applications to monitor | `100` | no | - | - |
195
-| MaxServlets | Maximum number of servlets to monitor | `50` | no | - | - |
196
-| MaxEJBs | Maximum number of e j bs to monitor | `50` | no | - | - |
191
+| MaxJDBCPools | Max J d b c pools | `50` | no | - | - |
192
+| MaxJCAPools | Max J c a pools | `50` | no | - | - |
193
+| MaxJMSDestinations | Max J m s destinations | `50` | no | - | - |
194
+| MaxApplications | Max Applications | `100` | no | - | - |
195
+| MaxServlets | Max Servlets | `50` | no | - | - |
196
+| MaxEJBs | Max E j bs | `50` | no | - | - |
197
| CollectPoolsMatching | Filters | `` | no | - | - |
198
-| CollectJMSMatching | Enable collection of j m s matching metrics | `` | no | - | - |
199
-| CollectAppsMatching | Enable collection of apps matching metrics | `` | no | - | - |
200
-| CollectServletsMatching | Enable collection of servlets matching metrics | `` | no | - | - |
201
-| CollectEJBsMatching | Enable collection of e j bs matching metrics | `` | no | - | - |
198
+| CollectJMSMatching | Collect J m s matching | `` | no | - | - |
199
+| CollectAppsMatching | Collect Apps matching | `` | no | - | - |
200
+| CollectServletsMatching | Collect Servlets matching | `` | no | - | - |
201
+| CollectEJBsMatching | Collect E j bs matching | `` | no | - | - |
202
| MaxRetries | Resilience tuning | `3` | no | - | - |
203
| RetryBackoffMultiplier | Retry backoff multiplier | `2` | no | - | - |
204
| CircuitBreakerThreshold | Circuit breaker threshold | `5` | no | - | - |
src/go/plugin/ibm.d/modules/websphere/jmx/config_schema.json
+85
-42
@@ -4,278 +4,321 @@
4
"properties": {
5
"cell_name": {
6
"default": "",
7
- "title": "Cell name",
7
+ "description": "Cell name",
8
+ "title": "Cell Name",
9
"type": "string"
10
},
11
"circuit_breaker_threshold": {
12
"default": 5,
12
- "title": "Circuit breaker threshold",
13
+ "description": "Circuit breaker threshold",
14
+ "title": "Circuit Breaker Threshold",
15
"type": "integer"
16
},
17
"cluster_name": {
18
"default": "",
17
- "title": "Identity labels",
19
+ "description": "Identity labels",
20
+ "title": "Cluster Name",
21
"type": "string"
22
},
23
"collect_apps_matching": {
24
"default": "",
22
- "title": "Enable collection of apps matching metrics",
25
+ "description": "Collect Apps matching",
26
+ "title": "Collect Apps Matching",
27
"type": "string"
28
},
29
"collect_cluster_metrics": {
30
"default": "enabled",
31
+ "description": "Collect Cluster metrics",
32
"enum": [
33
"auto",
34
"enabled",
35
"disabled"
36
],
32
- "title": "Enable collection of cluster metrics metrics",
37
+ "title": "Collect Cluster Metrics",
38
"type": "string"
39
},
40
"collect_ejb_metrics": {
41
"default": "enabled",
42
+ "description": "Collect E j b metrics",
43
"enum": [
44
"auto",
45
"enabled",
46
"disabled"
47
],
42
- "title": "Enable collection of e j b metrics metrics",
48
+ "title": "Collect Ejb Metrics",
49
"type": "string"
50
},
51
"collect_ejbs_matching": {
52
"default": "",
47
- "title": "Enable collection of e j bs matching metrics",
53
+ "description": "Collect E j bs matching",
54
+ "title": "Collect Ejbs Matching",
55
"type": "string"
56
},
57
"collect_jca_metrics": {
58
"default": "enabled",
59
+ "description": "Collect J c a metrics",
60
"enum": [
61
"auto",
62
"enabled",
63
"disabled"
64
],
57
- "title": "Enable collection of j c a metrics metrics",
65
+ "title": "Collect Jca Metrics",
66
"type": "string"
67
},
68
"collect_jdbc_advanced": {
69
"default": "disabled",
70
+ "description": "Collect J d b c advanced",
71
"enum": [
72
"auto",
73
"enabled",
74
"disabled"
75
],
67
- "title": "Enable collection of j d b c advanced metrics",
76
+ "title": "Collect Jdbc Advanced",
77
"type": "string"
78
},
79
"collect_jdbc_metrics": {
80
"default": "enabled",
81
+ "description": "Collect J d b c metrics",
82
"enum": [
83
"auto",
84
"enabled",
85
"disabled"
86
],
77
- "title": "Enable collection of j d b c metrics metrics",
87
+ "title": "Collect Jdbc Metrics",
88
"type": "string"
89
},
90
"collect_jms_matching": {
91
"default": "",
82
- "title": "Enable collection of j m s matching metrics",
92
+ "description": "Collect J m s matching",
93
+ "title": "Collect Jms Matching",
94
"type": "string"
95
},
96
"collect_jms_metrics": {
97
"default": "enabled",
98
+ "description": "Collect J m s metrics",
99
"enum": [
100
"auto",
101
"enabled",
102
"disabled"
103
],
92
- "title": "Enable collection of j m s metrics metrics",
104
+ "title": "Collect Jms Metrics",
105
"type": "string"
106
},
107
"collect_jvm_metrics": {
108
"default": "enabled",
109
+ "description": "Metric toggles",
110
"enum": [
111
"auto",
112
"enabled",
113
"disabled"
114
],
102
- "title": "Metric toggles",
115
+ "title": "Collect Jvm Metrics",
116
"type": "string"
117
},
118
"collect_pools_matching": {
119
"default": "",
107
- "title": "Filters",
120
+ "description": "Filters",
121
+ "title": "Collect Pools Matching",
122
"type": "string"
123
},
124
"collect_servlet_metrics": {
125
"default": "enabled",
126
+ "description": "Collect Servlet metrics",
127
"enum": [
128
"auto",
129
"enabled",
130
"disabled"
131
],
117
- "title": "Enable collection of servlet metrics metrics",
132
+ "title": "Collect Servlet Metrics",
133
"type": "string"
134
},
135
"collect_servlets_matching": {
136
"default": "",
122
- "title": "Enable collection of servlets matching metrics",
137
+ "description": "Collect Servlets matching",
138
+ "title": "Collect Servlets Matching",
139
"type": "string"
140
},
141
"collect_session_metrics": {
142
"default": "enabled",
143
+ "description": "Collect Session metrics",
144
"enum": [
145
"auto",
146
"enabled",
147
"disabled"
148
],
132
- "title": "Enable collection of session metrics metrics",
149
+ "title": "Collect Session Metrics",
150
"type": "string"
151
},
152
"collect_threadpool_metrics": {
153
"default": "enabled",
154
+ "description": "Collect Thread pool metrics",
155
"enum": [
156
"auto",
157
"enabled",
158
"disabled"
159
],
142
- "title": "Enable collection of thread pool metrics metrics",
160
+ "title": "Collect Threadpool Metrics",
161
"type": "string"
162
},
163
"collect_transaction_metrics": {
164
"default": "enabled",
165
+ "description": "Collect Transaction metrics",
166
"enum": [
167
"auto",
168
"enabled",
169
"disabled"
170
],
152
- "title": "Enable collection of transaction metrics metrics",
171
+ "title": "Collect Transaction Metrics",
172
"type": "string"
173
},
174
"collect_webapp_metrics": {
175
"default": "enabled",
176
+ "description": "Collect Web app metrics",
177
"enum": [
178
"auto",
179
"enabled",
180
"disabled"
181
],
162
- "title": "Enable collection of web app metrics metrics",
182
+ "title": "Collect Webapp Metrics",
183
"type": "string"
184
},
185
"helper_restart_max": {
186
"default": 3,
167
- "title": "Helper restart max",
187
+ "description": "Helper restart max",
188
+ "title": "Helper Restart Max",
189
"type": "integer"
190
},
191
"init_timeout": {
192
"default": 30000000000,
172
- "title": "Connection timeout duration in seconds",
193
+ "description": "Timeout",
194
+ "title": "Init Timeout",
195
"type": "integer"
196
},
197
"java_exec_path": {
198
"default": "",
177
- "title": "Java exec path",
199
+ "description": "Java exec path",
200
+ "title": "Java Exec Path",
201
"type": "string"
202
},
203
"jmx_classpath": {
204
"default": "",
182
- "title": "J m x classpath",
205
+ "description": "J m x classpath",
206
+ "title": "Jmx Classpath",
207
"type": "string"
208
},
209
"jmx_password": {
210
"default": "",
211
+ "description": "Password",
212
"format": "password",
188
- "title": "Password for authentication",
213
+ "title": "Jmx Password",
214
"type": "string"
215
},
216
"jmx_timeout": {
217
"default": 5000000000,
193
- "title": "Connection timeout duration in seconds",
218
+ "description": "Timeout",
219
+ "title": "Jmx Timeout",
220
"type": "integer"
221
},
222
"jmx_url": {
223
"default": "",
198
- "title": "Connection settings",
224
+ "description": "Connection settings",
225
+ "title": "Jmx Url",
226
"type": "string"
227
},
228
"jmx_username": {
229
"default": "",
203
- "title": "Username for authentication",
230
+ "description": "Username",
231
+ "title": "Jmx Username",
232
"type": "string"
233
},
234
"max_applications": {
235
"default": 100,
208
- "title": "Maximum number of applications to monitor",
236
+ "description": "Max Applications",
237
+ "title": "Max Applications",
238
"type": "integer"
239
},
240
"max_ejbs": {
241
"default": 50,
213
- "title": "Maximum number of e j bs to monitor",
242
+ "description": "Max E j bs",
243
+ "title": "Max Ejbs",
244
"type": "integer"
245
},
246
"max_jca_pools": {
247
"default": 50,
218
- "title": "Maximum number of j c a pools to monitor",
248
+ "description": "Max J c a pools",
249
+ "title": "Max Jca Pools",
250
"type": "integer"
251
},
252
"max_jdbc_pools": {
253
"default": 50,
223
- "title": "Maximum number of j d b c pools to monitor",
254
+ "description": "Max J d b c pools",
255
+ "title": "Max Jdbc Pools",
256
"type": "integer"
257
},
258
"max_jms_destinations": {
259
"default": 50,
228
- "title": "Maximum number of j m s destinations to monitor",
260
+ "description": "Max J m s destinations",
261
+ "title": "Max Jms Destinations",
262
"type": "integer"
263
},
264
"max_retries": {
265
"default": 3,
233
- "title": "Resilience tuning",
266
+ "description": "Resilience tuning",
267
+ "title": "Max Retries",
268
"type": "integer"
269
},
270
"max_servlets": {
271
"default": 50,
238
- "title": "Maximum number of servlets to monitor",
272
+ "description": "Max Servlets",
273
+ "title": "Max Servlets",
274
"type": "integer"
275
},
276
"max_threadpools": {
277
"default": 50,
243
- "title": "Cardinality guards",
278
+ "description": "Cardinality guards",
279
+ "title": "Max Threadpools",
280
"type": "integer"
281
},
282
"node_name": {
283
"default": "",
248
- "title": "Node name",
284
+ "description": "Node name",
285
+ "title": "Node Name",
286
"type": "string"
287
},
288
"retry_backoff_multiplier": {
289
"default": 2,
253
- "title": "Retry backoff multiplier",
290
+ "description": "Retry backoff multiplier",
291
+ "title": "Retry Backoff Multiplier",
292
"type": "number"
293
},
294
"server_name": {
295
"default": "",
258
- "title": "Server name",
296
+ "description": "Server name",
297
+ "title": "Server Name",
298
"type": "string"
299
},
300
"server_type": {
301
"default": "",
263
- "title": "Server type",
302
+ "description": "Server type",
303
+ "title": "Server Type",
304
"type": "string"
305
},
306
"shutdown_delay": {
307
"default": 100000000,
268
- "title": "Shutdown delay",
308
+ "description": "Shutdown delay",
309
+ "title": "Shutdown Delay",
310
"type": "integer"
311
},
312
"update_every": {
313
"default": 5,
314
+ "description": "Data collection frequency",
315
"minimum": 1,
274
- "title": "Data collection frequency",
316
+ "title": "Update Every",
317
"type": "integer"
318
},
319
"vnode": {
320
"default": "",
321
+ "description": "Vnode",
322
"title": "Vnode",
323
"type": "string"
324
}
src/go/plugin/ibm.d/modules/websphere/jmx/metadata.yaml
+8
-1
@@ -8,7 +8,7 @@ modules:
8
name: IBM WebSphere JMX
9
link: https://www.ibm.com/products/websphere-application-server
10
categories:
11
- - data-collection.web-servers-and-proxies
11
+ - data-collection.applications
12
icon_filename: ""
13
related_resources:
14
integrations:
@@ -32,6 +32,13 @@ modules:
32
multi_instance: true
33
additional_permissions:
34
description: ""
35
+ default_behavior:
36
+ auto_detection:
37
+ description: ""
38
+ limits:
39
+ description: ""
40
+ performance_impact:
41
+ description: ""
42
setup:
43
prerequisites:
44
list:
src/go/plugin/ibm.d/modules/websphere/jmx/module.yaml
+1
-1
@@ -5,7 +5,7 @@ description: |
5
via the embedded JMX bridge helper.
6
link: https://www.ibm.com/products/websphere-application-server
7
categories:
8
- - data-collection.application_servers
8
+ - data-collection.applications
9
keywords:
10
- websphere
11
- jmx
src/go/plugin/ibm.d/modules/websphere/mp/config_schema.json
+45
-22
@@ -4,126 +4,149 @@
4
"properties": {
5
"cell_name": {
6
"default": "",
7
- "title": "CellName appends the Liberty cell label to every exported time-series.",
7
+ "description": "CellName appends the Liberty cell label to every exported time-series.",
8
+ "title": "Cell Name",
9
"type": "string"
10
},
11
"collect_jvm_metrics": {
12
"default": "enabled",
13
+ "description": "CollectJVMMetrics toggles JVM/base scope metrics scraped from the MicroProfile endpoint.",
14
"enum": [
15
"auto",
16
"enabled",
17
"disabled"
18
],
17
- "title": "CollectJVMMetrics toggles JVM/base scope metrics scraped from the MicroProfile endpoint.",
19
+ "title": "Collect Jvm Metrics",
20
"type": "string"
21
},
22
"collect_rest_matching": {
23
"default": "",
22
- "title": "CollectRESTMatching filters REST endpoints using glob-style patterns (supports `*`, `?`, `!` prefixes).",
24
+ "description": "CollectRESTMatching filters REST endpoints using glob-style patterns (supports `*`, `?`, `!` prefixes).",
25
+ "title": "Collect Rest Matching",
26
"type": "string"
27
},
28
"collect_rest_metrics": {
29
"default": "enabled",
30
+ "description": "CollectRESTMetrics toggles per-endpoint REST/JAX-RS metrics (may introduce cardinality).",
31
"enum": [
32
"auto",
33
"enabled",
34
"disabled"
35
],
32
- "title": "CollectRESTMetrics toggles per-endpoint REST/JAX-RS metrics (may introduce cardinality).",
36
+ "title": "Collect Rest Metrics",
37
"type": "string"
38
},
39
"headers": {
36
- "title": "Custom headers",
40
+ "description": "Custom headers",
41
+ "title": "Headers",
42
"type": "object"
43
},
44
"max_rest_endpoints": {
45
"default": 50,
41
- "title": "MaxRESTEndpoints limits how many REST endpoints are exported when REST metrics are enabled (0 disables the limit).",
46
+ "description": "MaxRESTEndpoints limits how many REST endpoints are exported when REST metrics are enabled (0 disables the limit).",
47
+ "title": "Max Rest Endpoints",
48
"type": "integer"
49
},
50
"metrics_endpoint": {
51
"default": "/metrics",
46
- "title": "MetricsEndpoint overrides the metrics path relative to the base URL (accepts absolute URLs as well).",
52
+ "description": "MetricsEndpoint overrides the metrics path relative to the base URL (accepts absolute URLs as well).",
53
+ "title": "Metrics Endpoint",
54
"type": "string"
55
},
56
"node_name": {
57
"default": "",
51
- "title": "NodeName appends the Liberty node label to every exported time-series.",
58
+ "description": "NodeName appends the Liberty node label to every exported time-series.",
59
+ "title": "Node Name",
60
"type": "string"
61
},
62
"not_follow_redirects": {
63
"default": false,
56
- "title": "Disable HTTP redirects",
64
+ "description": "Disable HTTP redirects",
65
+ "title": "Not Follow Redirects",
66
"type": "boolean"
67
},
68
"password": {
69
"default": "",
61
- "title": "Password for authentication",
70
+ "description": "Password for authentication",
71
+ "title": "Password",
72
"type": "string"
73
},
74
"proxy_password": {
75
"default": "",
66
- "title": "Proxy password",
76
+ "description": "Proxy password",
77
+ "title": "Proxy Password",
78
"type": "string"
79
},
80
"proxy_url": {
81
"default": "",
71
- "title": "Proxy URL",
82
+ "description": "Proxy URL",
83
+ "title": "Proxy Url",
84
"type": "string"
85
},
86
"proxy_username": {
87
"default": "",
76
- "title": "Proxy username",
88
+ "description": "Proxy username",
89
+ "title": "Proxy Username",
90
"type": "string"
91
},
92
"server_name": {
93
"default": "",
81
- "title": "ServerName appends the Liberty server label to every exported time-series.",
94
+ "description": "ServerName appends the Liberty server label to every exported time-series.",
95
+ "title": "Server Name",
96
"type": "string"
97
},
98
"timeout": {
99
"default": 10000000000,
86
- "title": "Request timeout in seconds",
100
+ "description": "Request timeout in seconds",
101
+ "title": "Timeout",
102
"type": "integer"
103
},
104
"tls_ca": {
105
"default": "",
91
- "title": "Custom CA bundle path",
106
+ "description": "Custom CA bundle path",
107
+ "title": "TLS Ca",
108
"type": "string"
109
},
110
"tls_cert": {
111
"default": "",
96
- "title": "Client certificate path",
112
+ "description": "Client certificate path",
113
+ "title": "TLS Cert",
114
"type": "string"
115
},
116
"tls_key": {
117
"default": "",
101
- "title": "Client key path",
118
+ "description": "Client key path",
119
+ "title": "TLS Key",
120
"type": "string"
121
},
122
"tls_skip_verify": {
123
"default": false,
106
- "title": "Skip TLS certificate verification",
124
+ "description": "Skip TLS certificate verification",
125
+ "title": "TLS Skip Verify",
126
"type": "boolean"
127
},
128
"update_every": {
129
"default": 1,
130
+ "description": "Data collection frequency",
131
"minimum": 1,
112
- "title": "Data collection frequency",
132
+ "title": "Update Every",
133
"type": "integer"
134
},
135
"url": {
136
"default": "",
117
- "title": "Target URL",
137
+ "description": "Target URL",
138
+ "title": "Url",
139
"type": "string"
140
},
141
"username": {
142
"default": "",
122
- "title": "Username for authentication",
143
+ "description": "Username for authentication",
144
+ "title": "Username",
145
"type": "string"
146
},
147
"vnode": {
148
"default": "",
149
+ "description": "Vnode",
150
"title": "Vnode",
151
"type": "string"
152
}
src/go/plugin/ibm.d/modules/websphere/mp/metadata.yaml
+8
-1
@@ -8,7 +8,7 @@ modules:
8
name: IBM WebSphere MicroProfile
9
link: https://www.ibm.com/products/websphere-application-server
10
categories:
11
- - data-collection.web-servers-and-proxies
11
+ - data-collection.applications
12
icon_filename: "ibm.svg"
13
related_resources:
14
integrations:
@@ -32,6 +32,13 @@ modules:
32
multi_instance: true
33
additional_permissions:
34
description: ""
35
+ default_behavior:
36
+ auto_detection:
37
+ description: ""
38
+ limits:
39
+ description: ""
40
+ performance_impact:
41
+ description: ""
42
setup:
43
prerequisites:
44
list:
src/go/plugin/ibm.d/modules/websphere/mp/module.yaml
+1
-1
@@ -5,7 +5,7 @@ description: |
5
servers via the MicroProfile Metrics (Prometheus/OpenMetrics) endpoint.
6
link: https://www.ibm.com/products/websphere-application-server
7
categories:
8
- - data-collection.application_servers
8
+ - data-collection.applications
9
icon: ibm.svg
10
keywords:
11
- websphere
src/go/plugin/ibm.d/modules/websphere/pmi/README.md
+1
@@ -574,6 +574,7 @@ The following options can be defined globally or per job.
574
| Vnode | Vnode allows binding the collector to a virtual node. | `` | no | - | - |
575
| PMIStatsType | PMIStatsType selects which PMI statistics tier to request (`basic`, `extended`, `all`, or `custom`). | `extended` | no | - | - |
576
| PMIRefreshRate | PMIRefreshRate overrides the global PMI servlet refresh interval in seconds when a value >0 is provided. | `60` | no | - | - |
577
+| PMICustomStatsPaths | PMICustomStatsPaths adds extra PMI XML paths when `pmi_stats_type` is set to `custom`. | `nil` | no | - | - |
578
| ClusterName | ClusterName appends the WebSphere cluster identifier label to every exported time-series. | `` | no | - | - |
579
| CellName | CellName appends the WebSphere cell identifier label to every exported time-series. | `` | no | - | - |
580
| NodeName | NodeName appends the WebSphere node identifier label to every exported time-series. | `` | no | - | - |
src/go/plugin/ibm.d/modules/websphere/pmi/config_schema.json
+104
-46
@@ -4,287 +4,341 @@
4
"properties": {
5
"cell_name": {
6
"default": "",
7
- "title": "CellName appends the WebSphere cell identifier label to every exported time-series.",
7
+ "description": "CellName appends the WebSphere cell identifier label to every exported time-series.",
8
+ "title": "Cell Name",
9
"type": "string"
10
},
11
"cluster_name": {
12
"default": "",
12
- "title": "ClusterName appends the WebSphere cluster identifier label to every exported time-series.",
13
+ "description": "ClusterName appends the WebSphere cluster identifier label to every exported time-series.",
14
+ "title": "Cluster Name",
15
"type": "string"
16
},
17
"collect_apps_matching": {
18
"default": "",
17
- "title": "CollectAppsMatching filters Web applications by name using glob patterns (supports `*`, `?`, `!` prefixes).",
19
+ "description": "CollectAppsMatching filters Web applications by name using glob patterns (supports `*`, `?`, `!` prefixes).",
20
+ "title": "Collect Apps Matching",
21
"type": "string"
22
},
23
"collect_cluster_metrics": {
24
"default": "auto",
25
+ "description": "CollectClusterMetrics toggles cluster-level health metrics; defaults to enabled when unset.",
26
"enum": [
27
"auto",
28
"enabled",
29
"disabled"
30
],
27
- "title": "CollectClusterMetrics toggles cluster-level health metrics; defaults to enabled when unset.",
31
+ "title": "Collect Cluster Metrics",
32
"type": "string"
33
},
34
"collect_ejb_metrics": {
35
"default": "auto",
36
+ "description": "CollectEJBMetrics enables Enterprise Java Bean workload metrics; defaults to enabled when unset.",
37
"enum": [
38
"auto",
39
"enabled",
40
"disabled"
41
],
37
- "title": "CollectEJBMetrics enables Enterprise Java Bean workload metrics; defaults to enabled when unset.",
42
+ "title": "Collect Ejb Metrics",
43
"type": "string"
44
},
45
"collect_ejbs_matching": {
46
"default": "",
42
- "title": "CollectEJBsMatching filters Enterprise Java Beans by name using glob patterns (supports `*`, `?`, `!` prefixes).",
47
+ "description": "CollectEJBsMatching filters Enterprise Java Beans by name using glob patterns (supports `*`, `?`, `!` prefixes).",
48
+ "title": "Collect Ejbs Matching",
49
"type": "string"
50
},
51
"collect_jca_metrics": {
52
"default": "auto",
53
+ "description": "CollectJCAMetrics toggles JCA resource-adapter metrics; defaults to enabled when unset.",
54
"enum": [
55
"auto",
56
"enabled",
57
"disabled"
58
],
52
- "title": "CollectJCAMetrics toggles JCA resource-adapter metrics; defaults to enabled when unset.",
59
+ "title": "Collect Jca Metrics",
60
"type": "string"
61
},
62
"collect_jdbc_advanced": {
63
"default": "auto",
64
+ "description": "CollectJDBCAdvanced enables additional JDBC latency/timing statistics; defaults to disabled when unset.",
65
"enum": [
66
"auto",
67
"enabled",
68
"disabled"
69
],
62
- "title": "CollectJDBCAdvanced enables additional JDBC latency/timing statistics; defaults to disabled when unset.",
70
+ "title": "Collect Jdbc Advanced",
71
"type": "string"
72
},
73
"collect_jdbc_metrics": {
74
"default": "auto",
75
+ "description": "CollectJDBCMetrics toggles JDBC connection-pool metrics; defaults to enabled when unset.",
76
"enum": [
77
"auto",
78
"enabled",
79
"disabled"
80
],
72
- "title": "CollectJDBCMetrics toggles JDBC connection-pool metrics; defaults to enabled when unset.",
81
+ "title": "Collect Jdbc Metrics",
82
"type": "string"
83
},
84
"collect_jms_matching": {
85
"default": "",
77
- "title": "CollectJMSMatching filters JMS destinations by name using glob patterns (supports `*`, `?`, `!` prefixes).",
86
+ "description": "CollectJMSMatching filters JMS destinations by name using glob patterns (supports `*`, `?`, `!` prefixes).",
87
+ "title": "Collect Jms Matching",
88
"type": "string"
89
},
90
"collect_jms_metrics": {
91
"default": "auto",
92
+ "description": "CollectJMSMetrics toggles JMS destination metrics; defaults to enabled when unset.",
93
"enum": [
94
"auto",
95
"enabled",
96
"disabled"
97
],
87
- "title": "CollectJMSMetrics toggles JMS destination metrics; defaults to enabled when unset.",
98
+ "title": "Collect Jms Metrics",
99
"type": "string"
100
},
101
"collect_jvm_metrics": {
102
"default": "auto",
103
+ "description": "CollectJVMMetrics toggles JVM runtime metrics; defaults to enabled when unset.",
104
"enum": [
105
"auto",
106
"enabled",
107
"disabled"
108
],
97
- "title": "CollectJVMMetrics toggles JVM runtime metrics; defaults to enabled when unset.",
109
+ "title": "Collect Jvm Metrics",
110
"type": "string"
111
},
112
"collect_pools_matching": {
113
"default": "",
102
- "title": "CollectPoolsMatching filters JDBC and JCA pools by name using glob patterns (supports `*`, `?`, `!` prefixes).",
114
+ "description": "CollectPoolsMatching filters JDBC and JCA pools by name using glob patterns (supports `*`, `?`, `!` prefixes).",
115
+ "title": "Collect Pools Matching",
116
"type": "string"
117
},
118
"collect_servlet_metrics": {
119
"default": "auto",
120
+ "description": "CollectServletMetrics enables servlet response-time metrics; defaults to enabled when unset (may add high-cardinality charts).",
121
"enum": [
122
"auto",
123
"enabled",
124
"disabled"
125
],
112
- "title": "CollectServletMetrics enables servlet response-time metrics; defaults to enabled when unset (may add high-cardinality charts).",
126
+ "title": "Collect Servlet Metrics",
127
"type": "string"
128
},
129
"collect_servlets_matching": {
130
"default": "",
117
- "title": "CollectServletsMatching filters servlet contexts by name using glob patterns (supports `*`, `?`, `!` prefixes).",
131
+ "description": "CollectServletsMatching filters servlet contexts by name using glob patterns (supports `*`, `?`, `!` prefixes).",
132
+ "title": "Collect Servlets Matching",
133
"type": "string"
134
},
135
"collect_session_metrics": {
136
"default": "auto",
137
+ "description": "CollectSessionMetrics toggles HTTP session manager metrics; defaults to enabled when unset.",
138
"enum": [
139
"auto",
140
"enabled",
141
"disabled"
142
],
127
- "title": "CollectSessionMetrics toggles HTTP session manager metrics; defaults to enabled when unset.",
143
+ "title": "Collect Session Metrics",
144
"type": "string"
145
},
146
"collect_threadpool_metrics": {
147
"default": "auto",
148
+ "description": "CollectThreadPoolMetrics toggles thread-pool metrics; defaults to enabled when unset.",
149
"enum": [
150
"auto",
151
"enabled",
152
"disabled"
153
],
137
- "title": "CollectThreadPoolMetrics toggles thread-pool metrics; defaults to enabled when unset.",
154
+ "title": "Collect Threadpool Metrics",
155
"type": "string"
156
},
157
"collect_transaction_metrics": {
158
"default": "auto",
159
+ "description": "CollectTransactionMetrics toggles transaction manager metrics; defaults to enabled when unset.",
160
"enum": [
161
"auto",
162
"enabled",
163
"disabled"
164
],
147
- "title": "CollectTransactionMetrics toggles transaction manager metrics; defaults to enabled when unset.",
165
+ "title": "Collect Transaction Metrics",
166
"type": "string"
167
},
168
"collect_webapp_metrics": {
169
"default": "auto",
170
+ "description": "CollectWebAppMetrics toggles Web application metrics (includes servlet/session data); defaults to enabled when unset.",
171
"enum": [
172
"auto",
173
"enabled",
174
"disabled"
175
],
157
- "title": "CollectWebAppMetrics toggles Web application metrics (includes servlet/session data); defaults to enabled when unset.",
176
+ "title": "Collect Webapp Metrics",
177
"type": "string"
178
},
179
"headers": {
161
- "title": "Custom headers",
180
+ "description": "Custom headers",
181
+ "title": "Headers",
182
"type": "object"
183
},
184
"max_applications": {
185
"default": 100,
166
- "title": "MaxApplications caps the number of web applications charted (0 disables the limit).",
186
+ "description": "MaxApplications caps the number of web applications charted (0 disables the limit).",
187
+ "title": "Max Applications",
188
"type": "integer"
189
},
190
"max_ejbs": {
191
"default": 50,
171
- "title": "MaxEJBs caps the number of Enterprise Java Beans charted (0 disables the limit).",
192
+ "description": "MaxEJBs caps the number of Enterprise Java Beans charted (0 disables the limit).",
193
+ "title": "Max Ejbs",
194
"type": "integer"
195
},
196
"max_jca_pools": {
197
"default": 50,
176
- "title": "MaxJCAPools caps the number of JCA resource adapters charted (0 disables the limit).",
198
+ "description": "MaxJCAPools caps the number of JCA resource adapters charted (0 disables the limit).",
199
+ "title": "Max Jca Pools",
200
"type": "integer"
201
},
202
"max_jdbc_pools": {
203
"default": 50,
181
- "title": "MaxJDBCPools caps the number of JDBC connection pools charted (0 disables the limit).",
204
+ "description": "MaxJDBCPools caps the number of JDBC connection pools charted (0 disables the limit).",
205
+ "title": "Max Jdbc Pools",
206
"type": "integer"
207
},
208
"max_jms_destinations": {
209
"default": 50,
186
- "title": "MaxJMSDestinations caps the number of JMS destinations charted (0 disables the limit).",
210
+ "description": "MaxJMSDestinations caps the number of JMS destinations charted (0 disables the limit).",
211
+ "title": "Max Jms Destinations",
212
"type": "integer"
213
},
214
"max_servlets": {
215
"default": 50,
191
- "title": "MaxServlets caps the number of servlet contexts charted when servlet collection is enabled (0 disables the limit).",
216
+ "description": "MaxServlets caps the number of servlet contexts charted when servlet collection is enabled (0 disables the limit).",
217
+ "title": "Max Servlets",
218
"type": "integer"
219
},
220
"max_threadpools": {
221
"default": 50,
196
- "title": "MaxThreadPools caps the number of thread pools charted per server (0 disables the limit).",
222
+ "description": "MaxThreadPools caps the number of thread pools charted per server (0 disables the limit).",
223
+ "title": "Max Threadpools",
224
"type": "integer"
225
},
226
"node_name": {
227
"default": "",
201
- "title": "NodeName appends the WebSphere node identifier label to every exported time-series.",
228
+ "description": "NodeName appends the WebSphere node identifier label to every exported time-series.",
229
+ "title": "Node Name",
230
"type": "string"
231
},
232
"not_follow_redirects": {
233
"default": false,
206
- "title": "Disable HTTP redirects",
234
+ "description": "Disable HTTP redirects",
235
+ "title": "Not Follow Redirects",
236
"type": "boolean"
237
},
238
"password": {
239
"default": "",
211
- "title": "Password for authentication",
240
+ "description": "Password for authentication",
241
+ "title": "Password",
242
"type": "string"
243
},
244
+ "pmi_custom_stats_paths": {
245
+ "default": "nil",
246
+ "description": "PMICustomStatsPaths adds extra PMI XML paths when `pmi_stats_type` is set to `custom`.",
247
+ "items": {
248
+ "type": "string"
249
+ },
250
+ "title": "Pmi Custom Stats Paths",
251
+ "type": "array"
252
+ },
253
"pmi_refresh_rate": {
254
"default": 60,
216
- "title": "PMIRefreshRate overrides the global PMI servlet refresh interval in seconds when a value \u003e0 is provided.",
255
+ "description": "PMIRefreshRate overrides the global PMI servlet refresh interval in seconds when a value \u003e0 is provided.",
256
+ "title": "Pmi Refresh Rate",
257
"type": "integer"
258
},
259
"pmi_stats_type": {
260
"default": "extended",
221
- "title": "PMIStatsType selects which PMI statistics tier to request (`basic`, `extended`, `all`, or `custom`).",
261
+ "description": "PMIStatsType selects which PMI statistics tier to request (`basic`, `extended`, `all`, or `custom`).",
262
+ "title": "Pmi Stats Type",
263
"type": "string"
264
},
265
"proxy_password": {
266
"default": "",
226
- "title": "Proxy password",
267
+ "description": "Proxy password",
268
+ "title": "Proxy Password",
269
"type": "string"
270
},
271
"proxy_url": {
272
"default": "",
231
- "title": "Proxy URL",
273
+ "description": "Proxy URL",
274
+ "title": "Proxy Url",
275
"type": "string"
276
},
277
"proxy_username": {
278
"default": "",
236
- "title": "Proxy username",
279
+ "description": "Proxy username",
280
+ "title": "Proxy Username",
281
"type": "string"
282
},
283
"server_type": {
284
"default": "",
241
- "title": "ServerType records the WebSphere server type label (for example `app_server`, `dmgr`, `nodeagent`).",
285
+ "description": "ServerType records the WebSphere server type label (for example `app_server`, `dmgr`, `nodeagent`).",
286
+ "title": "Server Type",
287
"type": "string"
288
},
289
"timeout": {
290
"default": 5000000000,
246
- "title": "Request timeout in seconds",
291
+ "description": "Request timeout in seconds",
292
+ "title": "Timeout",
293
"type": "integer"
294
},
295
"tls_ca": {
296
"default": "",
251
- "title": "Custom CA bundle path",
297
+ "description": "Custom CA bundle path",
298
+ "title": "TLS Ca",
299
"type": "string"
300
},
301
"tls_cert": {
302
"default": "",
256
- "title": "Client certificate path",
303
+ "description": "Client certificate path",
304
+ "title": "TLS Cert",
305
"type": "string"
306
},
307
"tls_key": {
308
"default": "",
261
- "title": "Client key path",
309
+ "description": "Client key path",
310
+ "title": "TLS Key",
311
"type": "string"
312
},
313
"tls_skip_verify": {
314
"default": false,
266
- "title": "Skip TLS certificate verification",
315
+ "description": "Skip TLS certificate verification",
316
+ "title": "TLS Skip Verify",
317
"type": "boolean"
318
},
319
"update_every": {
320
"default": 5,
321
+ "description": "Data collection frequency",
322
"minimum": 1,
272
- "title": "Data collection frequency",
323
+ "title": "Update Every",
324
"type": "integer"
325
},
326
"url": {
327
"default": "",
277
- "title": "Target URL",
328
+ "description": "Target URL",
329
+ "title": "Url",
330
"type": "string"
331
},
332
"username": {
333
"default": "",
282
- "title": "Username for authentication",
334
+ "description": "Username for authentication",
335
+ "title": "Username",
336
"type": "string"
337
},
338
"vnode": {
339
"default": "",
287
- "title": "Vnode allows binding the collector to a virtual node.",
340
+ "description": "Vnode allows binding the collector to a virtual node.",
341
+ "title": "Vnode",
342
"type": "string"
343
}
344
},
@@ -295,6 +349,9 @@
349
"password": {
350
"ui:widget": "password"
351
},
352
+ "pmi_custom_stats_paths": {
353
+ "ui:listFlavour": "list"
354
+ },
355
"proxy_password": {
356
"ui:widget": "password"
357
},
@@ -329,7 +386,8 @@
386
{
387
"fields": [
388
"pmi_stats_type",
332
- "pmi_refresh_rate"
389
+ "pmi_refresh_rate",
390
+ "pmi_custom_stats_paths"
391
],
392
"title": "PMI Settings"
393
},
src/go/plugin/ibm.d/modules/websphere/pmi/metadata.yaml
+8
-1
@@ -8,7 +8,7 @@ modules:
8
name: IBM WebSphere PMI
9
link: https://www.ibm.com/docs/en/was
10
categories:
11
- - data-collection.web-servers-and-proxies
11
+ - data-collection.applications
12
icon_filename: "ibm.svg"
13
related_resources:
14
integrations:
@@ -32,6 +32,13 @@ modules:
32
multi_instance: true
33
additional_permissions:
34
description: ""
35
+ default_behavior:
36
+ auto_detection:
37
+ description: ""
38
+ limits:
39
+ description: ""
40
+ performance_impact:
41
+ description: ""
42
setup:
43
prerequisites:
44
list:
src/go/plugin/ibm.d/modules/websphere/pmi/module.yaml
+1
-1
@@ -5,7 +5,7 @@ description: |
5
covering JVM, thread pools, JDBC/JMS resources, applications, and clustering information.
6
link: https://www.ibm.com/docs/en/was
7
categories:
8
- - data-collection.application_servers
8
+ - data-collection.applications
9
icon: ibm.svg
10
keywords:
11
- websphere