You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Karaf 4.4.3+Camel集成Prometheus:如何暴露指标供其读取

在Apache Karaf 4.4.3 + Apache Camel中开放Prometheus指标端点

1. 安装依赖组件

Karaf作为OSGi环境,需先安装Prometheus的Micrometer注册表及HTTP相关组件:

  • 打开Karaf控制台,执行命令安装Prometheus注册表:
    feature:install micrometer-registry-prometheus
    
  • 确保Pax Web HTTP特性已安装(Karaf默认通常已包含,缺失则补装):
    feature:install pax-web-http
    

2. 配置Prometheus指标Servlet

要让Prometheus通过HTTP拉取指标,需注册对应的Servlet。在Karaf的etc目录下创建或修改org.ops4j.pax.web.cfg文件,添加以下配置:

# 注册Prometheus Metrics Servlet
org.osgi.service.http.whiteboard.servlet.name=prometheus-metrics
org.osgi.service.http.whiteboard.servlet.pattern=/prometheus
org.osgi.service.http.whiteboard.servlet.init-param.registry-name=io.micrometer.prometheus.PrometheusMeterRegistry

该配置会将Prometheus指标暴露在/prometheus路径下。

3. 关联Camel指标到Prometheus Registry

让Camel的micrometer组件使用Prometheus的指标注册表:

  • 修改etc/org.apache.camel.micrometer.cfg配置文件,添加:
    camel.micrometer.registry-type=prometheus
    
  • 若配置文件方式不生效,可通过Blueprint XML手动绑定(在你的Camel路由蓝图中添加):
    <bean id="prometheusRegistry" class="io.micrometer.prometheus.PrometheusMeterRegistry">
        <constructor-arg>
            <bean class="io.micrometer.prometheus.PrometheusConfig" factory-method="DEFAULT"/>
        </constructor-arg>
    </bean>
    
    <bean id="micrometerRoutePolicy" class="org.apache.camel.component.micrometer.routepolicy.MicrometerRoutePolicy">
        <property name="registry" ref="prometheusRegistry"/>
    </bean>
    
    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
        <routePolicy ref="micrometerRoutePolicy"/>
        <!-- 你的路由定义 -->
    </camelContext>
    

4. 验证端点可用性

启动Karaf后,访问http://<你的Karaf主机IP>:8181/prometheus(默认HTTP端口为8181),若能看到Prometheus格式的指标文本,即为配置成功。若修改过Pax Web端口,需对应调整访问地址。


内容的提问来源于stack exchange,提问作者swipppp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 22:47:22