@cryptotaxi247 / netdata-1 / commits / d89a841f6

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