В новой версии prometheus/jmx_exporter можно сохранять текстовые поля как labels.
Называется такая функциональность attributesAsLabels.
Например, есть у нас MBean в котором есть текстовые поля Build и Version. Так как у них тип String и так как это Attributes в MBean, а не часть имени, их ранее нельзя было удобно обработать через jmx-exporter
Но в разрабатываемой сейчас версии jmx-exporter появился механизм сохранения полей как меток
Например, можно написать так как описано в issue
🔗 https://github.com/prometheus/jmx_exporter/issues/1147
includeObjectNames: ["jetbrains.youtrack:type=Maintenance,name=Global"]
metricCustomizers:
- mbeanFilter:
domain: jetbrains.youtrack
properties:
type: Maintenance
name: Global
attributesAsLabels:
- Build
- Version
extraMetrics:
- name: isActive
value: true
Текущий релиз jmx-exporter 1.1.0, в нем пока нет этих возможностей
Можно из главной ветки собирать версию и использовать ее в своих контейнерах
FROM maven:3.9.9-eclipse-temurin-21-jammy
# поставить git
RUN apt-get update && apt-get install -y git
# склонировать репу
RUN git clone https://github.com/prometheus/jmx_exporter.git /tmp/jmx_exporter
# собрать
WORKDIR /tmp/jmx_exporter
RUN mvn -DskipTests=true package
# подготовить каталог
RUN mkdir /opt/app/
# сохранить результат сборки
RUN cp /tmp/jmx_exporter/jmx_prometheus_javaagent/target/jmx_prometheus_javaagent-*-post.jar /opt/app/jmx_prometheus_javaagent.jar
# ——————
FROM jetbrains/youtrack:2025.1.62967
USER root
# подготовить каталог
RUN mkdir /opt/app/
# скопировать файл из стадии № 0
COPY --from=0 /opt/app/jmx_prometheus_javaagent.jar /opt/app/jmx_prometheus_javaagent.jar
RUN chown -R jetbrains:jetbrains /opt/app/
USER jetbrains
Стал это использовать — все работает, есть и некоторые особенности. Если нужна будет помощь, напишите в чате https://t.me/qa_load/96303/153200
@qaload
