为什么80%的码农都做不了架构师?>>>
##搭建push gateway
version: '2'
services:prometheus:build: .ports:- 9090:9090volumes:- /tmp/prometheus-data:/prometheus-datalinks:- pushgatewaypushgateway:image: prom/pushgatewayports:- 9999:9091
配置从pushgateway采取数据
# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Attach these labels to any time series or alerts when communicating with# external systems (federation, remote storage, Alertmanager).external_labels:monitor: 'codelab-monitor'
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:# - "first.rules"# - "second.rules"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:# The job name is added as a label `job=
##maven
##java config
@Component
public class PrometheusConfig {@AutowiredMetricRegistry dropwizardRegistry;@Value("${spring.application.name}")String applicationName;@Value("${prometheus.pushgateway.host}")String pushHost;@Value("${prometheus.pushgateway.intervalInMillis:10000}")long intervalInMillis;private final CollectorRegistry prometheusRegistry = new CollectorRegistry();@PostConstructpublic void initialize() {DropwizardExports prometheus = new DropwizardExports(dropwizardRegistry);prometheus.register(prometheusRegistry);PushGateway prometheusPush = new PushGateway(pushHost);Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(() -> {try {prometheus.collect();prometheusPush.push(prometheusRegistry, applicationName);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}, 5000, intervalInMillis, TimeUnit.MILLISECONDS);}
}