Prometheus agent jmx-exporter配置http接口和数据库连接池监控

Prometheus是一个非常流行开源的系统监控和报警系统,常见的使用方式有两种,一种是和micrometer(侵入式)集成,另外一种就是使用jmx-exporter这个agent(非侵入式)。本文主要介绍这两种使用方式的集成以及http接口和druid的监控配置。

集成

micrometer和prometheus的集成引入以下依赖即可

<dependency>
  <groupId>io.micrometer</groupId>
  <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

同时jmx-exporter预留了jmx这个扩展点,只要我们将监控信息注册成mbean那么jmx也能采集到相关信息,micrometer已经做好了这部分工作我们引入以下依赖即可

<dependency>
  <groupId>io.micrometer</groupId>
  <artifactId>micrometer-registry-jmx</artifactId>
</dependency>

完成上面两部分工作后prometheus和jmx相关的集成就结束了,http接口和druid的指标也会被采集到

监控配置

这里我先提供一份标准配置,着急的小伙伴可以直接拿去实验

---
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false
whitelistObjectNames: ["java.lang:type=OperatingSystem", "com.alibaba.druid:*", "metrics:name=httpServerRequests*,type=timers"]
rules:
 - pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):'
   name: os_$1
   type: GAUGE
   attrNameSnakeCase: true
 - pattern: 'com.alibaba.druid<type=DruidDataSource, id=(\d+)><>(\w+)'
   name: datasource_connection_pool_$1_$2
   type: GAUGE
   attrNameSnakeCase: true
 - pattern: 'metrics<name=httpServerRequests.application.(.*).exception.(.*).method.(.*).outcome.(.*).status.(.*).uri.(.*), type=timers><>(.*):(.*)'
   name: http_server_requests_$7
   type: GAUGE
   labels: 
     application: $1
     exception: $2
     method: $3
     outcome: $4
     status: $5
     url: $6
   attrNameSnakeCase: true

上面第一个pattern是系统指标,第二个pattern则是druid的指标信息,第三个pattern是http接口的指标信息,pattern本身其实是一个正则表达式,依赖正则表达式会将原指标拆分成多个块,这个块可以通过$引用从而达到自定义name和label的目的。

attrNameSnakeCase是指将特殊字符都转成下划线,建议使用true。

示例

原始的指标name:

metrics<name=httpServerRequests.application.c2f-boot-demo.exception.None.method.GET.outcome.SUCCESS.status.200.uri./user/page, type=timers><>50thPercentile

pattern

metrics<name=httpServerRequests.application.(.*).exception.(.*).method.(.*).outcome.(.*).status.(.*).uri.(.*), type=timers><>(.*):(.*)

pattern会将name切割成多份,使用这些信息就能自定义name和label

http指标

关键性指标有调用数、最大rt和最小rt,以及rt的50线、75线、95线、98线、99线、999线。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Windows上配置Prometheus的process-exporter,可以按照以下步骤进行操作: 1. 下载process-exporter的Windows版本,可以从process-exporter的官方GitHub页面上下载:https://github.com/ncabatoff/process-exporter/releases 2. 将下载的可执行文件解压缩到一个合适的目录中,例如C:\Program Files\process-exporter。 3. 编写一个process-exporter配置文件,指定需要监控的进程以及相关参数,例如: ``` process_names: - firefox.exe - chrome.exe windows_exporter: log_queries: true ``` 将该配置文件保存为process-exporter.yml。 4. 在Prometheus配置文件prometheus.yml中添加以下内容,以启用process-exporter: ``` scrape_configs: - job_name: 'process-exporter' static_configs: - targets: ['localhost:9256'] ``` 注意,process-exporter默认监听端口9256。 5. 保存并重新启动Prometheus和process-exporter。 现在,Prometheus就可以监控Windows上的进程了。可以通过Prometheus的web界面来查看相关的指标,并使用PromQL语言进行查询和分析。例如,可以使用以下查询来查看chrome.exe的CPU使用率: ``` 100 * (1 - avg by (instance)(rate(process_cpu_seconds_total{process_name="chrome.exe"}[5m]))) ``` ### 回答2: 配置Prometheus的process-exporter可以通过以下步骤完成: 1. 首先,从Process Exporter的GitHub页面(https://github.com/ncabatoff/process-exporter)下载最新版本的二进制文件。根据操作系统的类型,选择对应的二进制文件,例如Windows选择`.exe`文件。 2. 将下载的二进制文件解压缩到一个适当的位置,例如C:\process-exporter。 3. 在解压缩目录中创建一个名为`process-exporter.yml`的配置文件,该文件将定义要监控的进程列表和其他选项。 4. 在配置文件中指定要监控的进程。例如,可以在`process_names`部分添加以下行来监控一个名为`my_process`的进程: ```yaml process_names: - my_process ``` 你也可以添加多个进程名称,按需监控。 5. 配置Prometheus以收集process-exporter的指标。在Prometheus配置文件(prometheus.yml)中添加以下具有适当地址和端口的`scrape_configs`部分: ```yaml scrape_configs: - job_name: 'process_exporter' static_configs: - targets: ['localhost:9256'] ``` 这将告诉Prometheus在本地主机上的9256端口上收集来自process-exporter的指标。 6. 保存并关闭Prometheus配置文件。 7. 打开一个命令提示符窗口,并导航到process-exporter的解压缩目录。 8. 在命令提示符中运行以下命令启动process-exporter: ```bash process-exporter.exe --config.path=process-exporter.yml ``` 9. 确保Prometheus服务器正在运行,然后重新加载配置文件。 10. 访问Prometheus的Web界面,并导航到“Targets”选项卡。您应该看到一个名为`process_exporter`的目标显示为"UP",表示process-exporterPrometheus之间的连接正常。 11. 接下来,您可以在Prometheus中使用适当的查询来检索和可视化process-exporter提供的指标数据。 通过按照以上步骤配置和启动process-exporter,您将能够监控和收集有关指定进程的性能指标,并将其集成到Prometheus监控系统中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值