import com.codahale.metrics.MetricRegistry;
import io.prometheus.client.CollectorRegistry;
import io.prometheus.client.dropwizard.DropwizardExports;
import io.prometheus.client.exporter.MetricsServlet;
import io.prometheus.client.hotspot.DefaultExports;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;

public class PrometheusReporter {

//创建Server,加载Connectors,加载handlers,加载Servlets等,启动服务start,最后加入服务器join。
//webappcontext 继承于servletContextHandler,servletContextHandler继承于contexthandler
//server 用于存储handler,handler分很多种,此处是servlet 运行在servletcontext 中,servlet 的工作是由handler来指挥和安排,handler是听从于外界的web 请求

//当外界web 请求过来时,首先接到这个请求的是handler,contexthandler 会根据请求的path找到and交由内部对应的servlet 来处理

//serlvet的存在和创建(即需要以下步骤完成的情况下才可能存在):包括创建server ,设置server端口,创建context ,设置contextpath,设置contexthandler

//添加servlet :需serlvet的存在和创建下可以操作的

public static void start( MetricRegistry registry ) throws Exception {

// Hook the Dropwizard registry into the Prometheus registry
// via the DropwizardExports collector.

//启动汽车前,先把汽车的监控连接到对的监控视屏上,方便监控视频可以采集到汽车的数据
CollectorRegistry.defaultRegistry.register(new DropwizardExports(registry));

// Expose Prometheus metrics.
Server server = new Server(9404);//将自己的端口设置为9094
ServletContextHandler context = new ServletContextHandler();//声明一个context
context.setContextPath("/");////设置contextPath
server.setHandler(context);//设置handler
context.addServlet(new ServletHolder(new MetricsServlet()), "/metrics");//指定servlet和servlet匹配的url
//context.addServlet(new ServletHolder(new MetricsServlet()), "/hhh");
DefaultExports.initialize();
// Start the webserver.
server.start();
server.join();
}
}

prometheus的agent 二次开发代码参考的更多相关文章

  1. kettle工具二次开发-代码启动JOB

    kettle工具是一款优秀的数据同步.数据处理的BI工具,收到了很多人的青睐.kettle软件通过可视化的图标可以让我们很轻易的能完成数据同步.处理的开发工作.但是使用kettle可视化界面在跑JOB ...

  2. ARCGIS 二次开发可以参考的资源(长期更新)

    背景: 今天,被领导教导,说是你刚入职,要尽快把项目做起.言语忠恳,而且说不要再在电脑上练习那些小的测试例子了,要直接切入项目,熟悉项目的开发框架,与设计理念.得到,我的负责人(TB)把他做的项目的资 ...

  3. Jmeter二次开发代码(3)

    package org.apache.jmeter.functions; import java.io.FileInputStream;import java.io.FileNotFoundExcep ...

  4. Jmeter二次开发代码(2)

    /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreem ...

  5. Jmeter二次开发代码(1)

    package org.apache.jmeter.functions; import java.util.Collection;import java.util.LinkedList;import ...

  6. ODI KM二次开发手册

    ODI KM二次开发手册   分类: ODI(16) 目录(?)[+] 1 引言 1.1 编写目的 本手册面向的读者对象为具备数据集成业务知识及对ODI操作了解的开发人员,作为其完成基于ODI基础上K ...

  7. Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)

    Revit二次开发环境搭建(Revit 2019+Visual Studio 2017)准备内容 Revit 2019开发环境的搭建,需要安装的内容如下: Revit 2019(主要的开发环境) Vi ...

  8. 基于spring-boot的社区社交微信小程序,适合做脚手架、二次开发

    基于spring-boot的社区社交微信小程序,适合做脚手架.二次开发 代码地址如下:http://www.demodashi.com/demo/13867.html 1 概述 笔者做的一个后端基于s ...

  9. Linux内核启动代码分析二之开发板相关驱动程序加载分析

    Linux内核启动代码分析二之开发板相关驱动程序加载分析 1 从linux开始启动的函数start_kernel开始分析,该函数位于linux-2.6.22/init/main.c  start_ke ...

随机推荐

  1. 余额表前后台操作和对应sql

    发生额的含义:产生于账行表. gl_je_lines账行表——>借贷(会产生额度,即发生额) —————————————————————————— gl_balances余额表: 余额   =  ...

  2. Docker学习笔记之在开发环境中使用服务发现

    0x00 概述 服务发现应用是很多服务化系统的组成部分,所以在开发.测试环境中也就有必要配备一套服务发现体系来配合我们的开发.测试工作.在这一小节里,我们就来谈谈如何在 Docker 环境下部署服务发 ...

  3. windows下使用命令行运行PHP

    之前一直想,在命令行下能不能运行PHP程序,像C语言一样可以通过命令行拿到参数.今天尝试了一下发现可感觉挺有意思的,平时写着程序玩的时候就可以这样用,下面让咱么来看看怎么做的.我的环境是 php5.6 ...

  4. 【Logstash系列】使用Logstash作为收集端采集IIS日志

    现阶段Logstash在Windows端的日志采集一直存在若干问题,包括:   1. LS有读锁:进程开启后Input指定路径下的所有文件都会被锁死无法重命名或删除. 2. LS不识别*:如果在pat ...

  5. GitHub客户端使用

    GitHub客户端使用 我们今天先讲解一下Github for windows(客户端)的使用方法,之后我们会以一个实例一步一步的来讲解Github. Github for windows(客户端)是 ...

  6. debug代码时遇到循环时提高效率方法

    在循环时,需要查看uid=uid=12007255时的代码执行情况 可以在循环代码中加入 if((Long)map.get("uid") == 12007255){ System. ...

  7. 20145221高其_Final

    20145221高其_Final 免考题目 密码保密与信息安全大赛--网络攻防 免考内容 CTF简介 CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人 ...

  8. 牛客网校招全国统一模拟笔试(二月场)- Java方向

    1.请问下面关于与wait()一起使用的方法notify()的各种陈述,哪个正确? A 多个线程同时等待某个条件,则只有等待时间最长的哪个线程被通知 B 多个线程同时等待某条件,则没有办法预测哪个线程 ...

  9. 使用svn导入项目

    打开eclipse工作平台点击“File”-->import如下图:   在项目导入框中找到SVN选择“从SVN检出项目”然后点击“下一步”,出现如下界面:   在上图界面中选择“创建新的资源库 ...

  10. Bootstrap3基础 pagination 分页按钮 简单示例

      内容 参数   OS   Windows 10 x64   browser   Firefox 65.0.2   framework     Bootstrap 3.3.7   editor    ...