Uploaded image for project: 'Puppet Server'
  1. Puppet Server
  2. SERVER-1739

Http Client Metrics in Puppet Server

    XMLWordPrintable

Details

    • Epic
    • Status: Closed
    • Normal
    • Resolution: Fixed
    • None
    • SERVER 5.0.0
    • Puppet Server
    • None
    • Http client metrics
    • Systems Engineering
    • Done
    • New Feature
    • Hide
      The master service in the status endpoint at debug level (/status/v1/services/master?level=debug) now includes an `http-client-metrics` key. The value of this is an array of http client metrics showing data about http requests that puppet server makes to other services - e.g. puppetdb and classifier. The output of the status endpoint with http client metrics looks like:

      "http-client-metrics": [
        {
          "aggregate": 407,
          "count": 1,
          "mean": 407,
          "metric-id": [
            "puppetdb",
            "facts",
            "find"
          ],
          "metric-name": "puppetlabs.localhost.http-client.experimental.with-metric-id.puppetdb.facts.find.full-response"
        },
        {
          "aggregate": 66,
          "count": 1,
          "mean": 66,
          "metric-id": [
            "puppetdb",
            "command",
            "replace_facts"
          ],
          "metric-name": "puppetlabs.localhost.http-client.experimental.with-metric-id.puppetdb.command.replace_facts.full-response"
        },
        {
          "aggregate": 60,
          "count": 2,
          "mean": 30,
          "metric-id": [
            "puppetdb",
            "resource",
            "search"
          ],
          "metric-name": "puppetlabs.localhost.http-client.experimental.with-metric-id.puppetdb.resource.search.full-response"
        },
        {
          "aggregate": 53,
          "count": 1,
          "mean": 53,
          "metric-id": [
            "puppetdb",
            "query"
          ],
          "metric-name": "puppetlabs.localhost.http-client.experimental.with-metric-id.puppetdb.query.full-response"
        },
        {
          "aggregate": 22,
          "count": 1,
          "mean": 22,
          "metric-id": [
            "puppetdb",
            "command",
            "store_report"
          ],
          "metric-name": "puppetlabs.localhost.http-client.experimental.with-metric-id.puppetdb.command.store_report.full-response"
        },
        {
          "aggregate": 16,
          "count": 1,
          "mean": 16,
          "metric-id": [
            "puppetdb",
            "command",
            "replace_catalog"
          ],
          "metric-name": "puppetlabs.localhost.http-client.experimental.with-metric-id.puppetdb.command.replace_catalog.full-response"
        },
        {
          "aggregate": 2,
          "count": 1,
          "mean": 2,
          "metric-id": [
            "puppet",
            "report",
            "http"
          ],
          "metric-name": "puppetlabs.localhost.http-client.experimental.with-metric-id.puppet.report.http.full-response"
        }
      ],
      Show
      The master service in the status endpoint at debug level (/status/v1/services/master?level=debug) now includes an `http-client-metrics` key. The value of this is an array of http client metrics showing data about http requests that puppet server makes to other services - e.g. puppetdb and classifier. The output of the status endpoint with http client metrics looks like: "http-client-metrics": [   {     "aggregate": 407,     "count": 1,     "mean": 407,     "metric-id": [       "puppetdb",       "facts",       "find"     ],     "metric-name": "puppetlabs.localhost.http-client.experimental.with-metric-id.puppetdb.facts.find.full-response"   },   {     "aggregate": 66,     "count": 1,     "mean": 66,     "metric-id": [       "puppetdb",       "command",       "replace_facts"     ],     "metric-name": "puppetlabs.localhost.http-client.experimental.with-metric-id.puppetdb.command.replace_facts.full-response"   },   {     "aggregate": 60,     "count": 2,     "mean": 30,     "metric-id": [       "puppetdb",       "resource",       "search"     ],     "metric-name": "puppetlabs.localhost.http-client.experimental.with-metric-id.puppetdb.resource.search.full-response"   },   {     "aggregate": 53,     "count": 1,     "mean": 53,     "metric-id": [       "puppetdb",       "query"     ],     "metric-name": "puppetlabs.localhost.http-client.experimental.with-metric-id.puppetdb.query.full-response"   },   {     "aggregate": 22,     "count": 1,     "mean": 22,     "metric-id": [       "puppetdb",       "command",       "store_report"     ],     "metric-name": "puppetlabs.localhost.http-client.experimental.with-metric-id.puppetdb.command.store_report.full-response"   },   {     "aggregate": 16,     "count": 1,     "mean": 16,     "metric-id": [       "puppetdb",       "command",       "replace_catalog"     ],     "metric-name": "puppetlabs.localhost.http-client.experimental.with-metric-id.puppetdb.command.replace_catalog.full-response"   },   {     "aggregate": 2,     "count": 1,     "mean": 2,     "metric-id": [       "puppet",       "report",       "http"     ],     "metric-name": "puppetlabs.localhost.http-client.experimental.with-metric-id.puppet.report.http.full-response"   } ],

    Description

      This epic captures work required to:

      1. Add automatic tracking of http request metrics to our http client library
      2. Provide an integration point in Puppet's Ruby HTTP client API to allow us to provide metric ids for certain requests
      3. Surface these metrics in the PE Puppet Server status endpoint
      4. Surface these metrics in the PE developer dashboard
      5. Add code to the NC and PuppetDB termini to use the new API with metric ids

      Attachments

        Activity

          People

            Unassigned Unassigned
            chris Chris Price
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Zendesk Support