Hi
override def run(): Unit = {



logger.info("Starting off Metric Server")
new ClassLoaderMetrics().bindTo(prometheusRegistry)
new JvmMemoryMetrics().bindTo(prometheusRegistry)
new JvmGcMetrics().bindTo(prometheusRegistry)
new ProcessorMetrics().bindTo(prometheusRegistry)
new JvmThreadMetrics().bindTo(prometheusRegistry)
//new Log4j2Metrics().bindTo(prometheusRegistry)
new LogbackMetrics().bindTo(prometheusRegistry)
new ProcessorMetrics().bindTo(prometheusRegistry)
val compositeMeterRegistry = new CompositeMeterRegistry()

try {
val server: HttpServer = HttpServer.create(new InetSocketAddress(8090), 0)

server.createContext("/prometheus", new HttpHandler {
def handle(httpExchange: HttpExchange) {
val response = prometheusRegistry.scrape()
httpExchange.sendResponseHeaders(200, response.getBytes().length)
val os = httpExchange.getResponseBody
os.write(response.getBytes())
os.close()

}

})

server.start()
} catch {
case e: IOException =>
logger.error("Exception while starting server ", e)
throw new RuntimeException(e)
}
}

Above piece initializes server for me and pushes jvm metrics to my 
promethus.it works fine.


Now I also want to push custom application metrics  such as counter and 
histograms.

*How can I do that. I wrote below code and when I am using this inside my 
application for e.g doing*

failureCounter.inc (); Metrics is not getting reflected in Graffans.I read 
some where that I have to register my counters and histograms to registry 
since I am not using default registry.

Was wondering if someone has already done something similar
object AppMetricInitializer {

val env: StringBuilder = new StringBuilder(AppConfig.getEnv)
val topologyServiceRead = 
Histogram.build.namespace("road_topology_service_reader" 
+"_"+ env).name("topodatareader").help("Read Data").buckets(1.0, 2.0, 3.0, 
4.0).register
val topologyServiceChangeDetect = 
Histogram.build.namespace("road_topology_service_changedetect" 
+"_"+ env).name("changedetect").buckets(0.5, 1.0, 1.5, 3.0).help("Change 
Detect").register
val topologyServiceWriter = 
Histogram.build.namespace("road_topology_service_writer" 
+"_"+ env).buckets(0.5, 1.0, 1.5, 2.0).name("WriteData").help("Topology 
Service Writer").register
val counterEvent = Counter.build.namespace("road_topology_service_eventCounter" 
+"_"+ env).name("totalEventProcessedcounter").help("EventCounter").register
val failureCounter = 
Counter.build.namespace("road_topology_service_failure_eventCounter" 
+"_"+ env).
name("totalEventFailureCounter").help("Failure Event Counter").register
val totalFeatureProcessedCounter = 
Counter.build.namespace("road_topology_service_feature_processedCounter" 
+"_"+ env).
name("totalFeatureProcessedCounter").help("Total Feature Processed Counter"
).register

def getReadMetricator():Histogram={
topologyServiceRead
}
def getWriteMetricator():Histogram={
topologyServiceWriter
}
def getChangeDetectorMetricator():Histogram={
topologyServiceChangeDetect
}
def getEventCounter():Counter={
counterEvent
}
def getFailureEventCounter():Counter={
failureCounter
}

def getFeatureProcessedCounter:Counter={
totalFeatureProcessedCounter
}

}

-- 
You received this message because you are subscribed to the Google Groups 
"Prometheus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/prometheus-users/3ae33664-d584-4016-962c-27c4743f5159n%40googlegroups.com.

Reply via email to