Skip to content

Commit fbef69d

Browse files
author
Chance Zibolski
committed
Dockerfile*: Add Prometheus JMX agent
1 parent dd59d76 commit fbef69d

File tree

3 files changed

+29
-2
lines changed

3 files changed

+29
-2
lines changed

Dockerfile

+7-2
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,10 @@ COPY README.txt /build/README.txt
4545

4646
ENV CMAKE_C_COMPILER=gcc CMAKE_CXX_COMPILER=g++
4747

48-
WORKDIR /build
49-
RUN scl enable rh-maven33 'mvn -B -e -Dtest=false -DskipTests -Dmaven.javadoc.skip=true clean package -Pdist,native -Dtar'
48+
# build hadoop
49+
RUN scl enable rh-maven33 'cd /build && mvn -B -e -Dtest=false -DskipTests -Dmaven.javadoc.skip=true clean package -Pdist,native -Dtar'
50+
# Install prometheus-jmx agent
51+
RUN scl enable rh-maven33 'mvn dependency:get -Dartifact=io.prometheus.jmx:jmx_prometheus_javaagent:0.3.1:jar -Ddest=/build/jmx_prometheus_javaagent.jar'
5052

5153
FROM centos:7
5254

@@ -73,9 +75,12 @@ ENV HADOOP_HOME=/opt/hadoop
7375
ENV HADOOP_LOG_DIR=$HADOOP_HOME/logs
7476
ENV HADOOP_CLASSPATH=$HADOOP_HOME/share/hadoop/tools/lib/*
7577
ENV HADOOP_CONF_DIR=/etc/hadoop
78+
ENV PROMETHEUS_JMX_EXPORTER /opt/jmx_exporter/jmx_exporter.jar
7679
ENV PATH=$HADOOP_HOME/bin:$PATH
7780

81+
COPY --from=build /build/jmx_prometheus_javaagent.jar $PROMETHEUS_JMX_EXPORTER
7882
COPY --from=build /build/hadoop-dist/target/hadoop-$HADOOP_VERSION $HADOOP_HOME
83+
7984
# remove unnecessary doc/src files
8085
RUN rm -rf ${HADOOP_HOME}/share/doc \
8186
&& for dir in common hdfs mapreduce tools yarn; do \

Dockerfile.rhel

+13
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,17 @@ RUN mkdir -p $(dirname $HADOOP_OUT) && \
2626
&& mv /tmp/hadoop-${HADOOP_VERSION}.redhat-${RH_HADOOP_PATCH_VERSION}/ \
2727
$HADOOP_OUT
2828

29+
ENV PROMETHEUS_JMX_EXPORTER_VERSION 0.3.1
30+
ENV RH_PROMETHEUS_JMX_EXPORTER_PATCH_VERSION 00006
31+
ENV RH_PROMETHEUS_JMX_EXPORTER_VERSION ${PROMETHEUS_JMX_EXPORTER_VERSION}.redhat-${RH_PROMETHEUS_JMX_EXPORTER_PATCH_VERSION}
32+
ENV RH_PROMETHEUS_JMX_EXPORTER_BREW_DIR ${PROMETHEUS_JMX_EXPORTER_VERSION}.redhat_${RH_PROMETHEUS_JMX_EXPORTER_PATCH_VERSION}
33+
ENV PROMETHEUS_JMX_EXPORTER_OUT /build/jmx_prometheus_javaagent.jar
34+
ARG PROMETHEUS_JMX_EXPORTER_URL=http://download.eng.bos.redhat.com/brewroot/packages/io.prometheus.jmx-parent/${RH_PROMETHEUS_JMX_EXPORTER_BREW_DIR}/1/maven/io/prometheus/jmx/jmx_prometheus_javaagent/${RH_PROMETHEUS_JMX_EXPORTER_VERSION}/jmx_prometheus_javaagent-${RH_PROMETHEUS_JMX_EXPORTER_VERSION}.jar
35+
36+
RUN set -x; curl -fSLs \
37+
$PROMETHEUS_JMX_EXPORTER_URL \
38+
-o $PROMETHEUS_JMX_EXPORTER_OUT
39+
2940
FROM rhel7:7-released
3041

3142
RUN yum install --setopt=skip_missing_names_on_install=False -y \
@@ -49,9 +60,11 @@ ENV HADOOP_HOME=/opt/hadoop
4960
ENV HADOOP_LOG_DIR=$HADOOP_HOME/logs
5061
ENV HADOOP_CLASSPATH=$HADOOP_HOME/share/hadoop/tools/lib/*
5162
ENV HADOOP_CONF_DIR=/etc/hadoop
63+
ENV PROMETHEUS_JMX_EXPORTER /opt/jmx_exporter/jmx_exporter.jar
5264
ENV PATH=$HADOOP_HOME/bin:$PATH
5365

5466
COPY --from=build /build/hadoop-dist/target/hadoop-$HADOOP_VERSION $HADOOP_HOME
67+
COPY --from=build /build/jmx_prometheus_javaagent.jar $PROMETHEUS_JMX_EXPORTER
5568
# remove unnecessary doc/src files
5669
RUN rm -rf ${HADOOP_HOME}/share/doc \
5770
&& for dir in common hdfs mapreduce tools yarn; do \

gen-dockerfile-copy.sh

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/bash
2+
echo COPY .git /build/.git
3+
find . -name 'hadoop-*' -type d -d 1 -exec sh -c 'echo COPY ${0#"./"} /build/${0#"./"}' {} \;
4+
echo COPY dev-support /build/dev-support
5+
echo COPY pom.xml /build/pom.xml
6+
echo COPY LICENSE.txt /build/LICENSE.txt
7+
echo COPY BUILDING.txt /build/BUILDING.txt
8+
echo COPY NOTICE.txt /build/NOTICE.txt
9+
echo COPY README.txt /build/README.txt

0 commit comments

Comments
 (0)