You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,5 +2,5 @@
2
2
3
3
| Application | Description |
4
4
| ----------- | ----------- |
5
-
|[streams-metric-exporter](streams-metric-exporter/)| IBM Streams Metric Exporter for Prometheus (more destinations to come). Connects to the IBM Streams JMX Server and pulls metrics for one or more IBM Streams instances and jobs using the very efficient InstanceMXBean.jobSnapshotMetrics() call. The metrics are available to Prometheus for scraping via HTTP or HTTPS. Instructions and supporting files for implementing with Prometheus and Grafana via docker-compose are included. [Grafana Dashboard Example](streams-metric-exporter/images/IBMStreamsDomainDashboard.png)|
5
+
|[streams-metric-exporter](streams-metric-exporter/)| IBM Streams Metric Exporter for Prometheus. Connects to the IBM Streams JMX Server and pulls metrics for one or more IBM Streams instances and jobs using the very efficient InstanceMXBean.jobSnapshotMetrics() call. The metrics are available to Prometheus for scraping via HTTP or HTTPS. Instructions and supporting files for implementing with Prometheus and Grafana via docker-compose are included. [Grafana Dashboard Examples](streams-metric-exporter/dashboards/)<br><imgsrc="streams-metric-exporter/images/IBMStreamsDomainDashboard.png"width="45%"border="5"> <imgsrc="streams-metric-exporter/images/IBMStreamsInstanceDashboard.png"width="45%"> <imgsrc="streams-metric-exporter/images/IBMStreamsJobDashboard.png"width="45%"> <imgsrc="streams-metric-exporter/images/IBMStreamsResourceDashboard.png"width="45%">|
6
6
|[streams-jmx-client](streams-jmx-client/)| IBM Streams Command Line Interface similar to streamtool command. This application uses JMX connection and does not require colocation with an IBM Streams Installation. It is great for running on mac osx, windows, and lightweight docker images. It support username/password as well as PKI certificate authentication. The list of commands supported will grow. Contributions welcome!!|
This application provides an interface to the IBM Streams - Stream Processing System for the purposes of retrieving status and metrics of an IBM Streams domain, instances, jobs, and resources.
3
+
Prometheus Metrics Exporter for IBM Streams version 4.x.
4
4
5
-
This version provides 2 HTTP/HTTPS interfaces:
6
-
* Prometheus: HTTP/Text endpoint in Prometheus metrics format.
7
-
* REST: Multiple endpoints returning json.
5
+
IBM Streams provides a JMX Service (with HTTP GET interface for batch metric pulls) that is capable of providing status of the Streams instance, deployed streaming application (jobs), and cluster resources. In addition, metrics are available via the Streams JMX Service.
8
6
9
-
IBM Streams provides a JMX Service (with HTTP GET interface for batch metric pulls) that is capable of providing status of the Streams instance, deployed streaming application (jobs), and cluster resources. In addition, metrics are available via the Streams JMX Server.
10
-
11
-
The service supports user-defined custom metrics that are found with Streams jobs. These custom metrics do not have to be predefined within the Streams Metric Exporter. They are automatically discovered and made available as Prometheus metrics and in the REST JSON.
7
+
The service supports user-defined custom metrics found in Streams analytic jobs. These custom metrics do not have to be predefined within the Streams Metric Exporter. They are automatically discovered and made available as Prometheus metrics.
12
8
13
9
The primary use-case for this application is as a Prometheus metrics exporter to provide time series displays using Grafana.<br>
14
-
The original use case for this application was as a Streams Application Metrics exporter. It is not meant to monitor the internal system services of IBM Streams. It does, however, provide metrics and status of domains, instances, and resources which do give a operations view of the health of your system.<br>
15
-
This application is **optimized** for better performance over per-job metric scraping approaches. The metrics and status are pulled from IBM Streams for all job metrics and status (via the JMX Server HTTP callbacks). The pulls from IBM STreams can be performed whenever a rest endpoint is hit (on-demand) or scheduled to be pulled and cached with a configurable interval. Users can use the REST endpoints (including Prometheus endpoint) to get metrics and status of specific jobs, thus providing granular access to the information without sacrificing performance and impacting the services of IBM Streams.
10
+
11
+
This application is **optimized** for better performance over per-job metric scraping approaches. The metrics and snapshots are pulled from IBM Streams for all jobs at the same time. The pulls from IBM Streams can be performed whenever the rest endpoint (/metrics) is requested or scheduled to be pulled and cached with a configurable interval (``--refresh``).
16
12
17
13
The service can be configured with periodic refresh (refresh rate > 0) or on-demand refresh (refresh rate == 0) when the HTTP/HTTPS endpoints are accessed.
Java keystore containing server certificate and key to identify server side of this application
136
132
Environment Variable:
@@ -229,15 +225,15 @@ When the Streams domain is running inside of Kubernetes, and the Streams metric
229
225
## Endpoint
230
226
231
227
```bash
232
-
/prometheus
228
+
/metrics or /prometheus
233
229
```
234
230
## prometheus.yml
235
-
This file configures how prometheus will scrape the streams-metric-exporter. By default, the metrics are cached and retrieved every 10 seconds. If you desire for the exporter to work as a "proper" prometheus exporter, set the refresh rate (--refresh) to 0, which causes refreshes to be manual and performed whenever an end point is accessed (the /prometheus endpoint for example).
231
+
This file configures how prometheus will scrape the streams-metric-exporter.
The easiest way to try out the Streams Metric Exporter is to run it using Docker. Included in this release is a Dockerfile for building the image and a docker-compose.yml file for starting it up with Prometheus and Grafana instances.
332
328
333
329
The versions of Prometheus and Grafana specified in the docker-compose.yml file are those that were used for testing.
334
330
335
-
The current version uses Docker 5.0 and its new provisioning capabilities to create the initial datasource pointing to prometheus and initial general purpose dashboards for Streams domains and instances.
336
-
337
331
## Prerequisites
338
332
339
333
* Compiled version of Streams Metric Exporter (executable-streams-metric-exporter.jar)
@@ -342,8 +336,8 @@ The current version uses Docker 5.0 and its new provisioning capabilities to cre
342
336
* Docker Compose (version 1.9.0-5 with .yml file format 2 used in development)
343
337
* Access to Dockerhub or local repository with Images:
344
338
* ibmjava:sfj-alpine (or any 1.8 version)
345
-
* prom/prometheus (2.1.0 used in development)
346
-
* grafana/grafana (5.0.4 used in development)
339
+
* prom/prometheus (2.x or higher)
340
+
* grafana/grafana (5.x or higher)
347
341
348
342
## Setup environment
349
343
@@ -392,8 +386,10 @@ http://localhost:9090
392
386
```
393
387
394
388
395
-
# Cached REST endpoints
396
-
The original version of streams-metric-exporter provided REST endpoints that returned json information. The REST endpoints are still available in this version. The reason to use these REST endpoints over those available directly from IBM Streams is that by default the auto-refresh is used, and these endpoints only retrieve from the metrics cached in the streams-metric-exporter. Beware, however, if you turn auto-refresh off (--refresh 0) then each of these access points will cause the metrics to be pulled from the Streams JMX Server.
389
+
# REST endpoints
390
+
391
+
## /metrics (or /prometheus)
392
+
Retrieve the prometheus format of the metrics
397
393
398
394
## /domain
399
395
Retrieve information about the domain being monitored
@@ -472,56 +468,6 @@ Retrieves resources and specific metrics about them
472
468
}
473
469
```
474
470
475
-
## /instances/{instancename}/joblist
476
-
List of job names and ids along with links to details about the job
0 commit comments