티스토리 뷰

개발

prometheus jmx_exporter 오류

달리는개발자 2020. 11. 2. 13:04

JMX Beans 정보를 prometheus에서 보기 위해서 설정 중 오류입니다.

github.com/prometheus/jmx_exporter

 

prometheus/jmx_exporter

A process for exposing JMX Beans via HTTP for Prometheus consumption - prometheus/jmx_exporter

github.com

 

config.yaml 생성

---
startDelaySeconds: 0
hostPort: 127.0.0.1:1234
username: 
password: 
jmxUrl: service:jmx:rmi:///jndi/rmi://127.0.0.1:1234/jmxrmi
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false
whitelistObjectNames: ["org.apache.cassandra.metrics:*"]
blacklistObjectNames: ["org.apache.cassandra.metrics:type=ColumnFamily,*"]
rules:
  - pattern: 'org.apache.cassandra.metrics<type=(\w+), name=(\w+)><>Value: (\d+)'
    name: cassandra_$1_$2
    value: $3
    valueFactor: 0.001
    labels: {}
    help: "Cassandra metric $1 $2"
    cache: false
    type: GAUGE
    attrNameSnakeCase: false

 

아래와 같이 실행

java -javaagent:./jmx_prometheus_javaagent-0.14.0.jar=8080:config.yaml -jar yourJar.jar

 

오류

At most one of hostPort and jmxUrl must be provided

github.com/prometheus/jmx_exporter/blob/add7897f513f3981f91f013cd7f3617a532c7b79/collector/src/main/java/io/prometheus/jmx/JmxCollector.java#L140

 

prometheus/jmx_exporter

A process for exposing JMX Beans via HTTP for Prometheus consumption - prometheus/jmx_exporter

github.com

        if (yamlConfig.containsKey("hostPort")) {
          if (yamlConfig.containsKey("jmxUrl")) {
            throw new IllegalArgumentException("At most one of hostPort and jmxUrl must be provided");
          }
          cfg.jmxUrl ="service:jmx:rmi:///jndi/rmi://" + (String)yamlConfig.get("hostPort") + "/jmxrmi";
        } else if (yamlConfig.containsKey("jmxUrl")) {
          cfg.jmxUrl = (String)yamlConfig.get("jmxUrl");
        }

 

해결

위의 config.yaml 파일 중 hostPort를 설정했으면 jmxUrl을 주석처리 합니다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함