Pepper Metrics - Spring / Spring Boot application performance monitoring tool

About the project

Pepper Metrics is My colleagues and I developed an open source tool ( github.com/zrbcool/pep... ), which was collected by jedis / mybatis / httpservlet / dubbo / motan operating performance statistics, and to expose timing prometheus other mainstream database compatibility data, by grafana show trends. Of its plug-in architecture is very user-friendly extensions and other integrated open source components.
Please give a star, while welcome to become a developer to submit PR together to improve the project.

Architecture

Pepper Metrics project from the core, the basis Tom Wilkie's RED theory that for each service (especially service of process here in some kind of call, such as calling a database query) RED indicators were collected, including:

  • Rate Penalty (request rate generally refers QPS)
  • Errors (number of errors or error rate per unit time window)
  • DURATION (request time consumed generally PXX percentile time representation, such as P99 = 100ms request on behalf of ninety-nine percent of the time-consuming X ms)

The above outlines the core ideas and methodologies based on Pepper Metrics project, and technically, Pepper Metrics project to build a complete set of plug-pluggable system so that applications can be selected based components (such as RPC communications framework dubbo, motan , ORM mapping relationship between the object model framework mybatis, standard HTTP Servlet assembly, Redis manipulation library jedis, etc.) directly select an existing plug-in extension of the index includes:

  • collect
  • Print (designed based on the output timing of the log based slf4j standard format)
  • Output (for a variety of databases, the default in order to achieve prometheus, prometheus in the output index to)
  • Visualization (based dashboard grafana developed to default prometheus as a data source)

Concept

Architecture

Each Component Description

  • Profiler, the core part of regularly scheduled tasks to start and load all ScheduledRun expanded by ExtensionLoad, initiated in accordance with the schedule specified period. At the same time internal maintenance Stats constructor Profiler.Builder
  • Scheduler, a virtual concept, as there is a regular task in Profiler
  • Cornerstone ExtensionLoader, a very important component, load the plug by Java SPI mechanisms, so that each module of the project can be flexible plug, also project architecture
  • ScheduledRun, extension point: pepper metrics core regularly scheduled pass all Stats, plug-ins may be used to achieve the performance data collected among Stats, scheduled printer assembly is now implemented
  • MeterRegistryFactory, extension point: Registry of different micrometer based implementation of the abstract and the difference of each database shield
  • Pepper Metrics X, specific integration, our goal is to measure everything, the current plan is implemented: jedis, motan, dubbo, servlet, mybatis etc. The most common components

Written in the last

Guess you like

Origin juejin.im/post/5d70fae8f265da03934c015e