Giter Club home page Giter Club logo

sample.pmi.prometheus.grafana's Introduction

Docker Quickstart for WebSphere Application Server traditional PMI metrics with Prometheus and Grafana

This repository contains a Docker compose file to quickly set up WebSphere Application Server traditional Performance Monitoring Infrastructure (PMI) metrics with Prometheus and Grafana.

The Docker compose file will run the following containers:

  • ibmcom/websphere-traditional:latest
  • prom/prometheus:latest
  • grafana/grafana

Set-up

  1. Clone this repository
  2. Run the following command to build and start the WebSphere Application Server traditional Docker image :
    docker-compose up --build

Notes:

  • The WebSphere Application Server traditional container may take a 1-2 minutes to start up.
  • In order for the DefaultApplication.ear application to work with the metrics.ear application, you must install the PH35521 Interim Fix. Please follow the instructions here on how to install Interim Fixes on your WebSphere Application Server traditional Docker image.

Usage

WebSphere Application Server traditional

The latest version of WebSphere Application Server traditional 9.0.5 will be installed from the Dockerfile, along with the installation of the DefaultApplication.ear and the metrics.ear applications from the <WAS_HOME>/installableApps directory to the application server, using a jython script, that will be running in a container named: twas_metrics

  • Access the Administrative Console at https://localhost:9043/ibm/console/login.do?action=secure
    • Note: The login credentials for the Admin Console is as follows :
      • User ID: wsadmin
      • Password: A generated password, which can be retrieved from the running container using the following command: docker exec twas_metrics cat /tmp/PASSWORD
  • Visit the sample Snoop Servlet from the DefaultApplication.ear application to generate PMI Web Application Module metrics : http://localhost:9080/snoop
  • Visit the Prometheus metrics endpoint to view the PMI metrics from the running WebSphere Application Server traditional container in Prometheus format : http://localhost:9080/metrics

Prometheus

The configuration for Prometheus is done via a file called prometheus.yml, which tells it where to scrape the metrics from and how long the interval should be between each scrape. The following prometheus configuration is set for this sample, where the scrape_configs section has one job called was_nd. In this job, prometheus is configured to scrape the twas:9080/metrics endpoint every 15 seconds, which is from the running twas_metrics container.

prometheus.yml

# my global config
global:
  scrape_interval: 30s # Set the scrape interval to every 30 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'was-nd'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    scrape_interval: 15s
    static_configs:
      - targets: ['twas:9080']
  • Access the Prometheus Server UI: http://localhost:9090
    • Verify under the Status->Targets, to see if Prometheus can successfully connect to the configured metrics endpoint from the running twas_metrics container. Targets

Grafana

The Prometheus datasource will be automatically preconfigured for you, when the grafana container is started, which will configure Grafana to connect to the prometheus container (http://localhost:9090), to collect the metrics for visualization (see datasource.yml). A sample WebSphere Application Server PMI metrics Dashboard is also imported to the running grafana container (see dashboards.yml and WebSphere Application Server PMI Metrics Dashboard-rev2.json. This dashboard leverages the Prometheus formatted metric data to visualize CPU, Memory Heap, Servlets, EJBs, Connection Pool, SIB, Sessions, Threadpool, Garbage Collection, and other JVM metrics of the entire cell. This dashboard can also be found here on the official Grafana.com website with dashboard ID : 14151.

  • Access the Grafana UI: http://localhost:3000
    • Use the following credentials to login to Grafana :
      • Username: admin
      • Password: admin
  • Visualize the WebSphere Application Server traditional PMI metrics, by clicking on the imported WebSphere Application Server PMI Metrics Dashboard, in the Dashboard section.
    • If you expand the Servlets section, you can view the corresponding Web Application Module PMI metrics for the sample Snoop Servlet, we installed in our WebSphere Application Server traditional (twas_metrics) container. Dashboard

Uninstall

  • To stop the containers, run the following command :
    docker-compose down

Resources

  • For more information on using the metrics application to display PMI metrics in Prometheus format, visit here.
  • Find more information on the WebSphere Application Server traditional Docker image here.
  • For more information on Prometheus, visit here.
  • For more information on Grafana, visit here.

sample.pmi.prometheus.grafana's People

Contributors

pgunapal avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.