<commit_before>[![Build Status](https://travis-ci.org/mevdschee/tqdev-metrics.svg?branch=master)](https://travis-ci.org/mevdschee/tqdev-metrics?branch=master)
[![Coverage Status](https://coveralls.io/repos/github/mevdschee/tqdev-metrics/badge.svg?branch=master)](https://coveralls.io/github/mevdschee/tqdev-metrics?branch=master)

# TQdev.com's Metrics

This is a light-weight Java library to measure the behavior of critical components in a production environment.

### Requirements

- Java 8

### Modules

- metrics-core stores your metrics (you always need this module)               |
- metrics-aspectj instruments Java methods aggregated on method name
- metrics-jdbc instruments SQL queries aggregated on prepared statement
- metrics-jetty instruments HTTP requests aggregated on HTTP verb and response status and also instruments current thread counts
- metrics-spring-security instruments Spring requests aggregated on authenticated username
- metrics-spring-webmvc instruments Spring requests aggregated on request path and handler name
- metrics-jvm instruments current JVM system properties
- metrics-sigar _is not implemented yet_
- metrics-influxdb exports metrics to disk (rotated) and HTTP endpoint using the InfluxDB line protocol
- metrics-jmx exports metrics over a JMX connection
- metrics-spring-loaders can be component scanned to load all modules

### Philosophy

Everything is measured as a long integer, being an increasing value (monotonically increasing counter). 
So instead of measuring 10, 10, 10 for a constant value you will have 10, 20, 30.
This way you can get cheap aggregates (at any given resolution), as you don't have to visit every value.<commit_msg>modified README.md<commit_after>[![Build Status](https://travis-ci.org/mevdschee/tqdev-metrics.svg?branch=master)](https://travis-ci.org/mevdschee/tqdev-metrics?branch=master)
[![Coverage Status](https://coveralls.io/repos/github/mevdschee/tqdev-metrics/badge.svg?branch=master)](https://coveralls.io/github/mevdschee/tqdev-metrics?branch=master)

# TQdev.com's Metrics

This is a light-weight Java library to measure the behavior of critical components in a production environment.

### Requirements

- Java 8

### Modules

- metrics-core stores your metrics (you always need this module)
- metrics-aspectj instruments Java methods aggregated on method name
- metrics-jdbc instruments SQL queries aggregated on prepared statement
- metrics-jetty instruments HTTP requests aggregated on HTTP verb and response status and instruments thread counts
- metrics-spring-security instruments Spring requests aggregated on authenticated username
- metrics-spring-webmvc instruments Spring requests aggregated on request path and handler name
- metrics-jvm instruments current JVM system properties
- metrics-sigar _is not implemented yet_
- metrics-influxdb exports metrics to disk (rotated) and HTTP endpoint using the InfluxDB line protocol
- metrics-jmx exports metrics over a JMX connection
- metrics-spring-loaders can be component scanned to load all modules

### Philosophy

Everything is measured as a long integer, being an increasing value (monotonically increasing counter). 
So instead of measuring 10, 10, 10 for a constant value you will have 10, 20, 30.
This way you can get cheap aggregates (at any given resolution), as you don't have to visit every value.
{'fraction_non_alphanumeric': 0.07394156231365534, 'fraction_numerical': 0.007751937984496124, 'mean_word_length': 5.077898550724638, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6826532', 'n_tokens_mistral': 920, 'n_tokens_neox': 857, 'n_words': 358}