Uploaded image for project: 'James Server'
  1. James Server
  2. JAMES-3405

Expose metrics over HTTP

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 3.6.0
    • guice, Metrics, webadmin
    • None

    Description

      = Why ?

      I want to export James metrics to prometheus.

      This modern metric stack relies on pulling (prometheus collects the metrics) instead of pushing.

      This need had been expressed by ieugen here: https://github.com/ieugen/james-self-hosting-sandbox/issues/20

      = How ?

      With the https://github.com/prometheus/client_java dependency expose that as part of a `webadmin-metrics` Unauthentictated endpoint.

      Adapt content at https://github.com/prometheus/client_java/blob/master/simpleclient_servlet/src/main/java/io/prometheus/client/exporter/MetricsServlet.java

      Be aware that there is some conversion format to be done here:

      
      CollectorRegistry collectorRegistry = CollectorRegistry.defaultRegistry;
      new DropwizardExports(environment.metrics()).register(collectorRegistry);
      new MetricsServlet(collectorRegistry)
      

      Source https://stackoverflow.com/questions/53408121/which-metrics-are-exported-by-dropwizardmetrics-prometheus-client

      = Definition of done

      As an admin,
      I have an HTTP endpoint
      Exposing metrics with the prometheus format
      

      Scope: all guice products

      This endpoint should require no authentication in order to be easily fetchable by prometheus.

      However as an admin, I need to explicitly enable it in the webadmin configuration, it is disabled by default.

      Attachments

        Activity

          People

            Unassigned Unassigned
            btellier Benoit Tellier
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: