Prometheus
官网 https://prometheus.io/
github源码:https://github.com/prometheus/prometheus
docker镜像:https://hub.docker.com/r/prom/prometheus
适用范围:
Prometheus使用定时采样,常常用于在服务集群中采集实时监控数据进行图表分析
不适范围:
不能保证100%的数据完整,不适用于高精度要求的统计分析。
四种指标模型
Counter:只增不减的计数器,非常适合请求的个数,任务计数器, 出现的错误个数,产品的统计数等
Gauge:可增可减的仪表盘,可用于即时测量值指标
Histogram:自带buckets区间分布统计图,还提供了所有观测值的和
Summary:客户端定义的数据分布统计图,计算滑动时间窗口上的可配置分位数
Prometheus使用PromQL查询表达式进行数据查询
rate(is_request_counter{service=”/datav/ks”,method=”GET”}[1m])
单位时间内的计数
Prometheus可自定义告警规则进行告警。告警的触发条件是一个查询表达式。告警规则可配置在Prometheus服务端的配置文件中。
Prometheus 采取拉取数据进行数据采集.
其中pushgateway中间数据处理接收数据供server拉取
自带简单的webUI,有更高级图表Grafana,也可自写API调取数据
推送->Alertmanager->pagerduty/mail/etc
Docker方式安装
docker run -d –name prometheus -p 9090:9090 -v ~/prometheus/:/etc/prometheus/ prom/prometheus:V2.4.3
docker run -d –name grafana -p 3000:3000 -v ~/grafana/config/grafana.ini:/etc/grafana/grafana.ini -v ~/grafana/provisioning/:/etc/grafana/provisioning/ -env_file ~/grafana/config.monitoring grafana/grafana:5.2.4
default admin user is admin/admin.
提供数据
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<!--<version>2.1.6.RELEASE</version>-->
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
management:
endpoint:
prometheus: #启用prometheus
enabled: true
endpoints:
web:
exposure:
include: #只对外显示以下信息
- prometheus
- info
- health
放行不用认证
@Configuration
public class ActuatorSecurityConfig extends ResourceServerConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
// 所有的端点状态信息不需要身份认证
.requestMatchers(EndpointRequest.toAnyEndpoint()).permitAll()
// 其它的都需要认证访问
.anyRequest().authenticated();
}
}