The siddhi-io-prometheus extension is an extension to Siddhi. The Prometheus-sink publishes Siddhi events as Prometheus metrics and expose them to Prometheus server. The Prometheus-source retrieves Prometheus metrics from an endpoint and send them as Siddhi events.
- Prometheus server instance should be started.
- Prometheus Pushgateway should be started. (optional)
- Download and copy the prometheus client jars to the {WSO2SPHome}/lib directory as follows.
- Download the following jars from
https://mvnrepository.com/artifact/io.prometheus
- simpleclient_common-*.jar
- simpleclient-*.jar
- simpleclient_httpserver-*.jar
- simpleclient_pushgateway-*.jar
- Copy the downloaded jars into {WSO2SPHome}/lib directory.
- Download the following jars from
https://mvnrepository.com/artifact/io.prometheus
Find some useful links below:
Latest API Docs is 1.0.0.
Using the extension in WSO2 Stream Processor
-
You can use this extension in the latest WSO2 Stream Processor that is a part of WSO2 Analytics offering, with editor, debugger and simulation support.
-
This extension is shipped by default with WSO2 Stream Processor, if you wish to use an alternative version of this extension you can replace the component jar that can be found in the
<STREAM_PROCESSOR_HOME>/lib
directory.
Using the extension as a java library
- This extension can be added as a maven dependency along with other Siddhi dependencies to your project.
<dependency>
<groupId>org.wso2.extension.siddhi.io.prometheus</groupId>
<artifactId>siddhi-io-prometheus</artifactId>
<version>x.x.x</version>
</dependency>
Branch | Build Status |
---|---|
master |
- prometheus (Sink)
The sink publishes events processed by WSO2 SP into Prometheus metrics and exposes them to Prometheus server at the provided url. The created metrics can be published to Prometheus through 'server' or 'pushGateway' publishing modes depending on the preference of the user. The server mode exposes the metrics through an http server at the provided url and the pushGateway mode pushes the metrics to pushGateway which must be running at the provided url.
The metric types that are supported by Prometheus sink are counter, gauge, histogram and summary. The values and labels of the Prometheus metrics can be updated through the events. - prometheus (Source)
The source consumes Prometheus metrics which are exported from the specified url as Siddhi events, by making http requests to the url. According to the source configuration, it analyses metrics from the text response and sends them as Siddhi events through key-value mapping.The user can retrieve metrics of types including, counter, gauge, histogram and summary. Since the source retrieves the metrics from a text response of the target, it is advised to use 'string' as the attribute type for the attributes that correspond to Prometheus metric labels. Further, the Prometheus metric value is passed through the event as 'value'. Therefore, it is advisable to have an attribute with the name 'value' in the stream.
The supported types for the attribute, 'value' are INT, LONG, FLOAT and DOUBLE.
-
Report issues at GitHub Issue Tracker.
-
Send your contributions as pull requests to the master branch.
-
The prometheus sink can be tested with the docker base integration test framework. The test framework initialize a docker container with required configuration before execute the test suit.
To start integration tests,
-
Install and run docker
-
To run the integration tests,
- navigate to the siddhi-io-prometheus/ directory and issue the following command.
mvn verify -P local-prometheus
- navigate to the siddhi-io-prometheus/ directory and issue the following command.
-
-
Prometheus target configurations can be modified at the directory for integration tests :
siddhi-io-prometheus/component/src/test/resources/prometheus/prometheus.yml
-
Post your questions with the "Siddhi" tag in Stackoverflow.
-
Siddhi developers can be contacted via the mailing lists:
Developers List : dev@wso2.org
Architecture List : architecture@wso2.org
-
We are committed to ensuring support for this extension in production. Our unique approach ensures that all support leverages our open development methodology and is provided by the very same engineers who build the technology.
-
For more details and to take advantage of this unique opportunity contact us via http://wso2.com/support/.