An open API service indexing awesome lists of open source software.

https://github.com/teragrep/rlp_11

Teragrep RELP commit latency probe client application
https://github.com/teragrep/rlp_11

diagnostic-tool latency-analysis latency-monitor relp relp-analysis relp-client relp-monitor teragrep

Last synced: 6 months ago
JSON representation

Teragrep RELP commit latency probe client application

Awesome Lists containing this project

README

          

= RELP Commit Latency Probe rlp_11

Measures latency for RELP records.

== Features

Provides Dropwizard metrics

Provides Prometheus endpoint. It listens to port set by `metrics.port` and exposes metrics to path `/metrics`

Provides Prometheus template for Zabbix

== Documentation

=== Configuration

It will use system property `configurationPath` to find the configuration, or use `etc/rlp_11.properties` if not provided.

Example configuration files can be found under link:rpm/src/opt/teragrep/rlp_11/etc[here].

[cols="1,1"]
|===
|Configuration key|Description

|`metrics.window`
|Size of the sliding window reservoir used by metrics

|`metrics.interval`
|Metrics report interval, in seconds

|`probe.interval`
|Delay between sending records, in milliseconds

|`prometheus.port`
|Prometheus endpoint port

|`record.appname`
|Appname used in RELP record

|`record.hostname`
|Hostname used in RELP record

|`target.hostname`
|RELP Server target address

|`target.port`
|Relp Server target port

|`target.reconnectinterval`
|RELP Server reconnect interval, in milliseconds

|===

=== Systemd services

All configuration files are expected to be in `/opt/teragrep/rlp_11/etc` directory and readable by user `srv-rlp_11`.

==== Simple systemd service

The simple service instance can be started with `systemctl start rlp_11`.

The simple `rlp_11` service will use `rlp_11.properties` and `log4j2.xml` files that are provided in the rpm.

==== Multi-instance systemd service

Multiple service instances can be started with `systemctl start rlp_11@InstanceNameReplaceMe`.

For example the instance `rlp_11@InstanceNameReplaceMe` service will look for `rlp_11.InstanceNameReplaceMe.properties` and `log4j2.InstaceNameReplaceMe.xml` files that must be provided by the user.

=== Zabbix

Import the template, add `{$PROMETHEUS_HOST}` macro with full url to the metrics endpoint to wanted host and link it to `rlp_11_prometheus` template.

== Limitations

Needs to be built on java 11.

== How to compile

[source]
----
mvn clean package
----

== How to use

[source]
----
java -jar rlp_11.jar
----

== Contributing

You can involve yourself with our project by https://github.com/teragrep/rlp_11/issues/new/choose[opening an issue] or submitting a pull request.

Contribution requirements:

. *All changes must be accompanied by a new or changed test.* If you think testing is not required in your pull request, include a sufficient explanation as why you think so.
. Security checks must pass
. Pull requests must align with the principles and http://www.extremeprogramming.org/values.html[values] of extreme programming.
. Pull requests must follow the principles of Object Thinking and Elegant Objects (EO).

Read more in our https://github.com/teragrep/teragrep/blob/main/contributing.adoc[Contributing Guideline].

=== Contributor License Agreement

Contributors must sign https://github.com/teragrep/teragrep/blob/main/cla.adoc[Teragrep Contributor License Agreement] before a pull request is accepted to organization's repositories.

You need to submit the CLA only once. After submitting the CLA you can contribute to all Teragrep's repositories.