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

Http Client Metrics in Puppet Server

    Details

    • Type: Epic
    • Status: Closed
    • Priority: Normal
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: SERVER 5.0.0
    • Component/s: Puppet Server
    • Labels:
      None
    • Epic Name:
      Http client metrics
    • Template:
    • Team/s:
      Systems Engineering
    • Sub-team:
    • Epic Status:
      Done
    • Release Notes:
      New Feature
    • Release Notes Summary:
      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

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

              Dates

              • Created:
                Updated:
                Resolved:

                Zendesk Support