This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-metrics-prometheus.git

commit 4f1d6df6e3de7423cf25669b72e1ebd4dfacd646
Author: Bjoern Weide <bjoern.we...@netcentric.biz>
AuthorDate: Thu Sep 5 22:27:21 2019 +0200

    Made the path of the MetricsExporter servlet configurable.
---
 .../prometheus/impl/WrapperMetricsServlet.java     |  4 ++-
 .../impl/WrapperMetricsServletConfiguration.java   | 31 ++++++++++++++++++++++
 2 files changed, 34 insertions(+), 1 deletion(-)

diff --git 
a/src/main/java/org/apache/sling/metrics/prometheus/impl/WrapperMetricsServlet.java
 
b/src/main/java/org/apache/sling/metrics/prometheus/impl/WrapperMetricsServlet.java
index 0394744..f1ffafd 100644
--- 
a/src/main/java/org/apache/sling/metrics/prometheus/impl/WrapperMetricsServlet.java
+++ 
b/src/main/java/org/apache/sling/metrics/prometheus/impl/WrapperMetricsServlet.java
@@ -30,6 +30,7 @@ import org.osgi.service.component.annotations.ReferencePolicy;
 import org.osgi.service.component.annotations.ReferencePolicyOption;
 import 
org.osgi.service.http.whiteboard.propertytypes.HttpWhiteboardContextSelect;
 import 
org.osgi.service.http.whiteboard.propertytypes.HttpWhiteboardServletPattern;
+import org.osgi.service.metatype.annotations.Designate;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -49,6 +50,7 @@ import io.prometheus.client.exporter.MetricsServlet;
 @HttpWhiteboardServletPattern("/metrics")
 
@HttpWhiteboardContextSelect("(osgi.http.whiteboard.context.name=org.osgi.service.http)")
 @Component(service = Servlet.class)
+@Designate(ocd = WrapperMetricsServletConfiguration.class)
 public class WrapperMetricsServlet extends MetricsServlet {
 
     private static final long serialVersionUID = 1L;
@@ -66,7 +68,7 @@ public class WrapperMetricsServlet extends MetricsServlet {
         this.exports = new DropwizardExports(metrics);
         CollectorRegistry.defaultRegistry.register(this.exports);
     }
-    
+
     @Override
     public void destroy() {
         CollectorRegistry.defaultRegistry.unregister(this.exports);
diff --git 
a/src/main/java/org/apache/sling/metrics/prometheus/impl/WrapperMetricsServletConfiguration.java
 
b/src/main/java/org/apache/sling/metrics/prometheus/impl/WrapperMetricsServletConfiguration.java
new file mode 100644
index 0000000..0fb6e8d
--- /dev/null
+++ 
b/src/main/java/org/apache/sling/metrics/prometheus/impl/WrapperMetricsServletConfiguration.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sling.metrics.prometheus.impl;
+
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
+
+/**
+ * Allows to configure the path the metrics exporter servlet will be 
registered to.
+ */
+@ObjectClassDefinition(description = "Configuration for the Prometheus Metrics 
Exporter", name = "Prometheus Metrics Exporter")
+@interface WrapperMetricsServletConfiguration {
+
+    @AttributeDefinition(name = "Servlet Path", description = "Path under 
which the Prometheus Metrics servlet is registered")
+    String osgi_http_whiteboard_servlet_pattern() default "/metrics";
+
+}

Reply via email to