All Projects → RuntimeTools → javametrics

RuntimeTools / javametrics

Licence: Apache-2.0 License
Application Metrics for Java™ instruments the Java runtime for performance monitoring, providing the monitoring data visually with its built in dashboard

Programming Languages

java
68154 projects - #9 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to javametrics

Myperf4j
High performance Java APM. Powered by ASM. Try it. Test it. If you feel its better, use it.
Stars: ✭ 2,281 (+11905.26%)
Mutual labels:  agent, metrics, performance-metrics, performance-visualization, performance-monitoring
Swiftmetrics
Swift Application Metrics instruments the Swift runtime for performance monitoring, providing the monitoring data programatically via an API or visually with an Eclipse Client.
Stars: ✭ 145 (+663.16%)
Mutual labels:  metrics, debug, performance-visualization, performance-monitoring
Spm Agent Mongodb
Sematext Agent for monitoring MongoDB
Stars: ✭ 7 (-63.16%)
Mutual labels:  agent, metrics, performance-metrics, performance-monitoring
Scouter
Scouter is an open source APM (Application Performance Management) tool.
Stars: ✭ 1,792 (+9331.58%)
Mutual labels:  agent, metrics, performance-metrics, performance-monitoring
Appmetrics
Node Application Metrics provides a foundational infrastructure for collecting resource and performance monitoring data for Node.js-based applications.
Stars: ✭ 864 (+4447.37%)
Mutual labels:  metrics, performance-metrics, debug, performance-monitoring
Inspectit
inspectIT is the leading Open Source APM (Application Performance Management) tool for analyzing your Java (EE) applications.
Stars: ✭ 513 (+2600%)
Mutual labels:  agent, metrics, performance-metrics
Pcm
Processor Counter Monitor
Stars: ✭ 1,240 (+6426.32%)
Mutual labels:  performance-metrics, performance-visualization, performance-monitoring
Spm Agent Nodejs
NodeJS Monitoring Agent
Stars: ✭ 51 (+168.42%)
Mutual labels:  agent, performance-metrics, performance-monitoring
Vsphere2metrics
VMware vSphere Performance Metrics Integration with Graphite & InfluxDB
Stars: ✭ 28 (+47.37%)
Mutual labels:  metrics, performance-metrics, performance-monitoring
Nemetric
前端性能指标的监控,采集以及上报。用于测量第一个dom生成的时间(FP/FCP/LCP)、用户最早可操作时间(fid|tti)和组件的生命周期性能,,网络状况以及资源大小等等。向监控后台报告实际用户测量值。
Stars: ✭ 145 (+663.16%)
Mutual labels:  metrics, performance-metrics, performance-monitoring
Opbeat Node
DEPRECATED - See Elastic APM instead: https://github.com/elastic/apm-agent-nodejs
Stars: ✭ 155 (+715.79%)
Mutual labels:  metrics, performance-metrics, performance-monitoring
Stackimpact Java
StackImpact Java Profiler - Production-Grade Performance Profiler: CPU, locks, runtime metrics, and more
Stars: ✭ 7 (-63.16%)
Mutual labels:  agent, performance-metrics
Java Debug Tool
Java dynamic debug tool
Stars: ✭ 26 (+36.84%)
Mutual labels:  agent, debug
Goappmonitor
Golang application performance data monitoring.
Stars: ✭ 478 (+2415.79%)
Mutual labels:  agent, performance-metrics
Stackimpact Nodejs
DEPRECATED StackImpact Node.js Profiler - Production-Grade Performance Profiler: CPU, memory allocations, async calls, errors, metrics, and more
Stars: ✭ 46 (+142.11%)
Mutual labels:  agent, performance-metrics
Stackimpact Go
DEPRECATED StackImpact Go Profiler - Production-Grade Performance Profiler: CPU, memory allocations, blocking calls, errors, metrics, and more
Stars: ✭ 276 (+1352.63%)
Mutual labels:  agent, performance-metrics
Amon
Amon is a modern server monitoring platform.
Stars: ✭ 1,331 (+6905.26%)
Mutual labels:  agent, metrics
Sematext Agent Docker
Sematext Docker Agent - host + container metrics, logs & event collector
Stars: ✭ 194 (+921.05%)
Mutual labels:  agent, metrics
perfmetrics
A library for sending software performance metrics from Python libraries and apps to statsd.
Stars: ✭ 26 (+36.84%)
Mutual labels:  performance-metrics, performance-monitoring
jamonapi
Another repo for jamonapi.com which is primarily hosted on sourceforge
Stars: ✭ 57 (+200%)
Mutual labels:  performance-metrics, performance-monitoring

Build Status codebeat badge codecov Apache 2 Homepage

Application Metrics for Java™

Application Metrics for Java™ instruments the Java runtime for performance monitoring, providing the monitoring data visually with its built in dashboard

The following data collection sources are built-in:

Source Description
Environment Machine and runtime environment information
CPU Process and system CPU
GC Percentage time spent in garbage collection
Memory Java native and non-native memory usage
HTTP HTTP request information

Getting Started

Prerequisites

The Application Metrics for Java agent requires Java version 8.

Releases

Download the latest Application Metrics for Java release zip from Github. This contains:

  • webapp/dashboard/javametrics-dash-x.x.x.war - Javametrics Web Application
  • webapp/prometheus/javametrics-prometheus-x.x.x.war - Javametrics Prometheus Endpoint
  • agent/javametrics-agent-x.x.x.jar - Javametrics agent and required ASM libraries
  • spring/javametrics-spring-x.x.x.jar - Javametrics spring
  • rest/javametrics-rest-x.x.x.war - Javametrics REST api package

Building with Maven

To build with maven

git clone --recursive https://github.com/RuntimeTools/javametrics
cd javametrics
mvn install

To use the agent built locally, you will need to reference the your local javametrics directory when setting the javaagent parameter later in the instructions.

Javametrics is also released on Maven Central with the following artifacts

javametrics-agent
 <groupId>com.ibm.runtimetools</groupId>
 <artifactId>javametrics-agent</artifactId>

javametrics-dash
 <groupId>com.ibm.runtimetools</groupId>
 <artifactId>javametrics-dash</artifactId>

javametrics-prometheus
 <groupId>com.ibm.runtimetools</groupId>
 <artifactId>javametrics-prometheus</artifactId>

javametrics-spring
 <groupId>com.ibm.runtimetools</groupId>
 <artifactId>javametrics-spring</artifactId>

javametrics-rest
 <groupId>com.ibm.runtimetools</groupId>
 <artifactId>javametrics-rest</artifactId>

javametrics-codewind
 <groupId>com.ibm.runtimetools</groupId>
 <artifactId>javametrics-codewind</artifactId>

javametrics-codewind-spring
 <groupId>com.ibm.runtimetools</groupId>
 <artifactId>javametrics-codewind-spring</artifactId>

Websphere Liberty

Unpack the release .zip archive that you downloaded in the previous step.

Javametrics requires a Java option to be set in order to load the agent. A jvm.options file is the best way to configure this for Websphere Liberty. It should contain the following entry, where path_to_javametrics_agent_dir is replaced with the actual path containing the javametrics file:

# Load Javametrics Java agent
-javaagent:<path_to_javametrics_agent_dir>/javametrics-agent-1.8.0.jar

If you have built the agent locally, your path_to_javametrics_agent_dir will need to point to your clone of javametrics. e.g.

-javaagent:<path_to_git_home>/javametrics/javaagent/target/javametrics-agent-1.8.0.jar
  • NOTE, if you move the javametrics-agent to another directory you need to make sure you take the asm folder with it. The asm folder is required for the agent to run as it contains files that the agent needs

Copy the required war files into your Websphere Liberty 'dropins' directory.

  • javametrics-dash-x.x.x.war to use the Javametrics dashboard
  • javametrics-rest-x.x.x.war to use the Javametrics REST api
  • javametrics-prometheus-x.x.x.war to use Prometheus support

The URL for the dashboard consists of the server's default HTTP endpoint plus /javametrics-dash/. E.g. Running locally it might be: http://localhost:9080/javametrics-dash/

The URL for the prometheus endpoint consists of the server's default HTTP endpoint plus the default prometheus metrics path /metrics. E.g. Running locally it might be: http://localhost:9080/metrics/

The URL for the REST API context root consists of the server's default HTTP endpoint plus /javametrics. E.g. Running locally it might be: http://localhost:9080/javametrics/api/v1/collections

Open Liberty

Follow all the steps for Websphere Liberty and in addition, make sure that the websocket-1.0 feature is installed on the server. To do this, open the server.xml for the server in question, and in the <featureManager> tags add the following line

<feature>websocket-1.0</feature>

Spring Boot

To enable Javametrics in a Spring Boot application you need to add an extra annotation to your main application class:

@ComponentScan(basePackages = {"com.ibm.javametrics.spring", "mypackage"})

In a Spring Boot starter project this goes above or below the @SpringBootApplication annotation and you will need to add the package that that class is in to the list of basePackages (in place of mypackage above).

You also need to add the following dependencies to your pom.xml:

<dependency>
    <groupId>com.ibm.runtimetools</groupId>
    <artifactId>javametrics-spring</artifactId>
    <version>1.8.0</version>
</dependency>
<dependency>
    <groupId>com.ibm.runtimetools</groupId>
    <artifactId>javametrics-agent</artifactId>
    <version>1.8.0</version>
</dependency>
<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.json</artifactId>
    <version>1.0.4</version>
</dependency>

Once you have launched your application you will find the dashboard at the server's default HTTP endpoint plus /javametrics-dash/. E.g. running locally with Spring Boot it might be: http://localhost:8080/javametrics-dash/

The URL for the REST API context root consists of the server's default HTTP endpoint plus /javametrics/. e.g. http://localhost:9080/javametrics/api/v1/collections

Apache Tomcat

Coming soon

API Documentation

REST API Documentation

Source code

The source code for Application Metrics for Java is available in the Javametrics Github project.

License

This project is released under an Apache 2.0 open source license.

Versioning scheme

This project uses a semver-parsable X.0.Z version number for releases, where X is incremented for breaking changes to the public API described in this document and Z is incremented for bug fixes and for non-breaking changes to the public API that provide new function.

Version

1.8.0

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].