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
相关产品推荐
相关产品推荐

