All Projects → ahus1 → Prometheus Hystrix

ahus1 / Prometheus Hystrix

Licence: apache-2.0
This is an implementation of a HystrixMetricsPublisher that publishes metrics using the Prometheus java client.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Prometheus Hystrix

Kafka exporter
Kafka exporter for Prometheus
Stars: ✭ 996 (+994.51%)
Mutual labels:  prometheus, prometheus-exporter
Starlette exporter
Prometheus exporter for Starlette and FastAPI
Stars: ✭ 85 (-6.59%)
Mutual labels:  prometheus, prometheus-exporter
Promcord
📊 Analyze your entire discord guild in grafana using prometheus. Message, User, Game and Voice statistics...
Stars: ✭ 39 (-57.14%)
Mutual labels:  prometheus, prometheus-exporter
Script exporter
Prometheus exporter to execute scripts and collect metrics from the output or the exit status.
Stars: ✭ 84 (-7.69%)
Mutual labels:  prometheus, prometheus-exporter
Ebpf exporter
A Prometheus exporter which uses eBPF to measure block IO request latency / size
Stars: ✭ 56 (-38.46%)
Mutual labels:  prometheus, prometheus-exporter
Iperf3 exporter
Simple server that probes iPerf3 endpoints and exports results via HTTP for Prometheus consumption
Stars: ✭ 30 (-67.03%)
Mutual labels:  prometheus, prometheus-exporter
Phpfpm exporter
Prometheus exporter for PHP-FPM.
Stars: ✭ 51 (-43.96%)
Mutual labels:  prometheus, prometheus-exporter
Json Exporter
Prometheus exporter which fetches JSON from a URL and exports one of the values as gauge metrics
Stars: ✭ 26 (-71.43%)
Mutual labels:  prometheus, prometheus-exporter
Unifi exporter
Multiarch images for scraping Prometheus metrics from a Unifi Controller. Kubernetes / prometheus-operator compatible.
Stars: ✭ 54 (-40.66%)
Mutual labels:  prometheus, prometheus-exporter
Druid Exporter
A Golang based exporter captures druid API related metrics and receives druid-emitting HTTP JSON data.
Stars: ✭ 54 (-40.66%)
Mutual labels:  prometheus, prometheus-exporter
Unifiedmetrics
Fully-featured metrics collection agent for Minecraft servers. Supports Prometheus and InfluxDB. Dashboard included out-of-box.
Stars: ✭ 29 (-68.13%)
Mutual labels:  prometheus, prometheus-exporter
Ansible Prometheus
Ansible playbook for installing Prometheus monitoring system, exporters such as: node, snmp, blackbox, thus alert manager and push gateway
Stars: ✭ 69 (-24.18%)
Mutual labels:  prometheus, prometheus-exporter
Zk Exporter
Exposes monitoring metrics for Apache Zookeeper to Prometheus
Stars: ✭ 27 (-70.33%)
Mutual labels:  prometheus, prometheus-exporter
Systemd exporter
Exporter for systemd unit metrics
Stars: ✭ 82 (-9.89%)
Mutual labels:  prometheus, prometheus-exporter
Prometheus Tor exporter
Prometheus exporter for the TOR daemon
Stars: ✭ 20 (-78.02%)
Mutual labels:  prometheus, prometheus-exporter
Ssh exporter
A Prometheus exporter for running SSH commands on a remote host and collecting statistics on those outputs
Stars: ✭ 40 (-56.04%)
Mutual labels:  prometheus, prometheus-exporter
Ebpf exporter
Prometheus exporter for custom eBPF metrics
Stars: ✭ 829 (+810.99%)
Mutual labels:  prometheus, prometheus-exporter
Postgresql exporter
A Prometheus exporter for some postgresql metrics
Stars: ✭ 26 (-71.43%)
Mutual labels:  prometheus, prometheus-exporter
Unifi Poller
Application: Collect ALL UniFi Controller, Site, Device & Client Data - Export to InfluxDB or Prometheus
Stars: ✭ 1,050 (+1053.85%)
Mutual labels:  prometheus, prometheus-exporter
Citrix Adc Metrics Exporter
Export metrics from Citrix ADC (NetScaler) to Prometheus
Stars: ✭ 67 (-26.37%)
Mutual labels:  prometheus, prometheus-exporter

= prometheus-hystrix-metrics-publisher

This is an implementation of a http://netflix.github.com/Hystrix/javadoc/index.html?com/netflix/hystrix/strategy/metrics/HystrixMetricsPublisher.html[HystrixMetricsPublisher] that publishes metrics using Prometheus' https://github.com/prometheus/client_java[SimpleClient].

image:https://img.shields.io/maven-central/v/de.ahus1.prometheus.hystrix/prometheus-hystrix.svg[link=https://mvnrepository.com/artifact/de.ahus1.prometheus.hystrix/prometheus-hystrix] image:https://github.com/ahus1/prometheus-hystrix/workflows/Java%20CI%20with%20Maven/badge.svg?branch=master[Build Status,link=https://github.com/ahus1/prometheus-hystrix/actions?query=workflow%3A%22Java+CI+with+Maven%22+branch%3Amaster]

See the https://github.com/Netflix/Hystrix/wiki/Metrics-and-Monitoring[Netflix Metrics & Monitoring] Wiki for more information.

This continues the work started at SoundCloud.

The roadmap is the following:

Non-Goals:

To use this library you can use Java 6, 7 or 8. Later versions should work, but have not been tested yet - please create it ticket if you experience problems.

Continuous integration tests run on Java 8 only, but the build is parameterized to be Java 6 compatible. Animal sniffer is part of the build to ensure no APIs that are not part of JDK 6 are used.

== USAGE

Include the most recent release from Maven Central in your build configuration.

[source,xml]

de.ahus1.prometheus.hystrix prometheus-hystrix 4.x.x ----

Register the metrics publisher for your application's namespace and the default Prometheus CollectorRegistry with Hystrix.

[source,java]

import com.soundcloud.prometheus.hystrix.HystrixPrometheusMetricsPublisher;

// ...

HystrixPrometheusMetricsPublisher.register();

Register the publisher for your application's namespace with your own Prometheus CollectorRegistry with Hystrix.

[source,java]

import com.soundcloud.prometheus.hystrix.HystrixPrometheusMetricsPublisher; import io.prometheus.client.CollectorRegistry;

// ...

CollectorRegistry registry = // ... HystrixPrometheusMetricsPublisher.builder().withRegistry(registry).buildAndRegister();

For all advanced options, please use the .builder() like in the previous example.

== STATISTICS

Most metrics are similar to the standard Hystrix are straightforward to use.

The events emitted by each HystrixCommand might need a little bit more explanation: Each HystrixCommand can create multiple events, but only one terminal event. The following provides the rate of each event type per command:


irate(hystrix_command_event_total [1m])

The following provides the percentage of the events over all commands:


irate(hystrix_command_event_total [1m]) / ignoring(event) group_left sum(irate(hystrix_command_event_total{terminal='true'} [1m])) by (command_group, command_name, instance, job, terminal)

You can add the following suffix condition to hide all events that never happened in your environment:


... AND hystrix_command_event_total > 0

== DEVELOPMENT

Run ./mvnw package to compile, test and JARs locally.

The most recent development version (based on the master branch on GitHub) is available from the Sonatype OSS Snapshot Repository. To use it, include the following repository in your pom.xml.

To preview the contents in your browser, use the following link: + https://oss.sonatype.org/content/repositories/snapshots/de/ahus1/prometheus/hystrix/prometheus-hystrix/

[source,xml]

snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true ----

== LICENSE

Copyright 2014-2017 SoundCloud, Inc., Alexander Schwartz and Authors

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0[http://www.apache.org/licenses/LICENSE-2.0]

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].