{
    "title": "Puppet Server",
    "services": {
      "filter": {
        "list": [],
        "time": {
          "from": "now-60m",
          "to": "now"
        }
      }
    },
    "rows": [
      {
        "collapse": false,
        "height": "300px",
        "panels": [
          {
            "aliasColors": {},
            "annotate": {
              "enable": false
            },
            "bars": false,
            "datasource": null,
            "description": "* `num jrubies`: number of JRuby instances (constant)\n* `num free jrubies`: number of JRuby instances free\n* `average free jrubies`: average free JRubies over time\n* `average requested jrubies`: average requested JRubies over time",
            "editable": true,
            "fill": 0,
            "grid": {
              "max": null,
              "min": 0
            },
            "legend": {
              "avg": false,
              "current": false,
              "max": false,
              "min": false,
              "show": true,
              "total": false,
              "values": false
            },
            "lines": true,
            "linewidth": 1,
            "loadingEditor": false,
            "nullPointMode": "connected",
            "percentage": false,
            "pointradius": 5,
            "points": false,
            "renderer": "flot",
            "resolution": 100,
            "scale": 1,
            "seriesOverrides": [],
            "spaceLength": 10,
            "span": 4,
            "stack": false,
            "steppedLine": false,
            "targets": [
              {
                "target": "alias(puppetlabs.master.example.com.jruby.num-jrubies,'num jrubies')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.jruby.num-free-jrubies,'num free jrubies')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.jruby.free-jrubies-histo.mean,'average free jrubies')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.jruby.requested-jrubies-histo.mean,'average requested jrubies')"
              }
            ],
            "thresholds": [],
            "timeFrom": null,
            "timeShift": null,
            "title": "JRuby Usage",
            "tooltip": {
              "query_as_alias": true,
              "value_type": "cumulative"
            },
            "type": "graphite",
            "xaxis": {
              "buckets": null,
              "mode": "time",
              "name": null,
              "show": true,
              "values": []
            },
            "yaxes": [
              {
                "format": "short",
                "show": true
              },
              {
                "format": "short",
                "show": true
              }
            ],
            "zerofill": true
          },
          {
            "aliasColors": {},
            "annotate": {
              "enable": false
            },
            "bars": false,
            "datasource": null,
            "description": "* `borrow time`: average time a JRuby is borrowed for\n* `wait time`: average time Puppet Server spends waiting to borrow a JRuby to service a request\n* `lock held time`: average time the lock on the JRuby pool is held\n* `lock wait time`: average time Puppet Server spends waiting to acquire the lock",
            "editable": true,
            "fill": 0,
            "grid": {
              "max": null,
              "min": null
            },
            "legend": {
              "avg": false,
              "current": false,
              "max": false,
              "min": false,
              "show": true,
              "total": false,
              "values": false
            },
            "lines": true,
            "linewidth": 1,
            "loadingEditor": false,
            "nullPointMode": "connected",
            "percentage": false,
            "pointradius": 5,
            "points": false,
            "renderer": "flot",
            "resolution": 100,
            "scale": 1,
            "seriesOverrides": [],
            "spaceLength": 10,
            "span": 4,
            "stack": false,
            "steppedLine": false,
            "targets": [
              {
                "target": "alias(puppetlabs.master.example.com.jruby.borrow-timer.mean,'borrow time')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.jruby.wait-timer.mean,'wait time')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.jruby.lock-held-timer.mean,'lock held time')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.jruby.lock-wait-timer.mean,'lock wait time')"
              }
            ],
            "thresholds": [],
            "timeFrom": null,
            "timeShift": null,
            "title": "JRuby Pool Timers",
            "tooltip": {
              "query_as_alias": true,
              "value_type": "cumulative"
            },
            "type": "graphite",
            "xaxis": {
              "buckets": null,
              "mode": "time",
              "name": null,
              "show": true,
              "values": []
            },
            "yaxes": [
              {
                "format": "ms",
                "show": true
              },
              {
                "format": "short",
                "show": true
              }
            ],
            "zerofill": true
          },
          {
            "aliasColors": {},
            "annotate": {
              "enable": false
            },
            "bars": false,
            "datasource": null,
            "description": "Heap and non-heap memory used, number of cpus available.",
            "editable": true,
            "fill": 0,
            "grid": {
              "max": null,
              "min": null
            },
            "legend": {
              "avg": false,
              "current": false,
              "max": false,
              "min": false,
              "show": true,
              "total": false,
              "values": false
            },
            "lines": true,
            "linewidth": 1,
            "loadingEditor": false,
            "nullPointMode": "connected",
            "percentage": false,
            "pointradius": 5,
            "points": false,
            "renderer": "flot",
            "resolution": 100,
            "scale": 1,
            "seriesOverrides": [
              {
                "alias": "num cpus",
                "yaxis": 2
              }
            ],
            "spaceLength": 10,
            "span": 4,
            "stack": false,
            "steppedLine": false,
            "targets": [
              {
                "target": "alias(puppetlabs.master.example.com.memory.heap.used,'heap used')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.memory.non-heap.used,'non-heap used')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.num-cpus, 'num cpus')"
              }
            ],
            "thresholds": [],
            "timeFrom": null,
            "timeShift": null,
            "title": "JVM metrics",
            "tooltip": {
              "query_as_alias": true,
              "value_type": "cumulative"
            },
            "type": "graphite",
            "xaxis": {
              "buckets": null,
              "mode": "time",
              "name": null,
              "show": true,
              "values": []
            },
            "yaxes": [
              {
                "format": "bytes",
                "label": "Memory",
                "min": null,
                "show": true
              },
              {
                "format": "short",
                "label": "CPUs",
                "logBase": 1,
                "min": "0",
                "show": true
              }
            ],
            "zerofill": true
          }
        ],
        "repeat": null,
        "repeatIteration": null,
        "repeatRowId": null
      },
      {
        "collapse": false,
        "height": "300px",
        "panels": [
          {
            "aliasColors": {},
            "annotate": {
              "enable": false
            },
            "bars": false,
            "datasource": null,
            "description": "Average request time by type - time the server spends serving each type of request, including time waiting to acquire a JRuby",
            "editable": true,
            "fill": 0,
            "grid": {
              "max": null,
              "min": null
            },
            "legend": {
              "avg": false,
              "current": false,
              "max": false,
              "min": false,
              "show": true,
              "total": false,
              "values": false
            },
            "lines": true,
            "linewidth": 1,
            "loadingEditor": false,
            "nullPointMode": "connected",
            "percentage": false,
            "pointradius": 5,
            "points": false,
            "renderer": "flot",
            "resolution": 100,
            "scale": 1,
            "seriesOverrides": [],
            "spaceLength": 10,
            "span": 4,
            "stack": false,
            "steppedLine": false,
            "targets": [
              {
                "target": "alias(puppetlabs.master.example.com.http.puppet-v3-catalog-.*.-requests.mean,'catalog')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.http.puppet-v3-report-.*.-requests.mean,'report')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.http.puppet-v3-node-.*.-requests.mean,'node')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.http.puppet-v3-file_metadatas-.*.-requests.mean,'file_metadatas')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.http.puppet-v3-file_metadata-.*.-requests.mean,'file_metadata')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.http.puppet-v3-file_content-.*.-requests.mean,'file_content')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.http.other-requests.mean,'other')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.http.total-requests.mean,'all')"
              }
            ],
            "thresholds": [],
            "timeFrom": null,
            "timeShift": null,
            "title": "Request Durations",
            "tooltip": {
              "query_as_alias": true,
              "value_type": "cumulative"
            },
            "type": "graphite",
            "xaxis": {
              "buckets": null,
              "mode": "time",
              "name": null,
              "show": true,
              "values": []
            },
            "yaxes": [
              {
                "format": "ms",
                "show": true
              },
              {
                "format": "short",
                "show": true
              }
            ],
            "zerofill": true
          },
          {
            "aliasColors": {
              "create scope": "#BADFF4"
            },
            "annotate": {
              "enable": false
            },
            "bars": false,
            "datasource": null,
            "description": "Time spent in different parts of handling a Catalog request\n\n* `compile`: time to compile catalogs.\n* `static_compile`: time to do a static compile of catalogs.\n* `static compile postprocessing`: time to do postprocessing of static catalog, including inlining file metadata.\n* `function calls`: time spent calling functions (included in `compile` time)\n* `find_node`: time to get node object (not included in `compile` time)\n* `find_facts`: time to parse facts sent as part of catalog request (not included in `compile` time)",
            "editable": true,
            "fill": 0,
            "grid": {
              "max": null,
              "min": null
            },
            "legend": {
              "avg": false,
              "current": false,
              "max": false,
              "min": false,
              "show": true,
              "total": false,
              "values": false
            },
            "lines": true,
            "linewidth": 1,
            "loadingEditor": false,
            "nullPointMode": "connected",
            "percentage": false,
            "pointradius": 5,
            "points": false,
            "renderer": "flot",
            "resolution": 100,
            "scale": 1,
            "seriesOverrides": [],
            "spaceLength": 10,
            "span": 4,
            "stack": false,
            "steppedLine": false,
            "targets": [
              {
                "target": "alias(puppetlabs.master.example.com.compiler.compile.mean,'compile')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.functions.mean,'function calls')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.compiler.find_node.mean,'find_node')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.compiler.static_compile.mean,'static compile')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.compiler.static_compile_postprocessing.mean,'static compile postprocessing')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.compiler.find_facts.mean,'find_facts')"
              }
            ],
            "thresholds": [],
            "timeFrom": null,
            "timeShift": null,
            "title": "Compilation",
            "tooltip": {
              "query_as_alias": true,
              "value_type": "cumulative"
            },
            "type": "graphite",
            "xaxis": {
              "buckets": null,
              "mode": "time",
              "name": null,
              "show": true,
              "values": []
            },
            "yaxes": [
              {
                "format": "ms",
                "show": true
              },
              {
                "format": "short",
                "show": true
              }
            ],
            "zerofill": true
          },
          {
            "aliasColors": {},
            "annotate": {
              "enable": false
            },
            "bars": false,
            "datasource": null,
            "description": "Time to make HTTP requests to other services\n\n* `PuppetDB: replace facts`: time to send a \"facts replace\" command to PuppetDB (part of a catalog compile)\n* `PuppetDB: replace catalog`: time to send a \"catalog replace\" command to PuppetDB (part of a catalog compile)\n* `PuppetDB: store report`: time to send a \"report store\" command to PuppetDB (part of handling a report request)\n* `PuppetDB: find facts`: time to get facts from PuppetDB (part of a node and catalog request, if the facts for the node are not cached)\n* `PuppetDB: search resources`: time to get exported resources from PuppetDB (part of a catalog compile if exported resources are used)\n*`PuppetDB: query`: time to execute a PuppetDB query (part of a catalog compile if the puppetdb query function is used)\n* `Http report processor`: time to submit a report to the http report url (if the http report processor is used)",
            "editable": true,
            "fill": 0,
            "grid": {
              "max": null,
              "min": null
            },
            "legend": {
              "avg": false,
              "current": false,
              "max": false,
              "min": false,
              "show": true,
              "total": false,
              "values": false
            },
            "lines": true,
            "linewidth": 1,
            "loadingEditor": false,
            "nullPointMode": "connected",
            "percentage": false,
            "pointradius": 5,
            "points": false,
            "renderer": "flot",
            "resolution": 100,
            "scale": 1,
            "seriesOverrides": [],
            "spaceLength": 10,
            "span": 4,
            "stack": false,
            "steppedLine": false,
            "targets": [
              {
                "target": "alias(puppetlabs.master.example.com.http-client.experimental.with-metric-id.puppetdb.command.replace_facts.full-response.mean, 'PuppetDB: replace facts')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.http-client.experimental.with-metric-id.puppetdb.command.replace_catalog.full-response.mean, 'PuppetDB: replace catalog')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.http-client.experimental.with-metric-id.puppetdb.command.store_report.full-response.mean, 'PuppetDB: store report')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.http-client.experimental.with-metric-id.puppetdb.facts.find.full-response.mean, 'PuppetDB: find facts')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.http-client.experimental.with-metric-id.puppetdb.resource.search.full-response.mean, 'PuppetDB: search resources')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.http-client.experimental.with-metric-id.puppetdb.query.full-response.mean, 'PuppetDB: query')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.http-client.experimental.with-metric-id.puppet.report.http.full-response.mean, 'Http report processor')"
              }
            ],
            "thresholds": [],
            "timeFrom": null,
            "timeShift": null,
            "title": "External HTTP Communications",
            "tooltip": {
              "query_as_alias": true,
              "value_type": "cumulative"
            },
            "type": "graphite",
            "xaxis": {
              "buckets": null,
              "mode": "time",
              "name": null,
              "show": true,
              "values": []
            },
            "yaxes": [
              {
                "format": "ms",
                "show": true
              },
              {
                "format": "short",
                "show": true
              }
            ],
            "zerofill": true
          }
        ],
        "repeat": null,
        "repeatIteration": null,
        "repeatRowId": null
      },
      {
        "collapse": false,
        "height": "300px",
        "panels": [
          {
            "aliasColors": {},
            "annotate": {
              "enable": false
            },
            "bars": false,
            "datasource": null,
            "description": "Percentage of requests handled of each type.",
            "editable": true,
            "fill": 0,
            "grid": {
              "max": null,
              "min": null
            },
            "legend": {
              "avg": false,
              "current": false,
              "max": false,
              "min": false,
              "show": true,
              "total": false,
              "values": false
            },
            "lines": true,
            "linewidth": 1,
            "loadingEditor": false,
            "nullPointMode": "connected",
            "percentage": true,
            "pointradius": 5,
            "points": false,
            "renderer": "flot",
            "resolution": 100,
            "scale": 1,
            "seriesOverrides": [],
            "spaceLength": 10,
            "span": 4,
            "stack": false,
            "steppedLine": false,
            "targets": [
              {
                "target": "alias(scale(puppetlabs.master.example.com.http.puppet-v3-catalog-.*.-percentage,100),'catalog')"
              },
              {
                "target": "alias(scale(puppetlabs.master.example.com.http.puppet-v3-report-.*.-percentage,100),'report')"
              },
              {
                "target": "alias(scale(puppetlabs.master.example.com.http.puppet-v3-node-.*.-percentage,100),'node')"
              },
              {
                "target": "alias(scale(puppetlabs.master.example.com.http.puppet-v3-file_metadatas-.*.-percentage,100),'file_metadatas')"
              },
              {
                "target": "alias(scale(puppetlabs.master.example.com.http.puppet-v3-file_metadata-.*.-percentage,100),'file_metadata')"
              },
              {
                "target": "alias(scale(puppetlabs.master.example.com.http.puppet-v3-file_content-.*.-percentage,100),'file_content')"
              }
            ],
            "thresholds": [],
            "timeFrom": null,
            "timeShift": null,
            "title": "Request Ratios",
            "tooltip": {
              "query_as_alias": true,
              "value_type": "individual"
            },
            "type": "graphite",
            "xaxis": {
              "buckets": null,
              "mode": "time",
              "name": null,
              "show": true,
              "values": []
            },
            "yaxes": [
              {
                "format": "short",
                "label": "Percentage of Requests",
                "show": true
              },
              {
                "format": "short",
                "label": "",
                "show": true
              }
            ],
            "zerofill": true
          },
          {
            "aliasColors": {},
            "annotate": {
              "enable": false
            },
            "bars": false,
            "datasource": null,
            "description": "Number of active requests and average number of active requests (over ~ 5 minutes).",
            "editable": true,
            "fill": 0,
            "grid": {
              "max": null,
              "min": null
            },
            "legend": {
              "avg": false,
              "current": false,
              "max": false,
              "min": false,
              "show": true,
              "total": false,
              "values": false
            },
            "lines": true,
            "linewidth": 1,
            "loadingEditor": false,
            "nullPointMode": "connected",
            "percentage": false,
            "pointradius": 5,
            "points": false,
            "renderer": "flot",
            "resolution": 100,
            "scale": 1,
            "seriesOverrides": [],
            "spaceLength": 10,
            "span": 4,
            "stack": false,
            "steppedLine": false,
            "targets": [
              {
                "target": "alias(puppetlabs.master.example.com.http.active-requests.count,'active requests')"
              },
              {
                "target": "alias(puppetlabs.master.example.com.http.active-histo.mean, 'average number of active requests')"
              }
            ],
            "thresholds": [],
            "timeFrom": null,
            "timeShift": null,
            "title": "Active Requests",
            "tooltip": {
              "query_as_alias": true,
              "value_type": "cumulative"
            },
            "type": "graphite",
            "xaxis": {
              "buckets": null,
              "mode": "time",
              "name": null,
              "show": true,
              "values": []
            },
            "yaxes": [
              {
                "format": "short",
                "show": true
              },
              {
                "format": "short",
                "show": true
              }
            ],
            "zerofill": true
          }
        ],
        "repeat": null,
        "repeatIteration": null,
        "repeatRowId": null
      }
    ],
    "editable": true,
    "failover": false,
    "time": {
      "from": "now-30m",
      "to": "now"
    },
    "timepicker": {
      "collapse": false,
      "enable": true,
      "notice": false,
      "now": true,
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "status": "Stable",
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ],
      "type": "timepicker"
    },
    "refresh": "30s",
    "timezone": "browser"
  }