diff --git a/bq-metrics-extractor/Dockerfile b/bq-metrics-extractor/Dockerfile index 3d0e959a8..3eefa70c0 100644 --- a/bq-metrics-extractor/Dockerfile +++ b/bq-metrics-extractor/Dockerfile @@ -1,10 +1,28 @@ -FROM openjdk:8u171 +FROM alpine:3.7 MAINTAINER CSI "csi@telenordigital.com" +# +# Copy the files we need +# + COPY script/start.sh /start.sh COPY config/config.yaml /config/config.yaml - COPY build/libs/bq-metrics-extractor-uber.jar /bq-metrics-extractor.jar -CMD ["/start.sh"] +# +# Load, then dump the standard java classes into the +# image being built, to speed up java load time +# using Class Data Sharing. The "quit" command will +# simply quit the program after it's dumped the list of +# classes that should be cached. +# + +CMD ["java", "-Dfile.encoding=UTF-8", "-Xshare:on", "-Xshare:dump", "-jar", "/bq-metrics-extractor.jar", "quit", "config/config.yaml"] + + +# +# Finally the actual entry point +# + +ENTRYPOINT ["/start.sh"] diff --git a/bq-metrics-extractor/Dockerfile.test b/bq-metrics-extractor/Dockerfile.test index 22568bb72..312aae869 100644 --- a/bq-metrics-extractor/Dockerfile.test +++ b/bq-metrics-extractor/Dockerfile.test @@ -1,11 +1,29 @@ -FROM openjdk:8u171 +FROM alpine:3.7 MAINTAINER CSI "csi@telenordigital.com" +# +# Copy the files we need +# + COPY script/start.sh /start.sh COPY config/pantel-prod.json /secret/pantel-prod.json COPY config/config.yaml /config/config.yaml - COPY build/libs/bq-metrics-extractor-uber.jar /bq-metrics-extractor.jar -CMD ["/start.sh"] +# +# Load, then dump the standard java classes into the +# image being built, to speed up java load time +# using Class Data Sharing. The "quit" command will +# simply quit the program after it's dumped the list of +# classes that should be cached. +# + +CMD ["java", "-Dfile.encoding=UTF-8", "-Xshare:on", "-Xshare:dump", "-jar", "/bq-metrics-extractor.jar", "quit", "config/config.yaml"] + + +# +# Finally the actual entry point +# + +ENTRYPOINT ["/start.sh"] diff --git a/bq-metrics-extractor/script/start.sh b/bq-metrics-extractor/script/start.sh index 250e6c3b3..6081dbe61 100755 --- a/bq-metrics-extractor/script/start.sh +++ b/bq-metrics-extractor/script/start.sh @@ -2,5 +2,6 @@ # Start app exec java \ - -Dfile.encoding=UTF-8 \ - -jar /bq-metrics-extractor.jar query --pushgateway pushgateway:8080 config/config.yaml + -Dfile.encoding=UTF-8 \ + -Xshare:on \ + -jar /bq-metrics-extractor.jar query --pushgateway pushgateway:8080 config/config.yaml diff --git a/bq-metrics-extractor/src/main/java/org/ostelco/bqmetrics/BqMetricsExtractorApplication.kt b/bq-metrics-extractor/src/main/java/org/ostelco/bqmetrics/BqMetricsExtractorApplication.kt index f43705d63..2f821ac3e 100644 --- a/bq-metrics-extractor/src/main/java/org/ostelco/bqmetrics/BqMetricsExtractorApplication.kt +++ b/bq-metrics-extractor/src/main/java/org/ostelco/bqmetrics/BqMetricsExtractorApplication.kt @@ -310,4 +310,14 @@ private class CollectAndPushMetrics : ConfiguredCommand( + "quit", + "Do nothing, only used to prime caches") { + override fun run(bootstrap: Bootstrap?, + namespace: Namespace?, + configuration: BqMetricsExtractorConfig?) { + // Doing nothing, as advertised. + } + } }