Skip to content

marcelmay/apache-oozie-exporter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prometheus Apache Oozie Exporter

Maven Central | Docker Hub

Exports Apache Oozie metrics for Prometheus including

  • Oozie internal instrumentations/metrics, such as
    • database connection stats
    • JPA stats
    • Oozie commands - such as purging - and internal queue stats

The exporter uses the Oozie API for fetching the metrics, and generifies/normalizes these. As an example, the Oozie counter metrics such as jvm.pause.info-threshold get mapped to oozie_counter_total{counter_group="jvm",counter_type="pause.info.threshold"}.

Note: Oozie 4.3+ supports exposing metrics via JMX , so you might want to try plain jmx_exporter instead.

Note: If you're interested in Oozie Job Event metrics, have a look at Oozie Prometheus Job Event Listener.

Requirements

For building:

  • JDK 8
  • Maven 3.5.x
  • Docker 1.6+ (only required if building docker image)

For running:

  • JRE 8 for running
  • Access to Oozie API via HTTP(S)
  • Docker 1.6+ (only required when running docker image)

Tested Oozie versions:

  • 4.2.0

Downloading

Available on Maven Central and as docker image on Docker Hub.

Building

mvn clean install

Installation and configuration

  • Install JAR

  • Run the exporter

    • Usage options
      > java -jar oozie-exporter.jar
    
     Usage: WebServer <OPTIONS>
    
     OPTIONS:
      -web.listen-address=[<hostname>:]<port>  Exporter listener address
      -oozie.url=<Oozie API Url>               Oozie API oozieApiUrl, eg http://localhost:11000/oozie
      [-oozie.user=<USER>]                     Oozie API user for authentication
      [-oozie.password=<PWD>]                  Oozie API password for authentication
      [-oozie.password.env=<ENV VAR>]          Env var containing Oozie API password for authentication
      [-skipHttpsVerification]                 Skip SSL/TLS verification for Oozie HTTPS URL
      [-Dlog.level=[DEBUG|INFO|WARN|ERROR]]    Sets the log level. Defaults to INFO
    
    
    • Run exporter
    > java -Xmx128m -server \
           -jar oozie-exporter.jar \
           -web.listen-address=localhost:7772 \
           -oozie.url=http://localhost:11000/oozie
    
  • Test the exporter
    Open http://<HOSTNAME>:<PORT>/metrics or http://<HOSTNAME>:<PORT>/ (for configuration overview)

  • Add to prometheus

    - job_name: 'oozie_exporter'
        scrape_interval: 15s
        static_configs:
          - targets: ['<oozie exporter hostname>:<oozie exporter port>']
            labels:
              ...
    

Example output

Example home output

Home output

Example metrics

Here's the example output from a standalone default Oozie:

TODO

License

This Apache Oozie Exporter is released under the Apache 2.0 license.

Copyright 2017-2018 Marcel May  

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

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.