All Projects → zrbcool → Pepper Metrics

zrbcool / Pepper Metrics

Licence: apache-2.0
pepper metrics is a tool, it can helps you collect runtime performance use RED method, and then output as log / timeseries data, by default it use prometheus as datasource, grafana as UI

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Pepper Metrics

Swagger Stats
API Observability. Trace API calls and Monitor API performance, health and usage statistics in Node.js Microservices.
Stars: ✭ 559 (+369.75%)
Mutual labels:  prometheus, grafana, performance
Appmetrics
App Metrics is an open-source and cross-platform .NET library used to record and report metrics within an application.
Stars: ✭ 1,986 (+1568.91%)
Mutual labels:  prometheus, grafana, performance
Slo Generator
Easy setup a service level objective using prometheus
Stars: ✭ 91 (-23.53%)
Mutual labels:  prometheus, grafana
Trickster
Open Source HTTP Reverse Proxy Cache and Time Series Dashboard Accelerator
Stars: ✭ 1,306 (+997.48%)
Mutual labels:  prometheus, performance
Superman
Superman是什么:构建Java 高级开发技术的知识体系,从基础不断打怪升级成为超人之路(更新中.......)
Stars: ✭ 106 (-10.92%)
Mutual labels:  dubbo, mybatis
Cloudprober
An active monitoring software to detect failures before your customers do.
Stars: ✭ 1,269 (+966.39%)
Mutual labels:  prometheus, grafana
Jeeplatform
一款企业信息化开发基础平台,拟集成OA(办公自动化)、CMS(内容管理系统)等企业系统的通用业务功能 JeePlatform项目是一款以SpringBoot为核心框架,集ORM框架Mybatis,Web层框架SpringMVC和多种开源组件框架而成的一款通用基础平台,代码已经捐赠给开源中国社区
Stars: ✭ 1,285 (+979.83%)
Mutual labels:  dubbo, mybatis
Springboot Templates
springboot和dubbo、netty的集成,redis mongodb的nosql模板, kafka rocketmq rabbit的MQ模板, solr solrcloud elasticsearch查询引擎
Stars: ✭ 100 (-15.97%)
Mutual labels:  dubbo, mybatis
Citrix Adc Metrics Exporter
Export metrics from Citrix ADC (NetScaler) to Prometheus
Stars: ✭ 67 (-43.7%)
Mutual labels:  prometheus, grafana
Heplify Server
HEP Capture Server
Stars: ✭ 110 (-7.56%)
Mutual labels:  prometheus, grafana
Grafana
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Stars: ✭ 45,930 (+38496.64%)
Mutual labels:  prometheus, grafana
Kubernetes Book
Mastering Kubernetes with Real Life Lessons from Deploying Production Systems
Stars: ✭ 113 (-5.04%)
Mutual labels:  prometheus, grafana
Tarena Java Textbooks
达内 Java 全套教材
Stars: ✭ 75 (-36.97%)
Mutual labels:  mybatis, servlet
Jmeter Elasticsearch Backend Listener
JMeter plugin that lets you send sample results to an ElasticSearch engine to enable live monitoring of load tests.
Stars: ✭ 72 (-39.5%)
Mutual labels:  grafana, performance
Febs Cloud
基于Spring Cloud Hoxton.RELEASE、Spring Cloud OAuth2 & Spring Cloud Alibaba & Element 微服务权限系统,开箱即用。预览地址:https://cloud.mrbird.cn
Stars: ✭ 1,295 (+988.24%)
Mutual labels:  prometheus, grafana
Javaall
这是一个Java开发宝典,所有的Java技术都在这里,用心学习,努力提升!
Stars: ✭ 67 (-43.7%)
Mutual labels:  dubbo, mybatis
Prometheus Course
Course files for Monitoring and Alerting with Prometheus
Stars: ✭ 97 (-18.49%)
Mutual labels:  prometheus, grafana
Ethereum Staking Guide
Ethereum 2.0 Staking Guides
Stars: ✭ 116 (-2.52%)
Mutual labels:  prometheus, grafana
Eshop Soa
EShop基于Dubbo实现SOA服务化拆分,并基于RocketMQ解决了分布式事务(新版SpringBootSOASkeleton)
Stars: ✭ 65 (-45.38%)
Mutual labels:  dubbo, mybatis
Styx
Export Data from Prometheus to csv, gnuplot & matplotlib
Stars: ✭ 66 (-44.54%)
Mutual labels:  prometheus, grafana

Pepper Metrics Project

GitHub stars GitHub followers

Overview

Pepper Metrics基于RED理论,即对每个服务 (这里的服务特指进程中的某种调用,比如调用一次数据库查询)进行RED指标收集,并持久化到数据库,并通过dashboard进行展示,辅助进行性能趋势分析。

Support Us

如果项目对你有帮助,请狠击右上角那个叫Star的按钮,如下图:

或者觉得我们有很多不足,请狠击Issues然后留下你的问题,我们会第一时间回复

Document / WIKI

https://github.com/zrbcool/pepper-metrics/wiki

Features

  • 对Jedis/JedisCluster操作进行性能收集分析
  • 对Http请求进行性能分析
  • 对Mybatis的数据库操作进行性能分析
  • 对Motan/Dubbo的RPC调用进行性能分析(支持调用方及服务方)
  • 对多种时序数据库数据源的支持,目前默认为Prometheus
  • 开箱即用的Grafana Dashboard,方便对历史趋势进行分析
  • 基于SPI的可扩展架构,非常容易开发插件支持更多的开源组件

Who use

酷划在线成立于2014年,是国内激励广告行业的领军者。酷划致力于打造一个用户、广告主、平台三方共赢的激励广告生态体系,旗下产品“酷划锁屏”“淘新闻”分别为锁屏、资讯行业的领跑者。

Quickly Run A Demo Within 10 minutes

请参考独立项目:https://github.com/zrbcool/pepper-metrics-demo
线上Demo:http://blog.zrbcool.top/

Quick Start

以Mybatis集成为例,更多其他请参考:User Guide

  • 增加maven依赖
<dependencies>
    <!-- pepper metrics dependencies -->
    <dependency>
        <groupId>top.zrbcool</groupId>
        <artifactId>pepper-metrics-mybatis</artifactId>
        <version>1.0.11</version>
    </dependency>
    <!-- pepper-metrics datasource use prometheus by default -->
    <dependency>
        <groupId>top.zrbcool</groupId>
        <artifactId>pepper-metrics-ds-prometheus</artifactId>
        <version>1.0.11</version>
    </dependency>
</dependencies>
  • 配置Pepper Metrics定制的Mybatis插件使集成生效
<configuration>
    <typeAliases>
        ...
    </typeAliases>
    <!-- 加入如下配置 -->
    <plugins>
        <plugin interceptor="com.pepper.metrics.integration.mybatis.MybatisProfilerPlugin" />
    </plugins>
    <mappers>
        ...
    </mappers>
</configuration>
  • 日志输出效果:
18:27:28 [perf-mybatis:20190822182728] ---------------------------------------------------------------------------------------------------------------------------------------------------------
18:27:28 [perf-mybatis:20190822182728] | Metrics                                                                     Concurrent Count(Err/Sum)   P90(ms)   P99(ms)  P999(ms)   Max(ms)     Qps | 
18:27:28 [perf-mybatis:20190822182728] | com.pepper.metrics.sample.mybatis.mapper.HotelMapper.selectByCityId                  0         0/1950       0.6       1.4       2.5       3.5    32.5 | 
18:27:28 [perf-mybatis:20190822182728] | sample.mybatis.mapper.CityMapper.selectCityById                                      0         0/1950       0.8       2.4      56.6      56.6    32.5 | 
18:27:28 [perf-mybatis:20190822182728] ---------------------------------------------------------------------------------------------------------------------------------------------------------
  • Prometheus指标输出效果(默认的实现,可以修改为其他数据库)
 ✗ curl localhost:9146/metrics
# HELP app_mapper_summary_seconds_max  
# TYPE app_mapper_summary_seconds_max gauge
app_mapper_summary_seconds_max{class="com/pepper/metrics/sample/mybatis/mapper/CityMapper.xml",operation="sample.mybatis.mapper.CityMapper.selectCityById",} 0.051129036
app_mapper_summary_seconds_max{class="com/pepper/metrics/sample/mybatis/mapper/HotelMapper.xml",operation="com.pepper.metrics.sample.mybatis.mapper.HotelMapper.selectByCityId",} 0.011559611
# HELP app_mapper_summary_seconds  
# TYPE app_mapper_summary_seconds summary
app_mapper_summary_seconds{class="com/pepper/metrics/sample/mybatis/mapper/CityMapper.xml",operation="sample.mybatis.mapper.CityMapper.selectCityById",quantile="0.9",} 5.5296E-4
app_mapper_summary_seconds{class="com/pepper/metrics/sample/mybatis/mapper/CityMapper.xml",operation="sample.mybatis.mapper.CityMapper.selectCityById",quantile="0.99",} 0.001765376
app_mapper_summary_seconds{class="com/pepper/metrics/sample/mybatis/mapper/CityMapper.xml",operation="sample.mybatis.mapper.CityMapper.selectCityById",quantile="0.999",} 0.052424704
app_mapper_summary_seconds{class="com/pepper/metrics/sample/mybatis/mapper/CityMapper.xml",operation="sample.mybatis.mapper.CityMapper.selectCityById",quantile="0.99999",} 0.052424704
app_mapper_summary_seconds_count{class="com/pepper/metrics/sample/mybatis/mapper/CityMapper.xml",operation="sample.mybatis.mapper.CityMapper.selectCityById",} 3040.0
app_mapper_summary_seconds_sum{class="com/pepper/metrics/sample/mybatis/mapper/CityMapper.xml",operation="sample.mybatis.mapper.CityMapper.selectCityById",} 1.45711331
app_mapper_summary_seconds{class="com/pepper/metrics/sample/mybatis/mapper/HotelMapper.xml",operation="com.pepper.metrics.sample.mybatis.mapper.HotelMapper.selectByCityId",quantile="0.9",} 4.4032E-4
app_mapper_summary_seconds{class="com/pepper/metrics/sample/mybatis/mapper/HotelMapper.xml",operation="com.pepper.metrics.sample.mybatis.mapper.HotelMapper.selectByCityId",quantile="0.99",} 0.001308672
app_mapper_summary_seconds{class="com/pepper/metrics/sample/mybatis/mapper/HotelMapper.xml",operation="com.pepper.metrics.sample.mybatis.mapper.HotelMapper.selectByCityId",quantile="0.999",} 0.002881536
app_mapper_summary_seconds{class="com/pepper/metrics/sample/mybatis/mapper/HotelMapper.xml",operation="com.pepper.metrics.sample.mybatis.mapper.HotelMapper.selectByCityId",quantile="0.99999",} 0.012056576
app_mapper_summary_seconds_count{class="com/pepper/metrics/sample/mybatis/mapper/HotelMapper.xml",operation="com.pepper.metrics.sample.mybatis.mapper.HotelMapper.selectByCityId",} 3040.0
app_mapper_summary_seconds_sum{class="com/pepper/metrics/sample/mybatis/mapper/HotelMapper.xml",operation="com.pepper.metrics.sample.mybatis.mapper.HotelMapper.selectByCityId",} 0.772147736
# HELP app_mapper_concurrent_gauge  
# TYPE app_mapper_concurrent_gauge gauge
app_mapper_concurrent_gauge{class="com/pepper/metrics/sample/mybatis/mapper/CityMapper.xml",operation="sample.mybatis.mapper.CityMapper.selectCityById",} 0.0
app_mapper_concurrent_gauge{class="com/pepper/metrics/sample/mybatis/mapper/HotelMapper.xml",operation="com.pepper.metrics.sample.mybatis.mapper.HotelMapper.selectByCityId",} 0.0

Maven dependency

以Mybatis为例,更多其他请参考:User Guide

<dependencies>
    <!-- pepper metrics dependencies -->
    <dependency>
        <groupId>top.zrbcool</groupId>
        <artifactId>pepper-metrics-mybatis</artifactId>
        <version>1.0.11</version>
    </dependency>
    <!-- pepper-metrics datasource use prometheus by default -->
    <dependency>
        <groupId>top.zrbcool</groupId>
        <artifactId>pepper-metrics-ds-prometheus</artifactId>
        <version>1.0.11</version>
    </dependency>
</dependencies>

Building

mvn clean package install -DskipTests

Contact

Special Thanks

感谢作者所在公司酷划在线给作者提供开放的技术环境,并充分支持回馈开源社区项目。

License

Pepper Metrics is released under the Apache License 2.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].