当前位置: 首页 > 知识库问答 >
问题:

如何输出Apache Camel指标,如指标:计时器:simple.timer普罗米修斯使用微米格式与 /actuator/prometheus

鲁宏爽
2023-03-14

根据Camel的度量文档,我想在一条路线上测量2个不同的计时器:

  @Override
    public void configure() {
        from(
                getMqttRouteConfiguration(
                        sourceId, mqttHost, mqttTopic, mqttPort, mqttProtocol, authenticated,
                        username, password, mqttVersion, maxReadRate, qualityOfService
                )
        )
                .to("metrics:timer:simple.timer1?action=start") //here starts the first one
                .to("log:camel.proxy?level=INFO&groupInterval=500000")
                .to("metrics:counter:simple.counter")
                .to(String.format("kafka:%s?brokers=%s", sourceId, kafkaBrokerUrls))
                .to("metrics:timer:simple.timer1?action=stop") //here ends the first one
                .to("metrics:timer:simple.timer2?action=start") //here starts the second one
                .process(new Processor() {
                    @Override
                    public void process(Exchange exchange) throws Exception {
                        exchange.getIn().setBody(exchange.getIn().getBody(String.class));
                        exchange.getIn().setHeader("CamelCacheKey", sourceId);
                        exchange.getIn().setHeader("CamelCacheOperation", "Update");
                    }
                })
                .to(String.format("cache://%s?maxElementsInMemory=10&eternal=true", sourceId))
                .to("metrics:timer:simple.timer2?action=stop") //here ends the second one
                .routeId(sourceId);
    }

即从路线的两个不同部分获取2个计时器,而不是整个路线统计,例如

CamelRoutePolicy_seconds_count{camelContext="camel-1",failed="false",routeId="ESP_01.Handle_Movement",serviceName="MicrometerRoutePolicyService",} 137.0
CamelRoutePolicy_seconds_sum{camelContext="camel-1",failed="false",routeId="ESP_01.Handle_Movement",serviceName="MicrometerRoutePolicyService",} 1.200024598

因为它是为整个路线自动计算的。微米格式度量输出到/执行器/普罗米修斯以获取CamelRoutePolicy_seconds_的设置取自以下问题:将Apache Camel Actuator度量发送到普罗米修斯

但是,我的期望是自定义指标指标:计时器:简单.timer2指标:计时器:简单.timer1也将在此处并显示在CamelRoutePolicy_seconds_

但事实并非如此。为了得到它,我应该设置什么?

共有1个答案

公沈义
2023-03-14

因此,长话短说:Apache Camel的度量组件与Micrometer不同

我需要千分尺。所以,在所有路由中,我都必须将metrics:替换为microeter:并且一切正常。还请考虑依赖项(看起来两者都需要):

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-micrometer-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-micrometer</artifactId>
        <version>${camel.version}</version>
    </dependency>
 类似资料:
  • 我要监控的应用程序为健康检查提供了一个apiendpoint,该endpoint使用json中的指标进行响应。例如: 我已经设置了Prometheus blackbox\u exporter,以监视此endpoint是否返回200 Ok,但理想情况下,我也希望获得这些指标。我知道instrumentation直接从应用程序导出这些数据。但是,由于应用程序已经在导出json对象中我想要的内容,我更希

  • 我正在使用带Spring靴2的SCDF。x metrics和SCDF metrics collector从我的Spring Boot应用程序收集指标。我真的不理解收集器关于聚合度量(aggregateMetrics)数据的逻辑。 当我获取为我的流收集的指标列表时,我只有以开头的指标,因此我只有平均值。我尝试了所有方法来查看其他指标,就像endpoint公开的指标一样。 我想我误解了指标的聚合方式。

  • 我试图使用现有的Prometheus(集群外部)从EKS集群内部聚合所有的指标,EC2(CPU、ram、disk)和POD(CPU、ram、disk)。我开始使用node-exporter、kube-state-metrics添加数据,但我一直坚持部署metrics-server。使用helm I conf并安装它,和正在提取数据,但是有人能告诉我如何将所有这些都提取到外部的Prometheus吗

  • 我使用掌舵图普罗米修斯-社区/库贝-普罗米修斯-堆栈安装了普罗米修斯操作员设置。有人能解释一下为什么度量标准有差异吗?因为prometheus和kubernetes仪表板都使用kube-state-metrics。哪一个更好用?

  • 我是从蝗虫出口商那里来的。所以我安装了它,并按照文档中所述的步骤进行操作,然后运行commmand hocust_exporter.py 1234 localhost:8089,其中1234是一个端口。但它也犯了一些错误。 处理来自('127.0.0.1',11950)回溯(最后一次调用)的请求时发生异常:文件“E:\Python\lib\socketserver.py”,第650行,进程中请求线