From 1b582a7cdb11d1af5e77a44510d74a20515125e0 Mon Sep 17 00:00:00 2001
From: Scott Anderson <sanderson@users.noreply.github.com>
Date: Mon, 18 Oct 2021 16:25:20 -0600
Subject: [PATCH] Work with Prometheus metrics in Flux (#3232)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* initial changes for flux restructure

* added all aliases

* added introduced date to all flux functions

* marked linearBins and logarithmicBins as draft

* migrated flux stdlib to new flux section, added version range to article template

* fixed list-all-functions shortcode

* duplicated and reordered flux spec, added page-nav shortcode, closes #1870

* added filtering functionality to list-all-functions shortcode

* added function tags

* Stdlib reorg (#2130)

* consolidated influxdb packages

* stdlib rename and reorg

* reorg existing contrib docs

* added keep-url to http.get example

* reorg built-in directory, add function types docs

* updated links

* updated all related links

* fixed reference links in influxdb docs

* updated all internal flux links

* updated flux links in influxdb

* one last link update

* restyle product dropdown

* update flux links in influxdb 1.7 and 1.8

* fixed shortcode call

* updated task options in flux options doc

* Flux 'interpolate' package (#2148)

* add interpolate package, closes #1649

* added missing page description to interpolate package doc

* removed unnecessary space from interpolate description

* updated interpolate package description

* ported from() note to new flux section

* New list filter javascript (#2185)

* generalized list filtering for telegraf plugins and flux functions

* added flux tags, updated filter list functionality

* added more flux tags

* added new experimental functions

* updated derivative params

* ported over new experimental functions

* fixed bad copy-pasta

* ported new notification endpoints into new flux docs

* updated flux function categories

* ported flux changes from master

* fixed product dropdown

* fixed regexp.findString example

* ported flux 0.109 changes

* updated array package aliases and supported version

* ported new functions into flux dir

* added aliases to interpolate package

* ported flux v0.114 packages

* added enterpise logic to url selector modal

* fix minor typo

* Update Flux param type convention (#2515)

* fix minor typo

* WIP new flux data type convention

* wip more param type updates

* cleaned up function type specs

* ported flux 0.115.0 packages and functions

* ported tickscript package

* ported today function

* added aliases to tickscript pkg

* updated timedMovingAverage params example

* updated to function with remote creds

* port flux 0.118 changes over

* port flux changes into flux-restructure

* ported changes from flux 0.123.0 and updated flux function docs

* updated contrib package summary

* updated function definition of schema.tagValues

* ported recent flux changes to the restructure branch

* port changes from master

* Flux get started (#3036)

* Flux group keys demo (#2553)

* interactive group key example

* added js and shortcode for group key demo

* updated group key demo to address PR feedback

* shortened sample data set

* Flux get started intro and data model (#2619)

* starting flux intro content, resolved merge conflicts

* WIP flux get started docs

* WIP flux get started

* flux get started intro and data model

* Apply suggestions from code review

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>

* Update content/flux/v0.x/get-started/data-model.md

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* addressed PR feedback in flux get started

* updated flux docs landing page

* more updates to flux landing page

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>
Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* Flux query basics (#2887)

* WIP flux query basics

* WIP flux query basics

* WIP flux query basics

* WIP flux query basics

* wrap up content for flux query basics

* Apply suggestions from code review

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* properly close code block on flux query basics

* Flux – query data (#2891)

* added query data sources with flux and query influxdb

* Apply suggestions from code review

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* Update content/flux/v0.x/query-data/influxdb.md

* Query Prometheus with Flux (#2893)

* query prometheus with flux

* Apply suggestions from code review

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>

* Query CSV data with Flux (#2895)

* query csv data with flux

* address PR feedback

* Update content/flux/v0.x/query-data/csv.md

* update flux query data sources landing page

* updated flux query data doc formats and links

* Query SQL databases (#2922)

* WIP query sql guides

* query SQL data sources, closes #1738

* updated related link on sql.from

* added link to stream of tables and updated text

* updated connection string text

* updated query sql landing page and children hr styles

* updated sql query docs to address PR feedback

* added missing colon

* Query Google Cloud Bigtable with Flux (#2928)

* Query Google Cloud Bigtable with Flux

* updated doc structure of query bigtable doc

* fixed typo in bigquery doc

* Apply suggestions from code review

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>
Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>

* Work with Flux data types (#2967)

* scaffolding for flux types, work with strings

* Apply suggestions from code review

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>

* removed note about interpolation vs concatenation

* updated wording of variable type association

* generalized type inference

* Apply suggestions from code review

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* WIP work with ints

* reverted int content

* updated strings doc to address PR feedback

* added description to data types landing page

* Apply suggestions from code review

* Update content/flux/v0.x/data-types/basic/string.md

* updated composite front-matter

* Work with time types in Flux  (#2974)

* work with time types in flux, closes #2260

* updated time type doc

* fixed type in time type description

* fixed typo

* updated work with time doc

* fixed typos

* updated verbiage

* added related links

* Apply suggestions from code review

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* updated time type doc to address PR feedback

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* Work with booleans (#2975)

* work with boolean types

* updated working with booleans

* updated verbiage

* added related links

* Update content/flux/v0.x/data-types/basic/boolean.md

* Work with bytes types (#2976)

* work with bytes types

* added toc to bytes type doc

* Apply suggestions from code review

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>

* updated work with bytes doc

* fixed typo

* added related links

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>

* Work with durations (#2977)

* work with durations in flux

* added keywords to duration doc to improve searchability

* minor updates to duration type doc

* updated verbiage

* added related links and removed toDuration from menu

* Update content/flux/v0.x/data-types/basic/duration.md

* Work with null types (#2978)

* WIP null types

* work with null types in flux

* updated null types doc

* Update content/flux/v0.x/data-types/basic/null.md

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* Work with floats (#2979)

* work with floats in flux

* Apply suggestions from code review

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>

* Apply suggestions from code review

* updated floats type doc

* Update content/flux/v0.x/data-types/basic/float.md

* updated verbiage

* added related links

* Apply suggestions from code review

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>
Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* Work with integers (#2980)

* WIP work with ints

* work with integers

* work with integers

* updated float to int behavior, added related links, closes #2973

* added toc to ints doc

* Apply suggestions from code review

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* Update content/flux/v0.x/data-types/basic/integer.md

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>
Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* Work with uintegers (#2981)

* WIP work with uints

* work with uints

* Apply suggestions from code review

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* fixed minor type

* Work with records (#2982)

* work with records in flux

* updated record type doc

* Apply suggestions from code review

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* Work with arrays (#2983)

* work with arrays

* added array.from example, added related links

* Work with dictionaries (#2984)

* WIP work with dicts

* work with dictionaries

* added related links to dict package

* added introduced version to dict package

* Apply suggestions from code review

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* added sample dict output

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* Work with functions (#2985)

* work with functions

* Apply suggestions from code review

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* revamped type landing pages

* marked union types as draft

* miscellaneous updates

* Work with regular expression (#3024)

* work with regular expression types, closes #2573, closes influxdata/flux#3741

* add context for quoteMeta function

* Apply suggestions from code review

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>
Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

* fix latest links in page descriptions

* updated influxdb links

* Flux syntax basics (#3033)

* flux syntax basics

* Apply suggestions from code review

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>

* updated function description

* Apply suggestions from code review

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* Apply suggestions from code review

* Update content/flux/v0.x/get-started/syntax-basics.md

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>
Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>
Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

* added table param to transformations, closes #2392 (#3039)

* updated flux function links

* update algolia configuration to fix search, closes #1902 (#3042)

* ported notes in the from function doc

* Flux package options (#3083)

* add now option to universe package

* added missing package options, closes #2464

* addressed PR feedback

* Flux transformation input/output examples (#3103)

* added flux/sample shortcode

* standardize flux package titles and list titles

* added start and stop columns as an option with flux/sample shortcode

* minor updates to stdlib

* WIP add input and output examples to flux transformations

* WIP removed sample data demo from universe index page

* WIP function input and output examples

* WIP flux input output examples

* WIP flux input output examples

* flux transformation input and output examples

* Add Flux 'sampledata' package (#3088)

* add flux sampledata package

* updated sampledata example titles

* Write data with Flux (#3084)

* WIP write to sql data sources

* write to sql data sources

* added write data to influxdb with flux doc

* Apply suggestions from code review

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* made sql headings specific to each db

* updated write to influxdb

* added tag to influxdb to example

* restructred influxdb write examples as code tabs

Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* fixed list on influxdb write with flux page

* Flux move changelog (#3117)

* updated flux redirects in edge.js

* move flux changelog into Flux restructure

* add flux redirects to edge.js

* removed extra parentheses from monitor.notify examples, closes #2505

* updated flux release notes with flux 0.129.0

* moved from and to into the influxdata/influxdb package

* updated notes on to and from docs

* added flux card to homepage

* added flux-0.130.0 to flux release notes

* flux link cleanup

* updated experimental message, closes #3097 (#3128)

* Remove Flux stdlib and language from InfluxDB (#3133)

* remove flux stdlib and lang from influxdb, update flux get-started, closes #2132

* flux link cleanup

* cleaned up prometheus verbiage, updated flux data type links

* function cleanup

* fixed sidenav toggle button

* updated group key links, added aliases for flux landing page

* WIP prometheus rework

* fixed broken links, commented out prometheus content, updated flux types names

* added flux links to the left nav

* fixed flux links in kapacitor docs

* WIP flux prometheus docs

* WIP prometheus metrics

* added note about prom metrics data structures

* resolved merge conflicts

* added prometheus doc in write data, added prometheus metric versions ref doc

* added prometheus counter contnet

* resolved merge conflict

* WIP flux prometheus histograms

* added content for prometheus summaries

* added histogram content

* removed commented notes

* Apply suggestions from code review

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>

* updates to address pr feedback

* updated prometheus-metrics.md

Co-authored-by: pierwill <19642016+pierwill@users.noreply.github.com>
Co-authored-by: kelseiv <47797004+kelseiv@users.noreply.github.com>
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
---
 assets/js/flux-current-time.js                |   4 +
 assets/styles/layouts/_article.scss           |   2 +
 assets/styles/layouts/article/_blocks.scss    |   7 +
 assets/styles/layouts/article/_captions.scss  |   2 +-
 assets/styles/layouts/article/_flex.scss      |   2 +
 .../layouts/article/_tabbed-content.scss      |   7 +
 content/flux/v0.x/prometheus/_index.md        |  17 +
 .../v0.x/prometheus/metric-types/_index.md    |  22 +
 .../v0.x/prometheus/metric-types/counter.md   | 516 ++++++++++++++++++
 .../v0.x/prometheus/metric-types/gauge.md     | 315 +++++++++++
 .../v0.x/prometheus/metric-types/histogram.md | 171 ++++++
 .../v0.x/prometheus/metric-types/summary.md   | 138 +++++
 .../flux/v0.x/prometheus/scrape-prometheus.md | 193 +++++++
 .../stdlib/experimental/prometheus/scrape.md  |   1 +
 .../cloud/query-data/flux/histograms.md       |   1 +
 .../cloud/reference/prometheus-metrics.md     |  19 +
 .../scrape-prometheus-metrics.md              |  20 +
 .../v2.0/query-data/flux/histograms.md        | 124 +----
 content/influxdb/v2.0/reference/glossary.md   |   2 +-
 .../v2.0/reference/prometheus-metrics.md      | 286 ++++++++++
 .../scrape-prometheus-metrics.md              | 105 ++++
 .../write-data/no-code/scrape-data/_index.md  |   4 +-
 .../scrape-data/manage-scrapers/_index.md     |   6 +-
 .../manage-scrapers/create-a-scraper.md       |   6 +-
 .../manage-scrapers/delete-a-scraper.md       |   6 +-
 .../manage-scrapers/update-a-scraper.md       |   6 +-
 .../scrape-data/scrapable-endpoints.md        |   2 +-
 layouts/partials/footer/javascript.html       |   7 +
 layouts/shortcodes/cite.html                  |   1 +
 layouts/shortcodes/flex-content.html          |   2 +-
 layouts/shortcodes/flex.html                  |   2 +-
 layouts/shortcodes/flux/current-time.html     |   1 +
 layouts/shortcodes/img-hd.html                |  12 +-
 layouts/shortcodes/nowrap.html                |   2 +-
 layouts/shortcodes/tabs.html                  |   4 +-
 ...ometheus-counter-aggregate-rate-output.png | Bin 0 -> 11242 bytes
 ...x-prometheus-counter-derivative-output.png | Bin 0 -> 11779 bytes
 ...x-prometheus-counter-difference-output.png | Bin 0 -> 12599 bytes
 .../0-x-prometheus-counter-increase-input.png | Bin 0 -> 10937 bytes
 ...0-x-prometheus-counter-increase-output.png | Bin 0 -> 9299 bytes
 ...-x-prometheus-counter-normalized-input.png | Bin 0 -> 9095 bytes
 ...prometheus-gauge-aggregate-rate-output.png | Bin 0 -> 10763 bytes
 ...0-x-prometheus-gauge-derivative-output.png | Bin 0 -> 11626 bytes
 .../img/flux/0-x-prometheus-gauge-input.png   | Bin 0 -> 10838 bytes
 ...rometheus-histogram-multiple-quantiles.png | Bin 0 -> 22451 bytes
 .../0-x-prometheus-histogram-quantile.png     | Bin 0 -> 16141 bytes
 .../flux/0-x-prometheus-summary-quantiles.png | Bin 0 -> 19016 bytes
 47 files changed, 1865 insertions(+), 150 deletions(-)
 create mode 100644 assets/js/flux-current-time.js
 create mode 100644 content/flux/v0.x/prometheus/_index.md
 create mode 100644 content/flux/v0.x/prometheus/metric-types/_index.md
 create mode 100644 content/flux/v0.x/prometheus/metric-types/counter.md
 create mode 100644 content/flux/v0.x/prometheus/metric-types/gauge.md
 create mode 100644 content/flux/v0.x/prometheus/metric-types/histogram.md
 create mode 100644 content/flux/v0.x/prometheus/metric-types/summary.md
 create mode 100644 content/flux/v0.x/prometheus/scrape-prometheus.md
 create mode 100644 content/influxdb/cloud/reference/prometheus-metrics.md
 create mode 100644 content/influxdb/cloud/write-data/developer-tools/scrape-prometheus-metrics.md
 create mode 100644 content/influxdb/v2.0/reference/prometheus-metrics.md
 create mode 100644 content/influxdb/v2.0/write-data/developer-tools/scrape-prometheus-metrics.md
 create mode 100644 layouts/shortcodes/cite.html
 create mode 100644 layouts/shortcodes/flux/current-time.html
 create mode 100644 static/img/flux/0-x-prometheus-counter-aggregate-rate-output.png
 create mode 100644 static/img/flux/0-x-prometheus-counter-derivative-output.png
 create mode 100644 static/img/flux/0-x-prometheus-counter-difference-output.png
 create mode 100644 static/img/flux/0-x-prometheus-counter-increase-input.png
 create mode 100644 static/img/flux/0-x-prometheus-counter-increase-output.png
 create mode 100644 static/img/flux/0-x-prometheus-counter-normalized-input.png
 create mode 100644 static/img/flux/0-x-prometheus-gauge-aggregate-rate-output.png
 create mode 100644 static/img/flux/0-x-prometheus-gauge-derivative-output.png
 create mode 100644 static/img/flux/0-x-prometheus-gauge-input.png
 create mode 100644 static/img/flux/0-x-prometheus-histogram-multiple-quantiles.png
 create mode 100644 static/img/flux/0-x-prometheus-histogram-quantile.png
 create mode 100644 static/img/flux/0-x-prometheus-summary-quantiles.png

diff --git a/assets/js/flux-current-time.js b/assets/js/flux-current-time.js
new file mode 100644
index 000000000..f48a760b0
--- /dev/null
+++ b/assets/js/flux-current-time.js
@@ -0,0 +1,4 @@
+var date = new Date()
+var timestamp = date.toISOString().replace(/^(.*)(\.\d+)(Z)/, '$1$3')
+
+$('span.current-time').text(timestamp)
\ No newline at end of file
diff --git a/assets/styles/layouts/_article.scss b/assets/styles/layouts/_article.scss
index c254dca85..d8a950efa 100644
--- a/assets/styles/layouts/_article.scss
+++ b/assets/styles/layouts/_article.scss
@@ -184,6 +184,8 @@
     }
   }
 
+  .nowrap { white-space: nowrap }
+
   /////////////////////////// Getting Started Buttons //////////////////////////
 
   .get-started-btns {
diff --git a/assets/styles/layouts/article/_blocks.scss b/assets/styles/layouts/article/_blocks.scss
index e226c6bbb..9205b0134 100644
--- a/assets/styles/layouts/article/_blocks.scss
+++ b/assets/styles/layouts/article/_blocks.scss
@@ -23,6 +23,13 @@ blockquote {
     color: rgba($article-text, .5);
   }
   *:last-child {margin-bottom: 0;}
+  .cite {
+    display: block;
+    margin-top: -1rem;
+    font-style: italic;
+    font-size: .85rem;
+    opacity: .8;
+  }
 }
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/assets/styles/layouts/article/_captions.scss b/assets/styles/layouts/article/_captions.scss
index bf2cd3881..e01397b0d 100644
--- a/assets/styles/layouts/article/_captions.scss
+++ b/assets/styles/layouts/article/_captions.scss
@@ -28,4 +28,4 @@ h2,h3,h4,h5,h6 {
     margin: 0;
     opacity: 1;
   }
-}
\ No newline at end of file
+}
diff --git a/assets/styles/layouts/article/_flex.scss b/assets/styles/layouts/article/_flex.scss
index e28f7265d..60bbee7fa 100644
--- a/assets/styles/layouts/article/_flex.scss
+++ b/assets/styles/layouts/article/_flex.scss
@@ -16,6 +16,8 @@
   &.half, &.third, &.quarter {
     table:not(:last-child) {margin-right: 1rem;}
   }
+
+  img { margin-bottom: 0;}
 }
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/assets/styles/layouts/article/_tabbed-content.scss b/assets/styles/layouts/article/_tabbed-content.scss
index 57fd2bdb3..450169d6e 100644
--- a/assets/styles/layouts/article/_tabbed-content.scss
+++ b/assets/styles/layouts/article/_tabbed-content.scss
@@ -52,6 +52,13 @@
       }
     }
   }
+  &.small {
+    p { justify-content: flex-start; }
+    a {
+      flex-grow: unset;
+      padding: 0rem .5rem;
+    }
+  }
 }
 
 .code-tabs {
diff --git a/content/flux/v0.x/prometheus/_index.md b/content/flux/v0.x/prometheus/_index.md
new file mode 100644
index 000000000..b13035fe0
--- /dev/null
+++ b/content/flux/v0.x/prometheus/_index.md
@@ -0,0 +1,17 @@
+---
+title: Work with Prometheus
+description: >
+  Flux provides tools for scraping and processing raw [Prometheus-formatted metrics](https://prometheus.io/docs/concepts/data_model/)
+  from an HTTP-accessible endpoint.
+menu: flux_0_x
+weight: 8
+flux/v0.x/tags: [prometheus]
+---
+
+[Prometheus](https://prometheus.io/) is an open-source toolkit designed
+to build simple and robust monitoring and alerting systems.
+Flux provides tools for scraping raw [Prometheus-formatted metrics](https://prometheus.io/docs/concepts/data_model/)
+from an HTTP-accessible endpoint, writing them to InfluxDB, then processing those
+raw metrics for visualization in InfluxDB dashboards.
+
+{{< children >}}
\ No newline at end of file
diff --git a/content/flux/v0.x/prometheus/metric-types/_index.md b/content/flux/v0.x/prometheus/metric-types/_index.md
new file mode 100644
index 000000000..972799bb7
--- /dev/null
+++ b/content/flux/v0.x/prometheus/metric-types/_index.md
@@ -0,0 +1,22 @@
+---
+title: Work with Prometheus metric types
+description: >
+  Learn how to use Flux to work with Prometheus' four main metric types
+  (counter, gauge, histogram, and summary) and process them for visualizations
+  in InfluxDB dashboards.
+menu:
+  flux_0_x:
+    name: Prometheus metric types
+    parent: Work with Prometheus
+weight: 102
+cascade:
+  related:
+    - https://prometheus.io/docs/concepts/metric_types/, Prometheus metric types
+flux/v0.x/tags: [prometheus]
+---
+
+Learn how to use Flux to work with the four core
+[Prometheus metric types](https://prometheus.io/docs/concepts/metric_types/) and
+process them for visualizations in InfluxDB dashboards:
+
+{{< children >}}
diff --git a/content/flux/v0.x/prometheus/metric-types/counter.md b/content/flux/v0.x/prometheus/metric-types/counter.md
new file mode 100644
index 000000000..249d95489
--- /dev/null
+++ b/content/flux/v0.x/prometheus/metric-types/counter.md
@@ -0,0 +1,516 @@
+---
+title: Work with Prometheus counters
+list_title: Counter
+description: >
+  Use Flux to query and transform Prometheus **counter** metrics stored in InfluxDB.
+  A counter is a cumulative metric that represents a single
+  [monotonically increasing counter](https://en.wikipedia.org/wiki/Monotonic_function)
+  whose value can only increase or be reset to zero on restart.
+menu:
+  flux_0_x:
+    name: Counter
+    parent: Prometheus metric types
+weight: 101
+related:
+  - https://prometheus.io/docs/concepts/metric_types/, Prometheus metric types
+  - /{{< latest "influxdb" >}}/reference/prometheus-metrics/
+flux/v0.x/tags: [prometheus]
+---
+
+Use Flux to query and transform Prometheus **counter** metrics stored in InfluxDB.
+
+> A _counter_ is a cumulative metric that represents a single
+> [monotonically increasing counter](https://en.wikipedia.org/wiki/Monotonic_function)
+> whose value can only increase or be reset to zero on restart.
+>
+> {{% cite %}}[Prometheus metric types](https://prometheus.io/docs/concepts/metric_types/#counter){{% /cite %}}
+
+##### Example counter metric in Prometheus format
+```sh
+# HELP example_counter_total Total representing an example counter metric
+# TYPE example_counter_total counter
+example_counter_total 282327
+```
+
+Because counters can periodically reset to 0, **any query involving counter
+metrics should [normalize the data](#normalize-counter-resets) to account for
+counter resets** before further processing.
+
+The examples below include example data collected from the **InfluxDB OSS 2.x `/metrics` endpoint**
+using `prometheus.scrape()` and stored in InfluxDB.
+
+{{% note %}}
+#### Prometheus metric parsing formats
+Query structure depends on the [Prometheus metric parsing format](/{{< latest "influxdb" >}}/reference/prometheus-metrics/)
+used to scrape the Prometheus metrics.
+Select the appropriate metric format version below.
+{{% /note %}}
+
+- [Normalize counter resets](#normalize-counter-resets)
+- [Calculate changes between normalized counter values](#calculate-changes-between-normalized-counter-values)
+- [Calculate the rate of change in normalized counter values](#calculate-the-rate-of-change-in-normalized-counter-values)
+
+## Normalize counter resets
+
+{{< tabs-wrapper >}}
+{{% tabs "small" %}}
+[Metric version 2](#)
+[Metric version 1](#)
+{{% /tabs %}}
+{{% tab-content %}}
+
+1. Filter results by the `prometheus` measurement and **counter metric name** field.
+2. Use [`increase()`](/flux/v0.x/stdlib/universe/increase/) to normalize counter resets.
+`increase()` returns the cumulative sum of positive changes in column values.
+
+{{% note %}}
+`increase()` accounts for counter resets, but may lose some precision on reset
+depending on your scrape interval.
+On counter reset, `increase()` assumes no increase.
+{{% /note %}}
+
+```js
+from(bucket: "example-bucket")
+  |> range(start: -1m)
+  |> filter(fn: (r) =>
+    r._measurement == "prometheus" and
+    r._field == "http_query_request_bytes"
+  )
+  |> increase()
+```
+
+{{< flex >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-counter-increase-input.png" alt="Raw Prometheus counter metric in InfluxDB" />}}
+{{< /flex-content >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-counter-increase-output.png" alt="Increase on Prometheus counter metric in InfluxDB" />}}
+{{< /flex-content >}}
+{{< /flex >}}
+
+{{< expand-wrapper >}}
+{{% expand "View example input and output data" %}}
+
+#### Example input {id="example-input-2"}
+| _time                | _measurement | _field                   | _value |
+| :------------------- | :----------- | :----------------------- | -----: |
+| 2021-01-01T00:00:00Z | prometheus   | http_query_request_bytes |   4302 |
+| 2021-01-01T00:00:10Z | prometheus   | http_query_request_bytes |   4844 |
+| 2021-01-01T00:00:20Z | prometheus   | http_query_request_bytes |   5091 |
+| 2021-01-01T00:00:30Z | prometheus   | http_query_request_bytes |     13 |
+| 2021-01-01T00:00:40Z | prometheus   | http_query_request_bytes |    215 |
+| 2021-01-01T00:00:50Z | prometheus   | http_query_request_bytes |    762 |
+| 2021-01-01T00:01:00Z | prometheus   | http_query_request_bytes |   1108 |
+
+#### Example output {id="example-output-2"}
+| _time                | _measurement | _field                   | _value |
+| :------------------- | :----------- | :----------------------- | -----: |
+| 2021-01-01T00:00:10Z | prometheus   | http_query_request_bytes |    542 |
+| 2021-01-01T00:00:20Z | prometheus   | http_query_request_bytes |    789 |
+| 2021-01-01T00:00:30Z | prometheus   | http_query_request_bytes |    789 |
+| 2021-01-01T00:00:40Z | prometheus   | http_query_request_bytes |    991 |
+| 2021-01-01T00:00:50Z | prometheus   | http_query_request_bytes |   1538 |
+| 2021-01-01T00:01:00Z | prometheus   | http_query_request_bytes |   1884 |
+{{% /expand %}}
+{{< /expand-wrapper >}}
+{{% /tab-content %}}
+
+{{% tab-content %}}
+
+1. Filter results by the **counter metric name** measurement and `counter` field.
+2. Use [`increase()`](/flux/v0.x/stdlib/universe/increase/) to normalize counter resets.
+`increase()` returns the cumulative sum of positive changes in column values.
+
+{{% note %}}
+`increase()` accounts for counter resets, but may lose some precision on reset
+depending on your scrape interval.
+On counter reset, `increase()` assumes no increase.
+{{% /note %}}
+
+```js
+from(bucket: "example-bucket")
+  |> range(start: -1m)
+  |> filter(fn: (r) =>
+    r._measurement == "http_query_request_bytes" and
+    r._field == "counter"
+  )
+  |> increase()
+```
+
+{{< flex >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-counter-increase-input.png" alt="Raw Prometheus counter metric in InfluxDB" />}}
+{{< /flex-content >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-counter-increase-output.png" alt="Increase on Prometheus counter metric in InfluxDB" />}}
+{{< /flex-content >}}
+{{< /flex >}}
+
+{{< expand-wrapper >}}
+{{% expand "View example input and output data" %}}
+
+#### Example input {id="example-input-1"}
+| _time                | _measurement             | _field  | _value |
+| :------------------- | :----------------------- | :------ | -----: |
+| 2021-01-01T00:00:00Z | http_query_request_bytes | counter |   4302 |
+| 2021-01-01T00:00:10Z | http_query_request_bytes | counter |   4844 |
+| 2021-01-01T00:00:20Z | http_query_request_bytes | counter |   5091 |
+| 2021-01-01T00:00:30Z | http_query_request_bytes | counter |     13 |
+| 2021-01-01T00:00:40Z | http_query_request_bytes | counter |    215 |
+| 2021-01-01T00:00:50Z | http_query_request_bytes | counter |    762 |
+| 2021-01-01T00:01:00Z | http_query_request_bytes | counter |   1108 |
+
+#### Example output {id="example-output-1"}
+| _time                | _measurement             | _field  | _value |
+| :------------------- | :----------------------- | :------ | -----: |
+| 2021-01-01T00:00:10Z | http_query_request_bytes | counter |    542 |
+| 2021-01-01T00:00:20Z | http_query_request_bytes | counter |    789 |
+| 2021-01-01T00:00:30Z | http_query_request_bytes | counter |    789 |
+| 2021-01-01T00:00:40Z | http_query_request_bytes | counter |    991 |
+| 2021-01-01T00:00:50Z | http_query_request_bytes | counter |   1538 |
+| 2021-01-01T00:01:00Z | http_query_request_bytes | counter |   1884 |
+{{% /expand %}}
+{{< /expand-wrapper >}}
+{{% /tab-content %}}
+{{< /tabs-wrapper >}}
+
+## Calculate changes between normalized counter values
+Use [`difference()`](/flux/v0.x/stdlib/universe/difference/) with
+[normalized counter data](#normalize-counter-resets) to return the difference
+between subsequent values.
+
+{{< tabs-wrapper >}}
+{{% tabs "small" %}}
+[Metric version 2](#)
+[Metric version 1](#)
+{{% /tabs %}}
+{{% tab-content %}}
+
+```js
+from(bucket: "example-bucket")
+  |> range(start: -1m)
+  |> filter(fn: (r) =>
+    r._measurement == "prometheus" and
+    r._field == "http_query_request_bytes"
+  )
+  |> increase()
+  |> difference()
+```
+
+{{< flex >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-counter-normalized-input.png" alt="Raw Prometheus counter metric in InfluxDB" />}}
+{{< /flex-content >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-counter-difference-output.png" alt="Normalize Prometheus counter metric to account for counter resets" />}}
+{{< /flex-content >}}
+{{< /flex >}}
+
+{{< expand-wrapper >}}
+{{% expand "View example input and output data" %}}
+
+#### Example normalized counter data  {id="example-normalized-counter-data-2"}
+| _time                | _measurement | _field                   | _value |
+| :------------------- | :----------- | :----------------------- | -----: |
+| 2021-01-01T00:00:10Z | prometheus   | http_query_request_bytes |    542 |
+| 2021-01-01T00:00:20Z | prometheus   | http_query_request_bytes |    789 |
+| 2021-01-01T00:00:30Z | prometheus   | http_query_request_bytes |    789 |
+| 2021-01-01T00:00:40Z | prometheus   | http_query_request_bytes |    991 |
+| 2021-01-01T00:00:50Z | prometheus   | http_query_request_bytes |   1538 |
+| 2021-01-01T00:01:00Z | prometheus   | http_query_request_bytes |   1884 |
+
+#### Example difference output {id="example-difference-output-2"}
+| _time                | _measurement | _field                   | _value |
+| :------------------- | :----------- | :----------------------- | -----: |
+| 2021-01-01T00:00:20Z | prometheus   | http_query_request_bytes |    247 |
+| 2021-01-01T00:00:30Z | prometheus   | http_query_request_bytes |      0 |
+| 2021-01-01T00:00:40Z | prometheus   | http_query_request_bytes |    202 |
+| 2021-01-01T00:00:50Z | prometheus   | http_query_request_bytes |    547 |
+| 2021-01-01T00:01:00Z | prometheus   | http_query_request_bytes |    346 |
+
+{{% /expand %}}
+{{< /expand-wrapper >}}
+{{% /tab-content %}}
+{{% tab-content %}}
+
+```js
+from(bucket: "example-bucket")
+  |> range(start: -1m)
+  |> filter(fn: (r) =>
+    r._measurement == "http_query_request_bytes" and
+    r._field == "counter"
+  )
+  |> increase()
+  |> difference()
+```
+
+{{< flex >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-counter-normalized-input.png" alt="Raw Prometheus counter metric in InfluxDB" />}}
+{{< /flex-content >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-counter-difference-output.png" alt="Normalize Prometheus counter metric to account for counter resets" />}}
+{{< /flex-content >}}
+{{< /flex >}}
+
+{{< expand-wrapper >}}
+{{% expand "View example input and output data" %}}
+
+#### Example normalized counter data {id="example-normalized-counter-data-1"}
+| _time                | _measurement             | _field  | _value |
+| :------------------- | :----------------------- | :------ | -----: |
+| 2021-01-01T00:00:10Z | http_query_request_bytes | counter |    542 |
+| 2021-01-01T00:00:20Z | http_query_request_bytes | counter |    789 |
+| 2021-01-01T00:00:30Z | http_query_request_bytes | counter |    789 |
+| 2021-01-01T00:00:40Z | http_query_request_bytes | counter |    991 |
+| 2021-01-01T00:00:50Z | http_query_request_bytes | counter |   1538 |
+| 2021-01-01T00:01:00Z | http_query_request_bytes | counter |   1884 |
+
+#### Example difference output {id="example-difference-output-1"}
+| _time                | _measurement             | _field  | _value |
+| :------------------- | :----------------------- | :------ | -----: |
+| 2021-01-01T00:00:20Z | http_query_request_bytes | counter |    247 |
+| 2021-01-01T00:00:30Z | http_query_request_bytes | counter |      0 |
+| 2021-01-01T00:00:40Z | http_query_request_bytes | counter |    202 |
+| 2021-01-01T00:00:50Z | http_query_request_bytes | counter |    547 |
+| 2021-01-01T00:01:00Z | http_query_request_bytes | counter |    346 |
+
+{{% /expand %}}
+{{< /expand-wrapper >}}
+{{% /tab-content %}}
+{{< /tabs-wrapper >}}
+
+## Calculate the rate of change in normalized counter values
+Use [`derivative()`](/flux/v0.x/stdlib/universe/derivative/) to calculate the rate
+of change between [normalized counter values](#normalize-counter-resets).
+By default, `derivative()` returns the rate of change per second.
+Use the [`unit` parameter](/flux/v0.x/stdlib/universe/derivative/#unit) to
+customize the rate unit.
+
+{{< tabs-wrapper >}}
+{{% tabs "small" %}}
+[Metric version 2](#)
+[Metric version 1](#)
+{{% /tabs %}}
+{{% tab-content %}}
+
+```js
+from(bucket: "example-bucket")
+  |> range(start: -1m)
+  |> filter(fn: (r) =>
+    r._measurement == "prometheus" and
+    r._field == "http_query_request_bytes"
+  )
+  |> increase()
+  |> derivative()
+```
+
+{{< flex >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-counter-normalized-input.png" alt="Normalized Prometheus counter metric in InfluxDB" />}}
+{{< /flex-content >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-counter-derivative-output.png" alt="Calculate the rate of change in Prometheus counter metric with Flux" />}}
+{{< /flex-content >}}
+{{< /flex >}}
+
+{{< expand-wrapper >}}
+{{% expand "View example input and output data" %}}
+
+#### Example normalized counter data {id="example-normalized-counter-data-2-1"}
+| _time                | _measurement | _field                   | _value |
+| :------------------- | :----------- | :----------------------- | -----: |
+| 2021-01-01T00:00:10Z | prometheus   | http_query_request_bytes |    542 |
+| 2021-01-01T00:00:20Z | prometheus   | http_query_request_bytes |    789 |
+| 2021-01-01T00:00:30Z | prometheus   | http_query_request_bytes |    789 |
+| 2021-01-01T00:00:40Z | prometheus   | http_query_request_bytes |    991 |
+| 2021-01-01T00:00:50Z | prometheus   | http_query_request_bytes |   1538 |
+| 2021-01-01T00:01:00Z | prometheus   | http_query_request_bytes |   1884 |
+
+#### Example derivative output {id="example-derivative-output-2"}
+| _time                | _measurement | _field                   | _value |
+| :------------------- | :----------- | :----------------------- | -----: |
+| 2021-01-01T00:00:20Z | prometheus   | http_query_request_bytes |   24.7 |
+| 2021-01-01T00:00:30Z | prometheus   | http_query_request_bytes |    0.0 |
+| 2021-01-01T00:00:40Z | prometheus   | http_query_request_bytes |   20.2 |
+| 2021-01-01T00:00:50Z | prometheus   | http_query_request_bytes |   54.7 |
+| 2021-01-01T00:01:00Z | prometheus   | http_query_request_bytes |   34.6 |
+
+{{% /expand %}}
+{{< /expand-wrapper >}}
+{{% /tab-content %}}
+{{% tab-content %}}
+
+```js
+from(bucket: "example-bucket")
+  |> range(start: -1m)
+  |> filter(fn: (r) =>
+    r._measurement == "http_query_request_bytes" and
+    r._field == "counter"
+  )
+  |> increase()
+  |> derivative()
+```
+
+{{< flex >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-counter-normalized-input.png" alt="Normalized Prometheus counter metric in InfluxDB" />}}
+{{< /flex-content >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-counter-derivative-output.png" alt="Calculate the rate of change in Prometheus counter metric with Flux" />}}
+{{< /flex-content >}}
+{{< /flex >}}
+
+{{< expand-wrapper >}}
+{{% expand "View example input and output data" %}}
+
+#### Example normalized counter data {id="example-normalized-counter-data-1-1"}
+| _time                | _measurement             | _field  | _value |
+| :------------------- | :----------------------- | :------ | -----: |
+| 2021-01-01T00:00:10Z | http_query_request_bytes | counter |    542 |
+| 2021-01-01T00:00:20Z | http_query_request_bytes | counter |    789 |
+| 2021-01-01T00:00:30Z | http_query_request_bytes | counter |    789 |
+| 2021-01-01T00:00:40Z | http_query_request_bytes | counter |    991 |
+| 2021-01-01T00:00:50Z | http_query_request_bytes | counter |   1538 |
+| 2021-01-01T00:01:00Z | http_query_request_bytes | counter |   1884 |
+
+#### Example derivative output {id="example-derivative-output-1"}
+| _time                | _measurement             | _field  | _value |
+| :------------------- | :----------------------- | :------ | -----: |
+| 2021-01-01T00:00:20Z | http_query_request_bytes | counter |   24.7 |
+| 2021-01-01T00:00:30Z | http_query_request_bytes | counter |    0.0 |
+| 2021-01-01T00:00:40Z | http_query_request_bytes | counter |   20.2 |
+| 2021-01-01T00:00:50Z | http_query_request_bytes | counter |   54.7 |
+| 2021-01-01T00:01:00Z | http_query_request_bytes | counter |   34.6 |
+
+{{% /expand %}}
+{{< /expand-wrapper >}}
+{{% /tab-content %}}
+{{< /tabs-wrapper >}}
+
+## Calculate the average rate of change in specified time windows
+To calculate the average rate of change in [normalized counter values](#normalize-counter-resets)
+in specified time windows:
+
+1. Import the [`experimental/aggregate` package](/flux/v0.x/stdlib/experimental/aggregate/).
+2. [Normalized counter values](#normalize-counter-resets).
+3. Use [`aggregate.rate()`](/flux/v0.x/stdlib/experimental/aggregate/rate/)
+   to calculate the average rate of change per time window.
+   
+    - Use the [`every` parameter](/flux/v0.x/stdlib/experimental/aggregate/rate/#every)
+      to define the time window interval.
+    - Use the [`unit` parameter](/flux/v0.x/stdlib/experimental/aggregate/rate/#unit)
+      to customize the rate unit.By default, `aggregate.rate()` returns the per second
+      (`1s`) rate of change.
+    - Use the [`groupColumns` parameter](/flux/v0.x/stdlib/experimental/aggregate/rate/#groupcolumns)
+      to specify columns to group by when performing the aggregation.
+
+{{< tabs-wrapper >}}
+{{% tabs "small" %}}
+[Metric version 2](#)
+[Metric version 1](#)
+{{% /tabs %}}
+{{% tab-content %}}
+
+```js
+import "experimental/aggregate"
+
+from(bucket: "example-bucket")
+  |> range(start: -1m)
+  |> filter(fn: (r) =>
+    r._measurement == "prometheus" and
+    r._field == "http_query_request_bytes"
+  )
+  |> increase()
+  |> aggregate.rate(every: 15s, unit: 1s)
+```
+
+{{< flex >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-counter-normalized-input.png" alt="Normalized Prometheus counter metric in InfluxDB" />}}
+{{< /flex-content >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-counter-aggregate-rate-output.png" alt="Calculate the rate of change in Prometheus counter metrics per time window with Flux" />}}
+{{< /flex-content >}}
+{{< /flex >}}
+
+{{< expand-wrapper >}}
+{{% expand "View example input and output data" %}}
+
+{{% note %}}
+`_start` and `_stop` columns have been omitted.
+{{% /note %}}
+
+#### Example normalized counter data {id="example-normalized-counter-data-2-2"}
+| _time                | _measurement | _field                   | _value |
+| :------------------- | :----------- | :----------------------- | -----: |
+| 2021-01-01T00:00:10Z | prometheus   | http_query_request_bytes |    542 |
+| 2021-01-01T00:00:20Z | prometheus   | http_query_request_bytes |    789 |
+| 2021-01-01T00:00:30Z | prometheus   | http_query_request_bytes |    789 |
+| 2021-01-01T00:00:40Z | prometheus   | http_query_request_bytes |    991 |
+| 2021-01-01T00:00:50Z | prometheus   | http_query_request_bytes |   1538 |
+| 2021-01-01T00:01:00Z | prometheus   | http_query_request_bytes |   1884 |
+
+#### Example aggregate.rate output {id="example-aggregaterate-output-2"}
+| _time                | _value |
+| :------------------- | -----: |
+| 2021-01-01T00:00:15Z |        |
+| 2021-01-01T00:01:30Z |   24.7 |
+| 2021-01-01T00:01:45Z |   10.1 |
+| 2021-01-01T00:01:00Z |   54.7 |
+
+{{% /expand %}}
+{{< /expand-wrapper >}}
+{{% /tab-content %}}
+{{% tab-content %}}
+```js
+import "experimental/aggregate"
+
+from(bucket: "example-bucket")
+  |> range(start: -1m)
+  |> filter(fn: (r) =>
+    r._measurement == "http_query_request_bytes" and
+    r._field == "counter"
+  )
+  |> increase()
+  |> aggregate.rate(every: 15s, unit: 1s)
+```
+
+{{< flex >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-counter-normalized-input.png" alt="Normalized Prometheus counter metric in InfluxDB" />}}
+{{< /flex-content >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-counter-aggregate-rate-output.png" alt="Calculate the rate of change in Prometheus counter metrics per time window with Flux" />}}
+{{< /flex-content >}}
+{{< /flex >}}
+
+{{< expand-wrapper >}}
+{{% expand "View example input and output data" %}}
+
+{{% note %}}
+`_start` and `_stop` columns have been omitted.
+{{% /note %}}
+
+#### Example normalized counter data {id="example-normalized-counter-data-1-2"}
+| _time                | _measurement             | _field  | _value |
+| :------------------- | :----------------------- | :------ | -----: |
+| 2021-01-01T00:00:10Z | http_query_request_bytes | counter |    542 |
+| 2021-01-01T00:00:20Z | http_query_request_bytes | counter |    789 |
+| 2021-01-01T00:00:30Z | http_query_request_bytes | counter |    789 |
+| 2021-01-01T00:00:40Z | http_query_request_bytes | counter |    991 |
+| 2021-01-01T00:00:50Z | http_query_request_bytes | counter |   1538 |
+| 2021-01-01T00:01:00Z | http_query_request_bytes | counter |   1884 |
+
+#### Example aggregate.rate output {id="example-aggregaterate-output-1"}
+| _time                | _value |
+| :------------------- | -----: |
+| 2021-01-01T00:00:15Z |        |
+| 2021-01-01T00:01:30Z |   24.7 |
+| 2021-01-01T00:01:45Z |   10.1 |
+| 2021-01-01T00:01:00Z |   54.7 |
+
+{{% /expand %}}
+{{< /expand-wrapper >}}
+{{% /tab-content %}}
+{{< /tabs-wrapper >}}
diff --git a/content/flux/v0.x/prometheus/metric-types/gauge.md b/content/flux/v0.x/prometheus/metric-types/gauge.md
new file mode 100644
index 000000000..9860d81dd
--- /dev/null
+++ b/content/flux/v0.x/prometheus/metric-types/gauge.md
@@ -0,0 +1,315 @@
+---
+title: Work with Prometheus gauges
+list_title: Gauge
+description: >
+  Use Flux to query and transform Prometheus **gauge** metrics stored in InfluxDB.
+  A gauge is a metric that represents a single numerical value that can
+  arbitrarily go up and down.
+menu:
+  flux_0_x:
+    name: Gauge
+    parent: Prometheus metric types
+weight: 101
+related:
+  - https://prometheus.io/docs/concepts/metric_types/, Prometheus metric types
+  - /{{< latest "influxdb" >}}/reference/prometheus-metrics/
+flux/v0.x/tags: [prometheus]
+---
+
+Use Flux to query and transform Prometheus **gauge** metrics stored in InfluxDB.
+
+> A _gauge_ is a metric that represents a single numerical value that can arbitrarily go up and down.
+>
+> {{% cite %}}[Prometheus metric types](https://prometheus.io/docs/concepts/metric_types/#gauge){{% /cite %}}
+
+##### Example gauge metric in Prometheus data
+```sh
+# HELP example_gauge_current Current number of items as example gauge metric
+# TYPE example_gauge_current gauge
+example_gauge_current 128
+```
+
+Generally gauge metrics can be used as they are reported and don't require any
+additional processing.
+
+The examples below include example data collected from the **InfluxDB OSS 2.x `/metrics` endpoint**
+using `prometheus.scrape()` and stored in InfluxDB.
+
+{{% note %}}
+#### Prometheus metric parsing formats
+Query structure depends on the [Prometheus metric parsing format](/{{< latest "influxdb" >}}/reference/prometheus-metrics/)
+used to scrape the Prometheus metrics.
+Select the appropriate metric format version below.
+{{% /note %}}
+
+- [Calculate the rate of change in gauge values](#calculate-the-rate-of-change-in-gauge-values)
+- [Calculate the average rate of change in specified time windows](#calculate-the-average-rate-of-change-in-specified-time-windows)
+
+## Calculate the rate of change in gauge values
+
+{{< tabs-wrapper >}}
+{{% tabs "small" %}}
+[Metric version 2](#)
+[Metric version 1](#)
+{{% /tabs %}}
+{{% tab-content %}}
+
+1.  Filter results by the `prometheus` measurement and **counter metric name** field.
+2.  Use [`derivative()`](/flux/v0.x/stdlib/universe/derivative/) to calculate the rate
+    of change between gauge values.
+    By default, `derivative()` returns the rate of change per second.
+    Use the [`unit` parameter](/flux/v0.x/stdlib/universe/derivative/#unit) to
+    customize the rate unit.
+    To replace negative derivatives with null values, set the
+    [`nonNegative` parameter](/flux/v0.x/stdlib/universe/derivative/#unit) to `true`.
+
+```js
+from(bucket: "example-bucket")
+  |> range(start: -1m)
+  |> filter(fn: (r) =>
+    r._measurement == "prometheus" and
+    r._field == "go_goroutines"
+  )
+  |> increase()
+  |> derivative(nonNegative: true)
+```
+
+{{< flex >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-gauge-input.png" alt="Raw Prometheus gauge metric in InfluxDB" />}}
+{{< /flex-content >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-gauge-derivative-output.png" alt="Derivative of Prometheus gauge metrics in InfluxDB" />}}
+{{< /flex-content >}}
+{{< /flex >}}
+
+{{< expand-wrapper >}}
+{{% expand "View example input and output data" %}}
+
+#### Example normalized counter data
+| _time                | _measurement | _field        |  _value |
+| :------------------- | :----------- | :------------ | ------: |
+| 2021-01-01T00:00:00Z | prometheus   | go_goroutines | 1571.97 |
+| 2021-01-01T00:00:10Z | prometheus   | go_goroutines | 1577.35 |
+| 2021-01-01T00:00:20Z | prometheus   | go_goroutines | 1591.67 |
+| 2021-01-01T00:00:30Z | prometheus   | go_goroutines | 1598.85 |
+| 2021-01-01T00:00:40Z | prometheus   | go_goroutines |  1600.0 |
+| 2021-01-01T00:00:50Z | prometheus   | go_goroutines | 1598.04 |
+| 2021-01-01T00:01:00Z | prometheus   | go_goroutines | 1602.93 |
+
+#### Example difference output
+| _time                | _measurement | _field        |             _value |
+| :------------------- | :----------- | :------------ | -----------------: |
+| 2021-01-01T00:00:10Z | prometheus   | go_goroutines | 0.5379999999999882 |
+| 2021-01-01T00:00:20Z | prometheus   | go_goroutines | 1.4320000000000164 |
+| 2021-01-01T00:00:30Z | prometheus   | go_goroutines | 0.7179999999999837 |
+| 2021-01-01T00:00:40Z | prometheus   | go_goroutines | 0.1150000000000091 |
+| 2021-01-01T00:00:50Z | prometheus   | go_goroutines |                    |
+| 2021-01-01T00:01:00Z | prometheus   | go_goroutines |   0.48900000000001 |
+
+{{% /expand %}}
+{{< /expand-wrapper >}}
+{{% /tab-content %}}
+{{% tab-content %}}
+
+1.  Filter results by the **counter metric name** measurement and `gauge` field.
+2.  Use [`derivative()`](/flux/v0.x/stdlib/universe/derivative/) to calculate the rate
+    of change between gauge values.
+    By default, `derivative()` returns the rate of change per second.
+    Use the [`unit` parameter](/flux/v0.x/stdlib/universe/derivative/#unit) to
+    customize the rate unit.
+    To replace negative derivatives with null values, set the
+    [`nonNegative` parameter](/flux/v0.x/stdlib/universe/derivative/#unit) to `true`.
+
+```js
+from(bucket: "example-bucket")
+  |> range(start: -1m)
+  |> filter(fn: (r) =>
+    r._measurement == "go_goroutines" and
+    r._field == "gauge"
+  )
+  |> increase()
+  |> derivative(nonNegative: true)
+```
+
+{{< flex >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-gauge-input.png" alt="Raw Prometheus gauge metric in InfluxDB" />}}
+{{< /flex-content >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-gauge-derivative-output.png" alt="Derivative of Prometheus gauge metrics in InfluxDB" />}}
+{{< /flex-content >}}
+{{< /flex >}}
+
+{{< expand-wrapper >}}
+{{% expand "View example input and output data" %}}
+
+#### Example gauge data
+| _time                | _measurement  | _field |  _value |
+| :------------------- | :------------ | :----- | ------: |
+| 2021-01-01T00:00:00Z | go_goroutines | gauge  | 1571.97 |
+| 2021-01-01T00:00:10Z | go_goroutines | gauge  | 1577.35 |
+| 2021-01-01T00:00:20Z | go_goroutines | gauge  | 1591.67 |
+| 2021-01-01T00:00:30Z | go_goroutines | gauge  | 1598.85 |
+| 2021-01-01T00:00:40Z | go_goroutines | gauge  |  1600.0 |
+| 2021-01-01T00:00:50Z | go_goroutines | gauge  | 1598.04 |
+| 2021-01-01T00:01:00Z | go_goroutines | gauge  | 1602.93 |
+
+#### Example difference output
+| _time                | _measurement  | _field |             _value |
+| :------------------- | :------------ | :----- | -----------------: |
+| 2021-01-01T00:00:10Z | go_goroutines | gauge  | 0.5379999999999882 |
+| 2021-01-01T00:00:20Z | go_goroutines | gauge  | 1.4320000000000164 |
+| 2021-01-01T00:00:30Z | go_goroutines | gauge  | 0.7179999999999837 |
+| 2021-01-01T00:00:40Z | go_goroutines | gauge  | 0.1150000000000091 |
+| 2021-01-01T00:00:50Z | go_goroutines | gauge  |                    |
+| 2021-01-01T00:01:00Z | go_goroutines | gauge  |   0.48900000000001 |
+
+{{% /expand %}}
+{{< /expand-wrapper >}}
+{{% /tab-content %}}
+{{< /tabs-wrapper >}}
+
+## Calculate the average rate of change in specified time windows
+
+{{< tabs-wrapper >}}
+{{% tabs "small" %}}
+[Metric version 2](#)
+[Metric version 1](#)
+{{% /tabs %}}
+{{% tab-content %}}
+
+1.  Import the [`experimental/aggregate` package](/flux/v0.x/stdlib/experimental/aggregate/).
+2.  Filter results by the `prometheus` measurement and **counter metric name** field.
+3.  Use [`aggregate.rate()`](/flux/v0.x/stdlib/experimental/aggregate/rate/)
+    to calculate the average rate of change per time window.
+   
+      - Use the [`every` parameter](/flux/v0.x/stdlib/experimental/aggregate/rate/#every)
+        to define the time window interval.
+      - Use the [`unit` parameter](/flux/v0.x/stdlib/experimental/aggregate/rate/#unit)
+        to customize the rate unit. By default, `aggregate.rate()` returns the per second
+        (`1s`) rate of change.
+      - Use the [`groupColumns` parameter](/flux/v0.x/stdlib/experimental/aggregate/rate/#groupcolumns)
+        to specify columns to group by when performing the aggregation.
+
+```js
+import "experimental/aggregate"
+
+from(bucket: "example-bucket")
+  |> range(start: -1m)
+  |> filter(fn: (r) =>
+    r._measurement == "prometheus" and
+    r._field == "go_goroutines"
+  )
+  |> aggregate.rate(every: 10s, unit: 1s)
+```
+
+{{< flex >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-gauge-input.png" alt="Raw Prometheus gauge metric in InfluxDB" />}}
+{{< /flex-content >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-gauge-aggregate-rate-output.png" alt="Calculate the average rate of change of Prometheus gauge metrics per time window with Flux" />}}
+{{< /flex-content >}}
+{{< /flex >}}
+
+{{< expand-wrapper >}}
+{{% expand "View example input and output data" %}}
+
+{{% note %}}
+`_start` and `_stop` columns have been omitted.
+{{% /note %}}
+
+#### Example gauge data
+| _time                | _measurement | _field        |  _value |
+| :------------------- | :----------- | :------------ | ------: |
+| 2021-01-01T00:00:00Z | prometheus   | go_goroutines | 1571.97 |
+| 2021-01-01T00:00:10Z | prometheus   | go_goroutines | 1577.35 |
+| 2021-01-01T00:00:20Z | prometheus   | go_goroutines | 1591.67 |
+| 2021-01-01T00:00:30Z | prometheus   | go_goroutines | 1598.85 |
+| 2021-01-01T00:00:40Z | prometheus   | go_goroutines |  1600.0 |
+| 2021-01-01T00:00:50Z | prometheus   | go_goroutines | 1598.04 |
+| 2021-01-01T00:01:00Z | prometheus   | go_goroutines | 1602.93 |
+
+#### Example aggregate.rate output
+
+| _time                |             _value |
+| :------------------- | -----------------: |
+| 2021-01-01T00:00:10Z |                    |
+| 2021-01-01T00:00:20Z | 0.5379999999999882 |
+| 2021-01-01T00:00:30Z | 1.4320000000000164 |
+| 2021-01-01T00:00:40Z | 0.7179999999999837 |
+| 2021-01-01T00:00:50Z | 0.1150000000000091 |
+| 2021-01-01T00:01:00Z |                    |
+
+{{% /expand %}}
+{{< /expand-wrapper >}}
+{{% /tab-content %}}
+{{% tab-content %}}
+
+1.  Import the [`experimental/aggregate` package](/flux/v0.x/stdlib/experimental/aggregate/).
+2.  Filter results by the **counter metric name** measurement and `gauge` field.
+3.  Use [`aggregate.rate()`](/flux/v0.x/stdlib/experimental/aggregate/rate/)
+    to calculate the average rate of change per time window.
+   
+      - Use the [`every` parameter](/flux/v0.x/stdlib/experimental/aggregate/rate/#every)
+        to define the time window interval.
+      - Use the [`unit` parameter](/flux/v0.x/stdlib/experimental/aggregate/rate/#unit)
+        to customize the rate unit. By default, `aggregate.rate()` returns the per second
+        (`1s`) rate of change.
+      - Use the [`groupColumns` parameter](/flux/v0.x/stdlib/experimental/aggregate/rate/#groupcolumns)
+        to specify columns to group by when performing the aggregation.
+
+```js
+import "experimental/aggregate"
+
+from(bucket: "example-bucket")
+  |> range(start: -1m)
+  |> filter(fn: (r) =>
+    r._measurement == "go_goroutines" and
+    r._field == "gauge"
+  )
+  |> aggregate.rate(every: 10s, unit: 1s)
+```
+
+{{< flex >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-gauge-input.png" alt="Raw Prometheus gauge metric in InfluxDB" />}}
+{{< /flex-content >}}
+{{< flex-content >}}
+{{< img-hd src="/img/flux/0-x-prometheus-gauge-aggregate-rate-output.png" alt="Calculate the average rate of change of Prometheus gauge metrics per time window with Flux" />}}
+{{< /flex-content >}}
+{{< /flex >}}
+
+{{< expand-wrapper >}}
+{{% expand "View example input and output data" %}}
+
+{{% note %}}
+`_start` and `_stop` columns have been omitted.
+{{% /note %}}
+
+#### Example normalized counter data {id="example-normalized-counter-data-2"}
+| _time                | _measurement  | _field |  _value |
+| :------------------- | :------------ | :----- | ------: |
+| 2021-01-01T00:00:00Z | go_goroutines | gauge  | 1571.97 |
+| 2021-01-01T00:00:10Z | go_goroutines | gauge  | 1577.35 |
+| 2021-01-01T00:00:20Z | go_goroutines | gauge  | 1591.67 |
+| 2021-01-01T00:00:30Z | go_goroutines | gauge  | 1598.85 |
+| 2021-01-01T00:00:40Z | go_goroutines | gauge  |  1600.0 |
+| 2021-01-01T00:00:50Z | go_goroutines | gauge  | 1598.04 |
+| 2021-01-01T00:01:00Z | go_goroutines | gauge  | 1602.93 |
+
+#### Example aggregate.rate output
+| _time                |             _value |
+| :------------------- | -----------------: |
+| 2021-01-01T00:00:10Z |                    |
+| 2021-01-01T00:00:20Z | 0.5379999999999882 |
+| 2021-01-01T00:00:30Z | 1.4320000000000164 |
+| 2021-01-01T00:00:40Z | 0.7179999999999837 |
+| 2021-01-01T00:00:50Z | 0.1150000000000091 |
+| 2021-01-01T00:01:00Z |                    |
+
+{{% /expand %}}
+{{< /expand-wrapper >}}
+{{% /tab-content %}}
+{{< /tabs-wrapper >}}
diff --git a/content/flux/v0.x/prometheus/metric-types/histogram.md b/content/flux/v0.x/prometheus/metric-types/histogram.md
new file mode 100644
index 000000000..2394ebc15
--- /dev/null
+++ b/content/flux/v0.x/prometheus/metric-types/histogram.md
@@ -0,0 +1,171 @@
+---
+title: Work with Prometheus histograms
+list_title: Histogram
+description: >
+  Use Flux to query and transform Prometheus **histogram** metrics stored in InfluxDB.
+  A histogram samples observations (usually things like request durations or
+  response sizes) and counts them in configurable buckets.
+  It also provides a sum of all observed values.
+menu:
+  flux_0_x:
+    name: Histogram
+    parent: Prometheus metric types
+weight: 101
+flux/v0.x/tags: [prometheus]
+related:
+  - https://prometheus.io/docs/concepts/metric_types/, Prometheus metric types
+  - /{{< latest "influxdb" >}}/reference/prometheus-metrics/
+  - /flux/v0.x/stdlib/experimental/prometheus/histogramQuantile/
+---
+
+Use Flux to query and transform Prometheus **histogram** metrics stored in InfluxDB.
+
+> A _histogram_ samples observations (usually things like request durations or
+> response sizes) and counts them in configurable buckets.
+> It also provides a sum of all observed values.
+>
+> {{% cite %}}[Prometheus metric types](https://prometheus.io/docs/concepts/metric_types/#histogram){{% /cite %}}
+
+##### Example histogram metric in Prometheus data
+```sh
+# HELP example_histogram_duration Duration of given tasks as example histogram metric
+# TYPE example_histogram_duration histogram
+example_histogram_duration_bucket{le="0.1"} 80
+example_histogram_duration_bucket{le="0.25"} 85
+example_histogram_duration_bucket{le="0.5"} 85
+example_histogram_duration_bucket{le="1"} 87
+example_histogram_duration_bucket{le="2.5"} 87
+example_histogram_duration_bucket{le="5"} 88
+example_histogram_duration_bucket{le="+Inf"} 88
+example_histogram_duration_sum 6.833441910000001
+example_histogram_duration_count 88
+```
+
+The examples below include example data collected from the **InfluxDB OSS 2.x `/metrics` endpoint**
+and stored in InfluxDB.
+
+{{% note %}}
+#### Prometheus metric parsing formats
+Query structure depends on the [Prometheus metric parsing format](/{{< latest "influxdb" >}}/reference/prometheus-metrics/)
+used to scrape the Prometheus metrics.
+Select the appropriate metric format version below.
+{{% /note %}}
+
+- [Calculate quantile values from Prometheus histograms](#calculate-quantile-values-from-prometheus-histograms)
+- [Calculate multiple quantiles from Prometheus histograms](#calculate-multiple-quantiles-from-prometheus-histograms)
+
+## Visualize Prometheus histograms in InfluxDB
+_InfluxDB does not currently support visualizing Prometheus histogram metrics
+as a traditional histogram. The existing [InfluxDB histogram visualization](/influxdb/cloud/visualize-data/visualization-types/histogram/)
+is **not compatible** with the format of Prometheus histogram data stored in InfluxDB._
+
+## Calculate quantile values from Prometheus histograms
+
+{{< tabs-wrapper >}}
+{{% tabs "small" %}}
+[Metric version 2](#)
+[Metric version 1](#)
+{{% /tabs %}}
+{{% tab-content %}}
+1.  Import the [`experimental/prometheus` package](/flux/v0.x/stdlib/experimental/prometheus/).
+2.  Filter results by the `prometheus` measurement and **histogram metric name** field.
+3.  _(Recommended)_ Use [`aggregateWindow()`](/flux/v0.x/stdlib/universe/aggregatewindow/)
+    to downsample data and optimize the query.
+4.  Use [`prometheus.histogramQuantile()`](/flux/v0.x/stdlib/experimental/prometheus/histogramQuantile/)
+    to calculate a specific quantile.
+
+```js
+import "experimental/prometheus"
+
+from(bucket: "example-bucket")
+  |> start(range: -1h)
+  |> filter(fn: (r) => r._measurement == "prometheus")
+  |> filter(fn: (r) => r._field == "qc_all_duration_seconds")
+  |> aggregateWindow(every: 1m, fn: mean, createEmpty: false)
+  |> prometheus.histogramQuantile(quantile: 0.99)
+```
+{{% /tab-content %}}
+
+{{% tab-content %}}
+1.  Import the [`experimental/prometheus` package](/flux/v0.x/stdlib/experimental/prometheus/).
+2.  Filter results by the **histogram metric name** measurement.
+3.  _(Recommended)_ Use [`aggregateWindow()`](/flux/v0.x/stdlib/universe/aggregatewindow/)
+    to downsample data and optimize the query.
+    **Set the `createEmpty` parameter to `false`.**
+4.  Use [`prometheus.histogramQuantile()`](/flux/v0.x/stdlib/experimental/prometheus/histogramQuantile)
+    to calculate a specific quantile. Specify the `metricVersion` as `1`.
+
+```js
+import "experimental/prometheus"
+
+from(bucket: "example-bucket")
+  |> start(range: -1h)
+  |> filter(fn: (r) => r._measurement == "qc_all_duration_seconds")
+  |> aggregateWindow(every: 1m, fn: mean, createEmpty: false)
+  |> prometheus.histogramQuantile(quantile: 0.99, metricVersion: 1)
+```
+{{% /tab-content %}}
+{{< /tabs-wrapper >}}
+
+{{< img-hd src="/img/flux/0-x-prometheus-histogram-quantile.png" alt="Calculate a quantile from Prometheus histogram metrics" />}}
+
+{{% note %}}
+#### Set createEmpty to false
+When using `aggregateWindow()` to downsample data for `prometheus.histogramQuantile`,
+**set the `createEmpty` parameter to `false`**.
+Empty tables produced from `aggregateWindow()` result in the following error.
+
+```
+histogramQuantile: unexpected null in the countColumn
+```
+{{% /note %}}
+
+## Calculate multiple quantiles from Prometheus histograms
+
+1. Query histogram data using [steps 1-2 (optionally 3) from above](#calculate-quantiles-from-prometheus-histograms).
+2. Use [`union()`](/flux/v0.x/stdlib/universe/union/) to union multiple
+    streams of tables that calculate unique quantiles.
+
+{{< code-tabs-wrapper >}}
+{{% code-tabs "small" %}}
+[Metric version 2](#)
+[Metric version 1](#)
+{{% /code-tabs %}}
+{{% code-tab-content %}}
+```js
+import "experimental/prometheus"
+
+data = from(bucket: "example-bucket")
+  |> start(range: -1h)
+  |> filter(fn: (r) => r._measurement == "prometheus")
+  |> filter(fn: (r) => r._field == "qc_all_duration_seconds")
+  |> aggregateWindow(every: 1m, fn: mean, createEmpty: false)
+  
+union(tables: [
+  data |> prometheus.histogramQuantile(quantile: 0.99),
+  data |> prometheus.histogramQuantile(quantile: 0.5),
+  data |> prometheus.histogramQuantile(quantile: 0.25)
+])
+```
+{{% /code-tab-content %}}
+
+{{% code-tab-content %}}
+```js
+import "experimental/prometheus"
+
+data = from(bucket: "example-bucket")
+  |> start(range: -1h)
+  |> filter(fn: (r) => r._measurement == "qc_all_duration_seconds")
+  |> aggregateWindow(every: 1m, fn: mean, createEmpty: false)
+
+union(tables: [
+  data |> prometheus.histogramQuantile(quantile: 0.99, metricVersion: 1),
+  data |> prometheus.histogramQuantile(quantile: 0.5, metricVersion: 1),
+  data |> prometheus.histogramQuantile(quantile: 0.25, metricVersion: 1)
+])
+  
+```
+{{% /code-tab-content %}}
+{{< /code-tabs-wrapper >}}
+
+{{< img-hd src="/img/flux/0-x-prometheus-histogram-multiple-quantiles.png" alt="Calculate multiple quantiles from Prometheus histogram metrics" />}}
diff --git a/content/flux/v0.x/prometheus/metric-types/summary.md b/content/flux/v0.x/prometheus/metric-types/summary.md
new file mode 100644
index 000000000..857d828c5
--- /dev/null
+++ b/content/flux/v0.x/prometheus/metric-types/summary.md
@@ -0,0 +1,138 @@
+---
+title: Work with Prometheus summaries
+list_title: Summary
+description: >
+  Use Flux to query and transform Prometheus **summary** metrics stored in InfluxDB.
+  A summary samples observations, e.g. request durations and response sizes.
+  While it also provides a total count of observations and a sum of all observed
+  values, it calculates configurable quantiles over a sliding time window.
+menu:
+  flux_0_x:
+    name: Summary
+    parent: Prometheus metric types
+weight: 101
+flux/v0.x/tags: [prometheus]
+related:
+  - https://prometheus.io/docs/concepts/metric_types/, Prometheus metric types
+  - /{{< latest "influxdb" >}}/reference/prometheus-metrics/
+---
+
+Use Flux to query and transform Prometheus **summary** metrics stored in InfluxDB.
+
+> A _summary_ samples observations (usually things like request durations and response sizes).
+> While it also provides a total count of observations and a sum of all observed
+> values, it calculates configurable quantiles over a sliding time window.
+>
+> {{% cite %}}[Prometheus metric types](https://prometheus.io/docs/concepts/metric_types/#summary){{% /cite %}}
+
+##### Example summary metric in Prometheus data
+```sh
+# HELP task_executor_run_duration The duration in seconds between a run starting and finishing.
+# TYPE task_executor_run_duration summary
+example_summary_duration{label="foo",quantile="0.5"} 4.147907251
+example_summary_duration{label="foo",quantile="0.9"} 4.147907251
+example_summary_duration{label="foo",quantile="0.99"} 4.147907251
+example_summary_duration_sum{label="foo"} 2701.367126714001
+example_summary_duration_count{label="foo"} 539
+```
+
+The examples below include example data collected from the **InfluxDB OSS 2.x `/metrics` endpoint**
+and stored in InfluxDB.
+
+{{% note %}}
+#### Prometheus metric parsing formats
+Query structure depends on the [Prometheus metric parsing format](/{{< latest "influxdb" >}}/reference/prometheus-metrics/)
+used to scrape the Prometheus metrics.
+Select the appropriate metric format version below.
+{{% /note %}}
+
+- [Visualize summary metric quantile values](#visualize-summary-metric-quantile-values)  
+- [Derive average values from a summary metric](#derive-average-values-from-a-summary-metric)
+
+## Visualize summary metric quantile values
+Prometheus summary metrics provide quantile values that can be visualized without modification.
+
+{{< tabs-wrapper >}}
+{{% tabs "small" %}}
+[Metric version 2](#)
+[Metric version 1](#)
+{{% /tabs %}}
+{{% tab-content %}}
+
+1.  Filter by the `prometheus` measurement.
+2.  Filter by your **Prometheus metric name** field.
+
+```js
+from(bucket: "example-bucket")
+  |> range(start: -1m)
+  |> filter(fn: (r) => r._measurement == "prometheus")
+  |> filter(fn: (r) => r._field == "go_gc_duration_seconds")
+```
+{{% /tab-content %}}
+{{% tab-content %}}
+
+1.  Filter by your **Prometheus metric name** measurement.
+2.  Filter out the `sum` and `count` fields.
+
+```js
+from(bucket: "example-bucket")
+  |> range(start: -1m)
+  |> filter(fn: (r) => r._measurement == "go_gc_duration_seconds")
+  |> filter(fn: (r) => r._field != "count" and r._field != "sum")
+```
+{{% /tab-content %}}
+{{< /tabs-wrapper >}}
+
+{{< img-hd src="/img/flux/0-x-prometheus-summary-quantiles.png" alt="Visualize Prometheus summary quantiles" />}}
+
+## Derive average values from a summary metric
+Use the **sum** and **count** values provided in Prometheus summary metrics to
+derive an average summary value.
+
+{{< tabs-wrapper >}}
+{{% tabs "small" %}}
+[Metric version 2](#)
+[Metric version 1](#)
+{{% /tabs %}}
+{{% tab-content %}}
+
+1.  Filter by the `prometheus` measurement.
+2.  Filter by the `<metric_name>_count` and `<metric_name>_sum` fields.
+3.  Use [`pivot()`](/flux/v0.x/stdlib/universe/pivot/) to pivot fields into
+    columns based on time. Each row then contains a `<metric_name>_count` and
+    `<metric_name>_sum` column.
+4.  Divide the `<metric_name>_sum` column by the `<metric_name>_count` column to
+    produce a new `_value`.
+
+```js
+from(bucket: "example-bucket")
+  |> range(start: -1m)
+  |> filter(fn: (r) => r._measurement == "prometheus")
+  |> filter(fn: (r) =>
+    r._field == "go_gc_duration_seconds_count" or
+    r._field == "go_gc_duration_seconds_sum"
+  )
+  |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
+  |> map(fn: (r) => ({ r with
+    _value: r.go_gc_duration_seconds_sum / r.go_gc_duration_seconds_count
+  }))
+```
+{{% /tab-content %}}
+{{% tab-content %}}
+
+1.  Filter by your **Prometheus metric name** measurement.
+2.  Filter by the `count` and `sum` fields.
+3.  Use [`pivot()`](/flux/v0.x/stdlib/universe/pivot/) to pivot fields into columns.
+    Each row then contains a `count` and `sum` column.
+4.  Divide the `sum` column by the `count` column to produce a new `_value`.
+
+```js
+from(bucket: "example-bucket")
+  |> range(start: -1m)
+  |> filter(fn: (r) => r._measurement == "go_gc_duration_seconds")
+  |> filter(fn: (r) => r._field == "count" or r._field == "sum")
+  |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
+  |> map(fn: (r) => ({ r with _value: r.sum / r.count }))
+```
+{{% /tab-content %}}
+{{< /tabs-wrapper >}}
\ No newline at end of file
diff --git a/content/flux/v0.x/prometheus/scrape-prometheus.md b/content/flux/v0.x/prometheus/scrape-prometheus.md
new file mode 100644
index 000000000..40d5722c1
--- /dev/null
+++ b/content/flux/v0.x/prometheus/scrape-prometheus.md
@@ -0,0 +1,193 @@
+---
+title: Scrape Prometheus metrics
+description: >
+  Use the Flux [`prometheus.scrape`](/flux/v0.x/stdlib/experimental/prometheus/scrape/) function to
+  scrape Prometheus-formatted metrics from an HTTP-accessible endpoint.
+menu:
+  flux_0_x:
+    parent: Work with Prometheus
+weight: 101
+flux/v0.x/tags: [prometheus]
+related:
+  - https://prometheus.io/docs/concepts/data_model/, Prometheus data model
+  - /flux/v0.x/stdlib/experimental/prometheus/scrape/
+  - /influxdb/cloud/process-data/manage-tasks/create-task/, Create an InfluxDB task
+  - /{{< latest "influxdb" >}}/reference/prometheus-metrics/, InfluxDB Prometheus metric parsing formats
+  - /influxdb/cloud/write-data/developer-tools/scrape-prometheus-metrics, Scrape Prometheus metrics with InfluxDB Cloud
+  - /{{< latest "influxdb" >}}/write-data/developer-tools/scrape-prometheus-metrics, Scrape Prometheus metrics with InfluxDB OSS
+---
+
+To use Flux to scrape [Prometheus-formatted metrics](https://prometheus.io/docs/concepts/data_model/) 
+from an HTTP-accessible endpoint:
+
+1. Import the [`experimental/prometheus` package](/flux/v0.x/stdlib/experimental/prometheus/).
+2. Use [`prometheus.scrape`](/flux/v0.x/stdlib/experimental/prometheus/scrape/) and
+   specify the **url** to scrape metrics from.
+
+{{< keep-url >}}
+```js
+import "experimental/prometheus"
+
+prometheus.scrape(url: "http://localhost:8086/metrics")
+```
+
+## Output structure
+`prometheus.scrape()` returns a [stream of tables](/flux/v0.x/get-started/data-model/#stream-of-tables)
+with the following columns:
+
+- **_time**: Data timestamp
+- **_measurement**: `prometheus`
+- **_field**: [Prometheus metric name](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels)
+  _(`_bucket` is trimmed from histogram metric names)_
+- **_value**: [Prometheus metric value](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels)
+- **url**: URL metrics were scraped from
+- **Label columns**: A column for each [Prometheus label](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).
+  The column label is the label name and the column value is the label value.
+
+Tables are grouped by **_measurement**, **_field**, and **Label columns**.
+
+{{% note %}}
+#### Columns with the underscore prefix
+Columns with the underscore (`_`) prefix are considered "system" columns.
+Some Flux functions require these columns to function properly.
+{{% /note %}}
+
+### Example Prometheus query results
+The following are example Prometheus metrics scraped from the **InfluxDB OSS 2.x `/metrics`** endpoint:
+
+```sh
+# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
+# TYPE go_memstats_alloc_bytes_total counter
+go_memstats_alloc_bytes_total 1.42276424e+09
+# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
+# TYPE go_memstats_buck_hash_sys_bytes gauge
+go_memstats_buck_hash_sys_bytes 5.259247e+06
+# HELP task_executor_run_latency_seconds Records the latency between the time the run was due to run and the time the task started execution, by task type
+# TYPE task_executor_run_latency_seconds histogram
+task_executor_run_latency_seconds_bucket{task_type="system",le="0.25"} 4413
+task_executor_run_latency_seconds_bucket{task_type="system",le="0.5"} 11901
+task_executor_run_latency_seconds_bucket{task_type="system",le="1"} 12565
+task_executor_run_latency_seconds_bucket{task_type="system",le="2.5"} 12823
+task_executor_run_latency_seconds_bucket{task_type="system",le="5"} 12844
+task_executor_run_latency_seconds_bucket{task_type="system",le="10"} 12864
+task_executor_run_latency_seconds_bucket{task_type="system",le="+Inf"} 74429
+task_executor_run_latency_seconds_sum{task_type="system"} 4.256783538679698e+11
+task_executor_run_latency_seconds_count{task_type="system"} 74429
+# HELP task_executor_run_duration The duration in seconds between a run starting and finishing.
+# TYPE task_executor_run_duration summary
+task_executor_run_duration{taskID="00xx0Xx0xx00XX0x0",task_type="threshold",quantile="0.5"} 5.178160855
+task_executor_run_duration{taskID="00xx0Xx0xx00XX0x0",task_type="threshold",quantile="0.9"} 5.178160855
+task_executor_run_duration{taskID="00xx0Xx0xx00XX0x0",task_type="threshold",quantile="0.99"} 5.178160855
+task_executor_run_duration_sum{taskID="00xx0Xx0xx00XX0x0",task_type="threshold"} 2121.9758301650004
+task_executor_run_duration_count{taskID="00xx0Xx0xx00XX0x0",task_type="threshold"} 570
+```
+
+When scraped by Flux, these metrics return the following stream of tables:
+
+| _time                     | _measurement | url                           | _field                        |       _value |
+| :------------------------ | :----------- | :---------------------------- | :---------------------------- | -----------: |
+| {{< flux/current-time >}} | prometheus   | http://localhost:8086/metrics | go_memstats_alloc_bytes_total | 1422764240.0 |
+
+| _time                     | _measurement | url                           | _field                          |    _value |
+| :------------------------ | :----------- | :---------------------------- | :------------------------------ | --------: |
+| {{< flux/current-time >}} | prometheus   | http://localhost:8086/metrics | go_memstats_buck_hash_sys_bytes | 5259247.0 |
+
+| _time                     | _measurement | task_type | url                           | le   | _field                            | _value |
+| :------------------------ | :----------- | :-------- | :---------------------------- | :--- | :-------------------------------- | -----: |
+| {{< flux/current-time >}} | prometheus   | system    | http://localhost:8086/metrics | 0.25 | task_executor_run_latency_seconds |   4413 |
+
+| _time                     | _measurement | task_type | url                           | le  | _field                            | _value |
+| :------------------------ | :----------- | :-------- | :---------------------------- | :-- | :-------------------------------- | -----: |
+| {{< flux/current-time >}} | prometheus   | system    | http://localhost:8086/metrics | 0.5 | task_executor_run_latency_seconds |  11901 |
+
+| _time                     | _measurement | task_type | url                           | le  | _field                            | _value |
+| :------------------------ | :----------- | :-------- | :---------------------------- | :-- | :-------------------------------- | -----: |
+| {{< flux/current-time >}} | prometheus   | system    | http://localhost:8086/metrics | 1   | task_executor_run_latency_seconds |  12565 |
+
+| _time                     | _measurement | task_type | url                           | le  | _field                            | _value |
+| :------------------------ | :----------- | :-------- | :---------------------------- | :-- | :-------------------------------- | -----: |
+| {{< flux/current-time >}} | prometheus   | system    | http://localhost:8086/metrics | 2.5 | task_executor_run_latency_seconds |  12823 |
+
+| _time                     | _measurement | task_type | url                           | le  | _field                            | _value |
+| :------------------------ | :----------- | :-------- | :---------------------------- | :-- | :-------------------------------- | -----: |
+| {{< flux/current-time >}} | prometheus   | system    | http://localhost:8086/metrics | 5   | task_executor_run_latency_seconds |  12844 |
+
+| _time                     | _measurement | task_type | url                           | le   | _field                            | _value |
+| :------------------------ | :----------- | :-------- | :---------------------------- | :--- | :-------------------------------- | -----: |
+| {{< flux/current-time >}} | prometheus   | system    | http://localhost:8086/metrics | +Inf | task_executor_run_latency_seconds |  74429 |
+
+| _time                     | _measurement | task_type | url                           | _field                                |            _value |
+| :------------------------ | :----------- | :-------- | :---------------------------- | :------------------------------------ | ----------------: |
+| {{< flux/current-time >}} | prometheus   | system    | http://localhost:8086/metrics | task_executor_run_latency_seconds_sum | 425678353867.9698 |
+
+| _time                     | _measurement | task_type | url                           | _field                                  | _value |
+| :------------------------ | :----------- | :-------- | :---------------------------- | :-------------------------------------- | -----: |
+| {{< flux/current-time >}} | prometheus   | system    | http://localhost:8086/metrics | task_executor_run_latency_seconds_count |  74429 |
+
+| _time                     | _measurement | task_type | taskID            | url                           | quantile | _field                     |      _value |
+| :------------------------ | :----------- | :-------- | :---------------- | :---------------------------- | :------- | :------------------------- | ----------: |
+| {{< flux/current-time >}} | prometheus   | threshold | 00xx0Xx0xx00XX0x0 | http://localhost:8086/metrics | 0.5      | task_executor_run_duration | 5.178160855 |
+
+| _time                     | _measurement | task_type | taskID            | url                           | quantile | _field                     |      _value |
+| :------------------------ | :----------- | :-------- | :---------------- | :---------------------------- | :------- | :------------------------- | ----------: |
+| {{< flux/current-time >}} | prometheus   | threshold | 00xx0Xx0xx00XX0x0 | http://localhost:8086/metrics | 0.9      | task_executor_run_duration | 5.178160855 |
+
+| _time                     | _measurement | task_type | taskID            | url                           | quantile | _field                     |      _value |
+| :------------------------ | :----------- | :-------- | :---------------- | :---------------------------- | :------- | :------------------------- | ----------: |
+| {{< flux/current-time >}} | prometheus   | threshold | 00xx0Xx0xx00XX0x0 | http://localhost:8086/metrics | 0.99     | task_executor_run_duration | 5.178160855 |
+
+| _time                     | _measurement | task_type | taskID            | url                           | _field                         |             _value |
+| :------------------------ | :----------- | :-------- | :---------------- | :---------------------------- | :----------------------------- | -----------------: |
+| {{< flux/current-time >}} | prometheus   | threshold | 00xx0Xx0xx00XX0x0 | http://localhost:8086/metrics | task_executor_run_duration_sum | 2121.9758301650004 |
+
+| _time                     | _measurement | task_type | taskID            | url                           | _field                           | _value |
+| :------------------------ | :----------- | :-------- | :---------------- | :---------------------------- | :------------------------------- | -----: |
+| {{< flux/current-time >}} | prometheus   | threshold | 00xx0Xx0xx00XX0x0 | http://localhost:8086/metrics | task_executor_run_duration_count |    570 |
+
+{{% note %}}
+#### Different data structures for scraped Prometheus metrics
+[Telegraf](/{{< latest "telegraf" >}}/) and [InfluxDB](/{{< latest "influxdb" >}}/) 
+provide tools that scrape Prometheus metrics and store them in InfluxDB.
+Depending on the tool and and configuration you use to scrape metrics, 
+the resulting data structure may differ from the structure returned by `prometheus.scrape()`
+described [above](#output-structure).
+
+For information about the different data structures of scraped Prometheus metrics
+stored in InfluxDB, see [InfluxDB Prometheus metric parsing formats](/{{< latest "influxdb" >}}/reference/prometheus-metrics/).
+{{% /note %}}
+
+## Write Prometheus metrics to InfluxDB
+To write scraped Prometheus metrics to InfluxDB:
+
+1. Use [`prometheus.scrape`](/flux/v0.x/stdlib/experimental/prometheus/scrape)
+   to scrape Prometheus metrics.
+2. Use [`to()`](/flux/v0.x/stdlib/influxdata/influxdb/to/) to write the scraped
+   metrics to InfluxDB.
+
+```js
+import "experimental/prometheus"
+  
+prometheus.scrape(url: "http://example.com/metrics")
+  |> to(
+    bucket: "example-bucket",
+    host: "http://localhost:8086",
+    org: "example-org",
+    token: "mYsuP3R5eCR37t0K3n"  
+  )
+```
+
+### Write Prometheus metrics to InfluxDB at regular intervals
+To scrape Prometheus metrics and write them to InfluxDB at regular intervals,
+scrape Prometheus metrics in an [InfluxDB task](/influxdb/cloud/process-data/get-started/).
+
+```js
+import "experimental/prometheus"
+
+option task = {
+  name: "Scrape Prometheus metrics",
+  every: 10s
+}
+  
+prometheus.scrape(url: "http://example.com/metrics")
+  |> to(bucket: "example-bucket")
+```
diff --git a/content/flux/v0.x/stdlib/experimental/prometheus/scrape.md b/content/flux/v0.x/stdlib/experimental/prometheus/scrape.md
index cf3a70818..5db0dddb4 100644
--- a/content/flux/v0.x/stdlib/experimental/prometheus/scrape.md
+++ b/content/flux/v0.x/stdlib/experimental/prometheus/scrape.md
@@ -21,6 +21,7 @@ The `prometheus.scrape()` function retrieves [Prometheus-formatted metrics](http
 from a specified URL.
 The function groups metrics (including histogram and summary values) into individual tables.
 
+{{< keep-url >}}
 ```js
 import "experimental/prometheus"
 
diff --git a/content/influxdb/cloud/query-data/flux/histograms.md b/content/influxdb/cloud/query-data/flux/histograms.md
index 004f4e816..fb0f07b80 100644
--- a/content/influxdb/cloud/query-data/flux/histograms.md
+++ b/content/influxdb/cloud/query-data/flux/histograms.md
@@ -12,6 +12,7 @@ menu:
 weight: 210
 related:
   - /{{< latest "flux" >}}/stdlib/universe/histogram
+  - /{{< latest "flux" >}}/prometheus/metric-types/histogram/, Work with Prometheus histograms in Flux
 list_query_example: histogram
 ---
 
diff --git a/content/influxdb/cloud/reference/prometheus-metrics.md b/content/influxdb/cloud/reference/prometheus-metrics.md
new file mode 100644
index 000000000..3449e0f9a
--- /dev/null
+++ b/content/influxdb/cloud/reference/prometheus-metrics.md
@@ -0,0 +1,19 @@
+---
+title: Prometheus metric parsing formats
+description: >
+  When scraping [Prometheus-formatted metrics](https://prometheus.io/docs/concepts/data_model/)
+  and writing them to InfluxDB Cloud, metrics are parsed and stored in InfluxDB in different formats.
+menu:
+  influxdb_cloud_ref:
+    name: Prometheus metrics
+weight: 8
+influxdb/v2.0/tags: [prometheus]
+related:
+  - https://prometheus.io/docs/concepts/data_model/, Prometheus data model
+  - /influxdb/cloud/write-data/developer-tools/scrape-prometheus-metrics/
+  - /{{< latest "flux" >}}/prometheus/, Work with Prometheus in Flux
+  - /{{< latest "telegraf" >}}/plugins/#prometheus, Telegraf Prometheus input plugin
+  - /{{< latest "flux" >}}/stdlib/experimental/prometheus/scrape/
+---
+
+{{< duplicate-oss >}}
\ No newline at end of file
diff --git a/content/influxdb/cloud/write-data/developer-tools/scrape-prometheus-metrics.md b/content/influxdb/cloud/write-data/developer-tools/scrape-prometheus-metrics.md
new file mode 100644
index 000000000..c34ce2527
--- /dev/null
+++ b/content/influxdb/cloud/write-data/developer-tools/scrape-prometheus-metrics.md
@@ -0,0 +1,20 @@
+---
+title: Scrape Prometheus metrics
+seotitle: Scape Prometheus metrics into InfluxDB
+weight: 205
+description: >
+  Use Telegraf or Flux to scrape Prometheus-formatted metrics
+  from an HTTP-accessible endpoint and store them in InfluxDB.
+menu:
+  influxdb_cloud:
+    name: Scrape Prometheus metrics
+    parent: Developer tools
+related:
+  - /{{< latest "telegraf" >}}/plugins/#prometheus, Telegraf Prometheus input plugin
+  - /{{< latest "flux" >}}/prometheus/scrape-prometheus/
+  - /{{< latest "flux" >}}/stdlib/experimental/prometheus/scrape/
+  - /{{< latest "flux" >}}/prometheus/metric-types/
+influxdb/v2.0/tags: [prometheus]
+---
+
+{{< duplicate-oss >}}
\ No newline at end of file
diff --git a/content/influxdb/v2.0/query-data/flux/histograms.md b/content/influxdb/v2.0/query-data/flux/histograms.md
index 776206e12..c39c66bbb 100644
--- a/content/influxdb/v2.0/query-data/flux/histograms.md
+++ b/content/influxdb/v2.0/query-data/flux/histograms.md
@@ -13,6 +13,7 @@ aliases:
   - /influxdb/v2.0/query-data/guides/histograms/
 related:
   - /{{< latest "flux" >}}/stdlib/universe/histogram
+  - /{{< latest "flux" >}}/prometheus/metric-types/histogram/, Work with Prometheus histograms in Flux
 list_query_example: histogram
 ---
 
@@ -192,124 +193,5 @@ and `severity` as the **Group By** option:
 
 ### Use Prometheus histograms in Flux
 
-Use InfluxDB and Telegraf to monitor a service instrumented with an endpoint that outputs [prometheus-formatted metrics](https://prometheus.io/docs/concepts/data_model/). This example demonstrates how to use Telegraf to scrape metrics from the InfluxDB 2.0 OSS `/metrics` endpoint at regular intervals (10s by default), and then store those metrics in InfluxDB.
-
-Use Prometheus histograms to measure the distribution of a variable, for example, the time it takes a server to respond to a request. Prometheus represents histograms as many sets of buckets (notably, different from an InfluxDB bucket).
-Each unique set of labels corresponds to one set of buckets; within that set, each bucket is labeled with an upper bound.
-In this example, the upper bound label is `le`, which stands for *less than or equal to*.
-In the example `/metrics` endpoint output below, there is a bucket for requests that take less-than-or-equal-to 0.005s, 0.01s, and so on, up to 10s and then +Inf. Note that the buckets are cumulative, so if a request takes 7.5s, Prometheus increments the counters in the buckets for 10s as well as +Inf.
-
-{{< expand-wrapper >}}
-{{% expand "View sample histogram data from the /metrics endpoint" %}}
-Sample histogram metrics from the `/metrics` endpoint on an instance of InfluxDB OSS 2.0, including two histograms for requests served by the `/api/v2/write` and `/api/v2/query` endpoints.
-
-```js
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/write",response_code="204",status="2XX",user_agent="Telegraf",le="0.005"} 0
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/write",response_code="204",status="2XX",user_agent="Telegraf",le="0.01"} 1
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/write",response_code="204",status="2XX",user_agent="Telegraf",le="0.025"} 13
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/write",response_code="204",status="2XX",user_agent="Telegraf",le="0.05"} 14
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/write",response_code="204",status="2XX",user_agent="Telegraf",le="0.1"} 16
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/write",response_code="204",status="2XX",user_agent="Telegraf",le="0.25"} 16
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/write",response_code="204",status="2XX",user_agent="Telegraf",le="0.5"} 16
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/write",response_code="204",status="2XX",user_agent="Telegraf",le="1"} 16
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/write",response_code="204",status="2XX",user_agent="Telegraf",le="2.5"} 16
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/write",response_code="204",status="2XX",user_agent="Telegraf",le="5"} 16
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/write",response_code="204",status="2XX",user_agent="Telegraf",le="10"} 16
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/write",response_code="204",status="2XX",user_agent="Telegraf",le="+Inf"} 16
-http_api_request_duration_seconds_sum{handler="platform",method="POST",path="/api/v2/write",response_code="204",status="2XX",user_agent="Telegraf"} 0.354163124
-http_api_request_duration_seconds_count{handler="platform",method="POST",path="/api/v2/write",response_code="204",status="2XX",user_agent="Telegraf"} 16
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/query",response_code="200",status="2XX",user_agent="Chrome",le="0.005"} 0
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/query",response_code="200",status="2XX",user_agent="Chrome",le="0.01"} 16
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/query",response_code="200",status="2XX",user_agent="Chrome",le="0.025"} 68
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/query",response_code="200",status="2XX",user_agent="Chrome",le="0.05"} 70
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/query",response_code="200",status="2XX",user_agent="Chrome",le="0.1"} 70
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/query",response_code="200",status="2XX",user_agent="Chrome",le="0.25"} 70
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/query",response_code="200",status="2XX",user_agent="Chrome",le="0.5"} 70
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/query",response_code="200",status="2XX",user_agent="Chrome",le="1"} 71
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/query",response_code="200",status="2XX",user_agent="Chrome",le="2.5"} 71
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/query",response_code="200",status="2XX",user_agent="Chrome",le="5"} 71
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/query",response_code="200",status="2XX",user_agent="Chrome",le="10"} 71
-http_api_request_duration_seconds_bucket{handler="platform",method="POST",path="/api/v2/query",response_code="200",status="2XX",user_agent="Chrome",le="+Inf"} 71
-http_api_request_duration_seconds_sum{handler="platform",method="POST",path="/api/v2/query",response_code="200",status="2XX",user_agent="Chrome"} 1.4840353630000003
-http_api_request_duration_seconds_count{handler="platform",method="POST",path="/api/v2/query",response_code="200",status="2XX",user_agent="Chrome"} 71
-```
-{{% /expand %}}
-{{< /expand-wrapper >}}
-
-Use the [histogramQuantile()](/{{< latest "flux" >}}/stdlib/universe/histogramquantile/) function to convert a Prometheus histogram to a specified quantile.
-This function expects a stream of input tables where each table has the following form:
-
-- Each row represents one bucket of a histogram, where the upper bound of the bucket is defined by the
-argument `upperBoundColumn` (by default, `le`).
-- A value column represents the number of items (requests, events, etc.) in the bucket (by default, `_value`).
-- Buckets are strictly cumulative, so for example, if for some reason the `+Inf` bucket had a count of `9`,
-but the `10s` bucket had a count of 10, the following error would occur: "histogram records counts are not monotonic".
-Given Prometheus increments the counts in each bucket continually as the process runs, whatever is most recently scraped from `/metrics` is a histogram of all the requests (events, etc) since the process started (maybe days, weeks, or longer). To be more useful, Telegraf scrapes at regular intervals, and we can subtract adjacent samples from the same bucket to discover the number of new items in that bucket for a given interval.
-
-To transform a set of cumulative histograms collected over time and visualize that as some quantile (such as the 50th percentile or 99th percentile) and show change over time, complete the following high-level transformations:
-
-1. Use `aggregateWindow()` to downsample the data to a specified time resolution to improve query performance. For example, to see how the 50th percentile changes over a month, downsample to a resolution of `1h`.
-
-    ```js
-    // ...
-      |> aggregateWindow(every: 1h, fn: last)
-    ```
-2. Use `difference()` to subtract adjacent samples so that buckets contain only the new counts for each period.
-3. Sum data across the dimensions that we aren't interested in. For example, in the Prometheus data from above, there is a label for path, but we may not care to break out http requests by path. If this is the case, we would ungroup the path dimension, and then add corresponding buckets together.
-4. Reshape the data so all duration buckets for the same period are in their own tables, with an upper bound column that describes the bucket represented by each row.
-5. Transform each table from a histogram to a quantile with the `histogramQuantile()` function.
-
-The following query performs the above steps.
-
-```js
-import "experimental"
-
-// The "_field" is necessary. Any columns following "_field" will be used
-// to create quantiles for each unique value in that column.
-// E.g., put "path" in here to see quantiles for each unique value of "path".
-groupCols = ["_field"]
-
-// This is a helper function that takes a stream of tables,
-// each containing "le" buckets for one window period.
-// It uses histogramQuantile to transform the bin counts
-// to a quantile defined in the "q" parameter.
-// The windows are then reassembled to produce a single table for each
-// unique group key.
-doQuantile = (tables=<-, q) => tables
-  |> histogramQuantile(quantile: q)
-  |> duplicate(as: "_time", column: "_stop")
-  |> window(every: inf)
-  |> map(fn: (r) => ({r with _measurement: "quantile", _field: string(v: q)}))
-  |> experimental.group(mode: "extend", columns: ["_measurement", "_field"])
-
-histograms =
-  from(bucket: "telegraf")
-  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
-  |> filter(fn: (r) => r._measurement == "http_api_request_duration_seconds"
-    and r._field != "count" and r._field != "sum")
-  // Downsample the data. This helps a lot with performance!
-  |> aggregateWindow(fn: last, every: v.windowPeriod)
-  // Calling difference() transforms the cumulative count of requests
-  // to the number of new requests per window period.
-  |> difference(nonNegative: true)
-  // Counters may be reset when a server restarts.
-  // When this happens there will be null values produced by difference().
-  |> filter(fn: (r) => exists r._value)
-  // Group data on the requested dimensions, window it, and sum within those dimensions, for each window.
-  |> group(columns: groupCols)
-  |> window(every: v.windowPeriod)
-  |> sum()
-  // Fields will have names like "0.001", etc. Change _field to a float column called "le".
-  // This also has the effect of ungrouping by _field, so bucket counts for each period
-  // will be within the same table.
-  |> map(fn: (r) => ({r with le: float(v: r._field)}))
-  |> drop(columns: ["_field"])
-
-// Compute the 50th and 95th percentile for duration of http requests.
-union(tables: [
-  histograms |> doQuantile(q:  0.95),
-  histograms |> doQuantile(q:  0.5)
-])
-```
-
-The tables piped-forward into `histogramQuantile()` should look similar to those returned by the `histograms` variable in the example above. Note, that rows are sorted by `le` to be clear that the counts increase for larger upper bounds.
+_For information about working with Prometheus histograms in Flux, see
+[Work with Prometheus histograms](/{{< latest "flux" >}}/prometheus/metric-types/histogram/)._
\ No newline at end of file
diff --git a/content/influxdb/v2.0/reference/glossary.md b/content/influxdb/v2.0/reference/glossary.md
index 2a42c4816..297e06dc3 100644
--- a/content/influxdb/v2.0/reference/glossary.md
+++ b/content/influxdb/v2.0/reference/glossary.md
@@ -2,7 +2,7 @@
 title: Glossary
 description: >
   Terms related to InfluxData products and platforms.
-weight: 8
+weight: 9
 menu:
   influxdb_2_0_ref:
     name: Glossary
diff --git a/content/influxdb/v2.0/reference/prometheus-metrics.md b/content/influxdb/v2.0/reference/prometheus-metrics.md
new file mode 100644
index 000000000..aefd422a0
--- /dev/null
+++ b/content/influxdb/v2.0/reference/prometheus-metrics.md
@@ -0,0 +1,286 @@
+---
+title: Prometheus metric parsing formats
+description: >
+  When scraping [Prometheus-formatted metrics](https://prometheus.io/docs/concepts/data_model/)
+  and writing them to InfluxDB, metrics are parsed and stored in InfluxDB in different formats.
+menu:
+  influxdb_2_0_ref:
+    name: Prometheus metrics
+weight: 8
+influxdb/v2.0/tags: [prometheus]
+related:
+  - https://prometheus.io/docs/concepts/data_model/, Prometheus data model
+  - /influxdb/v2.0/write-data/developer-tools/scrape-prometheus-metrics/
+  - /{{< latest "flux" >}}/prometheus/, Work with Prometheus in Flux
+  - /{{< latest "telegraf" >}}/plugins/#prometheus, Telegraf Prometheus input plugin
+  - /influxdb/v2.0/write-data/no-code/scrape-data/
+  - /{{< latest "flux" >}}/stdlib/experimental/prometheus/scrape/
+---
+
+[Prometheus-formatted metrics](https://prometheus.io/docs/concepts/data_model/)
+are parsed and written to InfluxDB in one of two formats, depending on the scraping tool used:
+
+- [Metric version 1](#metric-version-1)
+- [Metric version 2](#metric-version-2)
+
+#### Scraping tools and parsing format
+{{% oss-only %}}
+
+| Scraping tool                                                                              |                               InfluxDB Metric version |
+| :----------------------------------------------------------------------------------------- | ----------------------------------------------------: |
+| [Telegraf Prometheus plugin](/{{< latest "telegraf" >}}/plugins/#prometheus)               | _Determined by `metric_version` configuration option_ |
+| [InfluxDB scraper](/influxdb/v2.0/write-data/no-code/scrape-data/)                         |                                                     1 |
+| Flux [`prometheus.scrape()`]({{< latest "flux" >}}/stdlib/experimental/prometheus/scrape/) |                                                     2 |
+
+{{% /oss-only %}}
+{{% cloud-only %}}
+
+| Scraping tool                                                                              |                               InfluxDB Metric version |
+| :----------------------------------------------------------------------------------------- | ----------------------------------------------------: |
+| [Telegraf Prometheus plugin](/{{< latest "telegraf" >}}/plugins/#prometheus)               | _Determined by `metric_version` configuration option_ |
+| Flux [`prometheus.scrape()`]({{< latest "flux" >}}/stdlib/experimental/prometheus/scrape/) |                                                     2 |
+
+{{% /cloud-only %}}
+
+## Metric version 1
+
+- **_time**: timestamp
+- **_measurement**: [Prometheus metric name](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels)
+  _(`_bucket`, `_sum`, and `_count` are trimmed from histogram and summary metric names)_
+- **\_field**: _depends on the [Prometheus metric type](https://prometheus.io/docs/concepts/metric_types/)_
+  - Counter: `counter`
+  - Gauge: `gauge`
+  - Histogram: _histogram bucket upper limits_, `count`, `sum`
+  - Summary: _summary quantiles_, `count`, `sum`
+- **_value**: [Prometheus metric value](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels)
+- **tags**: A tag for each [Prometheus label](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels)
+  _(except for histogram bucket upper limits (`le`) or summary quantiles (`quantile`))_.
+  The label name is the tag key and the label value is the tag value.
+
+### Example Prometheus query results
+The following are example Prometheus metrics scraped from the **InfluxDB OSS 2.x `/metrics`** endpoint:
+
+```sh
+# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
+# TYPE go_memstats_alloc_bytes_total counter
+go_memstats_alloc_bytes_total 1.42276424e+09
+# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
+# TYPE go_memstats_buck_hash_sys_bytes gauge
+go_memstats_buck_hash_sys_bytes 5.259247e+06
+# HELP task_executor_run_latency_seconds Records the latency between the time the run was due to run and the time the task started execution, by task type
+# TYPE task_executor_run_latency_seconds histogram
+task_executor_run_latency_seconds_bucket{task_type="system",le="0.25"} 4413
+task_executor_run_latency_seconds_bucket{task_type="system",le="0.5"} 11901
+task_executor_run_latency_seconds_bucket{task_type="system",le="1"} 12565
+task_executor_run_latency_seconds_bucket{task_type="system",le="2.5"} 12823
+task_executor_run_latency_seconds_bucket{task_type="system",le="5"} 12844
+task_executor_run_latency_seconds_bucket{task_type="system",le="10"} 12864
+task_executor_run_latency_seconds_bucket{task_type="system",le="+Inf"} 74429
+task_executor_run_latency_seconds_sum{task_type="system"} 4.256783538679698e+11
+task_executor_run_latency_seconds_count{task_type="system"} 74429
+# HELP task_executor_run_duration The duration in seconds between a run starting and finishing.
+# TYPE task_executor_run_duration summary
+task_executor_run_duration{taskID="00xx0Xx0xx00XX0x0",task_type="threshold",quantile="0.5"} 5.178160855
+task_executor_run_duration{taskID="00xx0Xx0xx00XX0x0",task_type="threshold",quantile="0.9"} 5.178160855
+task_executor_run_duration{taskID="00xx0Xx0xx00XX0x0",task_type="threshold",quantile="0.99"} 5.178160855
+task_executor_run_duration_sum{taskID="00xx0Xx0xx00XX0x0",task_type="threshold"} 2121.9758301650004
+task_executor_run_duration_count{taskID="00xx0Xx0xx00XX0x0",task_type="threshold"} 570
+```
+
+#### Resulting line protocol
+```
+go_memstats_alloc_bytes_total counter=1.42276424e+09
+go_memstats_buck_hash_sys_bytes gauge=5.259247e+06
+task_executor_run_latency_seconds,task_type=system 0.25=4413,0.5=11901,1=12565,2.5=12823,5=12844,10=12864,+Inf=74429,sum=4.256783538679698e+11,count=74429
+task_executor_run_duration,taskID=00xx0Xx0xx00XX0x0,task_type=threshold 0.5=5.178160855,0.9=5.178160855,0.99=5.178160855,sum=2121.9758301650004,count=570
+```
+
+{{< expand-wrapper >}}
+{{% expand "View version 1 tables when queried from InfluxDB" %}}
+| _time                     | _measurement                  | _field  |       _value |
+| :------------------------ | :---------------------------- | :------ | -----------: |
+| {{< flux/current-time >}} | go_memstats_alloc_bytes_total | counter | 1422764240.0 |
+
+| _time                     | _measurement                    | _field |    _value |
+| :------------------------ | :------------------------------ | :----- | --------: |
+| {{< flux/current-time >}} | go_memstats_buck_hash_sys_bytes | gauge  | 5259247.0 |
+
+| _time                     | _measurement                      | task_type | _field | _value |
+| :------------------------ | :-------------------------------- | :-------- | :----- | -----: |
+| {{< flux/current-time >}} | task_executor_run_latency_seconds | system    | 0.25   | 4413.0 |
+
+| _time                     | _measurement                      | task_type | _field |  _value |
+| :------------------------ | :-------------------------------- | :-------- | :----- | ------: |
+| {{< flux/current-time >}} | task_executor_run_latency_seconds | system    | 0.5    | 11901.0 |
+
+| _time                     | _measurement                      | task_type | _field |  _value |
+| :------------------------ | :-------------------------------- | :-------- | :----- | ------: |
+| {{< flux/current-time >}} | task_executor_run_latency_seconds | system    | 1      | 12565.0 |
+
+| _time                     | _measurement                      | task_type | _field |  _value |
+| :------------------------ | :-------------------------------- | :-------- | :----- | ------: |
+| {{< flux/current-time >}} | task_executor_run_latency_seconds | system    | 2.5    | 12823.0 |
+
+| _time                     | _measurement                      | task_type | _field |  _value |
+| :------------------------ | :-------------------------------- | :-------- | :----- | ------: |
+| {{< flux/current-time >}} | task_executor_run_latency_seconds | system    | 5      | 12844.0 |
+
+| _time                     | _measurement                      | task_type | _field |  _value |
+| :------------------------ | :-------------------------------- | :-------- | :----- | ------: |
+| {{< flux/current-time >}} | task_executor_run_latency_seconds | system    | +Inf   | 74429.0 |
+
+| _time                     | _measurement                      | task_type | _field |            _value |
+| :------------------------ | :-------------------------------- | :-------- | :----- | ----------------: |
+| {{< flux/current-time >}} | task_executor_run_latency_seconds | system    | sum    | 425678353867.9698 |
+
+| _time                     | _measurement                      | task_type | _field | _value |
+| :------------------------ | :-------------------------------- | :-------- | :----- | -----: |
+| {{< flux/current-time >}} | task_executor_run_latency_seconds | system    | count  |  74429.0 |
+
+| _time                     | _measurement               | task_type | _field |      _value |
+| :------------------------ | :------------------------- | :-------- | :----- | ----------: |
+| {{< flux/current-time >}} | task_executor_run_duration | threshold | 0.5    | 5.178160855 |
+
+| _time                     | _measurement               | task_type | _field |      _value |
+| :------------------------ | :------------------------- | :-------- | :----- | ----------: |
+| {{< flux/current-time >}} | task_executor_run_duration | threshold | 0.9    | 5.178160855 |
+
+| _time                     | _measurement               | task_type | _field |      _value |
+| :------------------------ | :------------------------- | :-------- | :----- | ----------: |
+| {{< flux/current-time >}} | task_executor_run_duration | threshold | 0.99   | 5.178160855 |
+
+| _time                     | _measurement               | task_type | _field |             _value |
+| :------------------------ | :------------------------- | :-------- | :----- | -----------------: |
+| {{< flux/current-time >}} | task_executor_run_duration | threshold | sum    | 2121.9758301650004 |
+
+| _time                     | _measurement               | task_type | _field | _value |
+| :------------------------ | :------------------------- | :-------- | :----- | -----: |
+| {{< flux/current-time >}} | task_executor_run_duration | threshold | count  |  570.0 |
+{{% /expand %}}
+{{< /expand-wrapper >}}
+
+## Metrics version 2
+
+- **_time**: timestamp
+- **_measurement**: `prometheus`
+- **_field**: [Prometheus metric name](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels)
+  _(`_bucket` is trimmed from histogram metric names)_
+- **_value**: [Prometheus metric value](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels)
+- **url**: URL metrics were scraped from
+- **tags**: A tag for each [Prometheus label](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).
+  The label name is the tag key and the label value is the tag value.
+
+### Example Prometheus query results
+The following are example Prometheus metrics scraped from the **InfluxDB OSS 2.x `/metrics`** endpoint:
+
+```sh
+# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
+# TYPE go_memstats_alloc_bytes_total counter
+go_memstats_alloc_bytes_total 1.42276424e+09
+# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
+# TYPE go_memstats_buck_hash_sys_bytes gauge
+go_memstats_buck_hash_sys_bytes 5.259247e+06
+# HELP task_executor_run_latency_seconds Records the latency between the time the run was due to run and the time the task started execution, by task type
+# TYPE task_executor_run_latency_seconds histogram
+task_executor_run_latency_seconds_bucket{task_type="system",le="0.25"} 4413
+task_executor_run_latency_seconds_bucket{task_type="system",le="0.5"} 11901
+task_executor_run_latency_seconds_bucket{task_type="system",le="1"} 12565
+task_executor_run_latency_seconds_bucket{task_type="system",le="2.5"} 12823
+task_executor_run_latency_seconds_bucket{task_type="system",le="5"} 12844
+task_executor_run_latency_seconds_bucket{task_type="system",le="10"} 12864
+task_executor_run_latency_seconds_bucket{task_type="system",le="+Inf"} 74429
+task_executor_run_latency_seconds_sum{task_type="system"} 4.256783538679698e+11
+task_executor_run_latency_seconds_count{task_type="system"} 74429
+# HELP task_executor_run_duration The duration in seconds between a run starting and finishing.
+# TYPE task_executor_run_duration summary
+task_executor_run_duration{taskID="00xx0Xx0xx00XX0x0",task_type="threshold",quantile="0.5"} 5.178160855
+task_executor_run_duration{taskID="00xx0Xx0xx00XX0x0",task_type="threshold",quantile="0.9"} 5.178160855
+task_executor_run_duration{taskID="00xx0Xx0xx00XX0x0",task_type="threshold",quantile="0.99"} 5.178160855
+task_executor_run_duration_sum{taskID="00xx0Xx0xx00XX0x0",task_type="threshold"} 2121.9758301650004
+task_executor_run_duration_count{taskID="00xx0Xx0xx00XX0x0",task_type="threshold"} 570
+```
+
+#### Resulting line protocol
+{{< keep-url >}}
+```
+prometheus,url=http://localhost:8086/metrics go_memstats_alloc_bytes_total=1.42276424e+09
+prometheus,url=http://localhost:8086/metrics go_memstats_buck_hash_sys_bytes=5.259247e+06
+prometheus,url=http://localhost:8086/metrics,task_type=system,le=0.25 task_executor_run_latency_seconds=4413
+prometheus,url=http://localhost:8086/metrics,task_type=system,le=0.5 task_executor_run_latency_seconds=11901
+prometheus,url=http://localhost:8086/metrics,task_type=system,le=1 task_executor_run_latency_seconds=12565
+prometheus,url=http://localhost:8086/metrics,task_type=system,le=2.5 task_executor_run_latency_seconds=12823
+prometheus,url=http://localhost:8086/metrics,task_type=system,le=5 task_executor_run_latency_seconds=12844
+prometheus,url=http://localhost:8086/metrics,task_type=system,le=10 task_executor_run_latency_seconds=12864
+prometheus,url=http://localhost:8086/metrics,task_type=system,le=+Inf task_executor_run_latency_seconds=74429
+prometheus,url=http://localhost:8086/metrics,task_type=system task_executor_run_latency_seconds_sum=4.256783538679698e+11
+prometheus,url=http://localhost:8086/metrics,task_type=system task_executor_run_latency_seconds_count=74429
+prometheus,url=http://localhost:8086/metrics,taskID=00xx0Xx0xx00XX0x0,task_type=threshold quantile=0.5 task_executor_run_duration=5.178160855
+prometheus,url=http://localhost:8086/metrics,taskID=00xx0Xx0xx00XX0x0,task_type=threshold quantile=0.9 task_executor_run_duration=5.178160855
+prometheus,url=http://localhost:8086/metrics,taskID=00xx0Xx0xx00XX0x0,task_type=threshold quantile=0.99 task_executor_run_duration=5.178160855
+prometheus,url=http://localhost:8086/metrics,taskID=00xx0Xx0xx00XX0x0,task_type=threshold task_executor_run_duration_sum=2121.9758301650004
+prometheus,url=http://localhost:8086/metrics,taskID=00xx0Xx0xx00XX0x0,task_type=threshold task_executor_run_duration_count=570
+```
+
+{{< expand-wrapper >}}
+{{% expand "View version 2 tables when queried from InfluxDB" %}}
+| _time                     | _measurement | url                           | _field                        |       _value |
+| :------------------------ | :----------- | :---------------------------- | :---------------------------- | -----------: |
+| {{< flux/current-time >}} | prometheus   | http://localhost:8086/metrics | go_memstats_alloc_bytes_total | 1422764240.0 |
+
+| _time                     | _measurement | url                           | _field                          |    _value |
+| :------------------------ | :----------- | :---------------------------- | :------------------------------ | --------: |
+| {{< flux/current-time >}} | prometheus   | http://localhost:8086/metrics | go_memstats_buck_hash_sys_bytes | 5259247.0 |
+
+| _time                     | _measurement | task_type | url                           | le   | _field                            | _value |
+| :------------------------ | :----------- | :-------- | :---------------------------- | :--- | :-------------------------------- | -----: |
+| {{< flux/current-time >}} | prometheus   | system    | http://localhost:8086/metrics | 0.25 | task_executor_run_latency_seconds |   4413 |
+
+| _time                     | _measurement | task_type | url                           | le  | _field                            | _value |
+| :------------------------ | :----------- | :-------- | :---------------------------- | :-- | :-------------------------------- | -----: |
+| {{< flux/current-time >}} | prometheus   | system    | http://localhost:8086/metrics | 0.5 | task_executor_run_latency_seconds |  11901 |
+
+| _time                     | _measurement | task_type | url                           | le  | _field                            | _value |
+| :------------------------ | :----------- | :-------- | :---------------------------- | :-- | :-------------------------------- | -----: |
+| {{< flux/current-time >}} | prometheus   | system    | http://localhost:8086/metrics | 1   | task_executor_run_latency_seconds |  12565 |
+
+| _time                     | _measurement | task_type | url                           | le  | _field                            | _value |
+| :------------------------ | :----------- | :-------- | :---------------------------- | :-- | :-------------------------------- | -----: |
+| {{< flux/current-time >}} | prometheus   | system    | http://localhost:8086/metrics | 2.5 | task_executor_run_latency_seconds |  12823 |
+
+| _time                     | _measurement | task_type | url                           | le  | _field                            | _value |
+| :------------------------ | :----------- | :-------- | :---------------------------- | :-- | :-------------------------------- | -----: |
+| {{< flux/current-time >}} | prometheus   | system    | http://localhost:8086/metrics | 5   | task_executor_run_latency_seconds |  12844 |
+
+| _time                     | _measurement | task_type | url                           | le   | _field                            | _value |
+| :------------------------ | :----------- | :-------- | :---------------------------- | :--- | :-------------------------------- | -----: |
+| {{< flux/current-time >}} | prometheus   | system    | http://localhost:8086/metrics | +Inf | task_executor_run_latency_seconds |  74429 |
+
+| _time                     | _measurement | task_type | url                           | _field                                |            _value |
+| :------------------------ | :----------- | :-------- | :---------------------------- | :------------------------------------ | ----------------: |
+| {{< flux/current-time >}} | prometheus   | system    | http://localhost:8086/metrics | task_executor_run_latency_seconds_sum | 425678353867.9698 |
+
+| _time                     | _measurement | task_type | url                           | _field                                  | _value |
+| :------------------------ | :----------- | :-------- | :---------------------------- | :-------------------------------------- | -----: |
+| {{< flux/current-time >}} | prometheus   | system    | http://localhost:8086/metrics | task_executor_run_latency_seconds_count |  74429 |
+
+| _time                     | _measurement | task_type | taskID            | url                           | quantile | _field                     |      _value |
+| :------------------------ | :----------- | :-------- | :---------------- | :---------------------------- | :------- | :------------------------- | ----------: |
+| {{< flux/current-time >}} | prometheus   | threshold | 00xx0Xx0xx00XX0x0 | http://localhost:8086/metrics | 0.5      | task_executor_run_duration | 5.178160855 |
+
+| _time                     | _measurement | task_type | taskID            | url                           | quantile | _field                     |      _value |
+| :------------------------ | :----------- | :-------- | :---------------- | :---------------------------- | :------- | :------------------------- | ----------: |
+| {{< flux/current-time >}} | prometheus   | threshold | 00xx0Xx0xx00XX0x0 | http://localhost:8086/metrics | 0.9      | task_executor_run_duration | 5.178160855 |
+
+| _time                     | _measurement | task_type | taskID            | url                           | quantile | _field                     |      _value |
+| :------------------------ | :----------- | :-------- | :---------------- | :---------------------------- | :------- | :------------------------- | ----------: |
+| {{< flux/current-time >}} | prometheus   | threshold | 00xx0Xx0xx00XX0x0 | http://localhost:8086/metrics | 0.99     | task_executor_run_duration | 5.178160855 |
+
+| _time                     | _measurement | task_type | taskID            | url                           | _field                         |             _value |
+| :------------------------ | :----------- | :-------- | :---------------- | :---------------------------- | :----------------------------- | -----------------: |
+| {{< flux/current-time >}} | prometheus   | threshold | 00xx0Xx0xx00XX0x0 | http://localhost:8086/metrics | task_executor_run_duration_sum | 2121.9758301650004 |
+
+| _time                     | _measurement | task_type | taskID            | url                           | _field                           | _value |
+| :------------------------ | :----------- | :-------- | :---------------- | :---------------------------- | :------------------------------- | -----: |
+| {{< flux/current-time >}} | prometheus   | threshold | 00xx0Xx0xx00XX0x0 | http://localhost:8086/metrics | task_executor_run_duration_count |    570 |
+{{% /expand %}}
+{{< /expand-wrapper >}}
diff --git a/content/influxdb/v2.0/write-data/developer-tools/scrape-prometheus-metrics.md b/content/influxdb/v2.0/write-data/developer-tools/scrape-prometheus-metrics.md
new file mode 100644
index 000000000..0f69e4fd8
--- /dev/null
+++ b/content/influxdb/v2.0/write-data/developer-tools/scrape-prometheus-metrics.md
@@ -0,0 +1,105 @@
+---
+title: Scrape Prometheus metrics
+seotitle: Scape Prometheus metrics into InfluxDB
+weight: 205
+description: >
+  Use Telegraf, InfluxDB scrapers, or the `prometheus.scrape` Flux function to
+  scrape Prometheus-formatted metrics from an HTTP-accessible endpoint and store
+  them in InfluxDB.
+menu:
+  influxdb_2_0:
+    name: Scrape Prometheus metrics
+    parent: Developer tools
+related:
+  - /{{< latest "telegraf" >}}/plugins/#prometheus, Telegraf Prometheus input plugin
+  - /{{< latest "flux" >}}/prometheus/scrape-prometheus/, Scrape Prometheus metrics with Flux
+  - /{{< latest "flux" >}}/stdlib/experimental/prometheus/scrape/
+  - /{{< latest "flux" >}}/prometheus/metric-types/
+  - /influxdb/v2.0/reference/prometheus-metrics/
+  - /influxdb/v2.0/write-data/no-code/scrape-data/
+influxdb/v2.0/tags: [prometheus, scraper]
+---
+
+Use [Telegraf](/{{< latest "telegraf" >}}/){{% oss-only %}}, [InfluxDB scrapers](/influxdb/v2.0/write-data/no-code/scrape-data/),{{% /oss-only %}}
+or the [`prometheus.scrape` Flux function](/{{< latest "flux" >}}/stdlib/experimental/prometheus/scrape/)
+to scrape Prometheus-formatted metrics from an HTTP-accessible endpoint and store them in InfluxDB.
+
+{{% oss-only %}}
+
+- [Use Telegraf](#use-telegraf)
+- [Use an InfluxDB scraper](#use-an-influxdb-scraper)
+- [Use prometheus.scrape()](#use-prometheusscrape)
+
+{{% /oss-only %}}
+{{% cloud-only %}}
+
+- [Use Telegraf](#use-telegraf)
+- [Use prometheus.scrape()](#use-prometheusscrape)
+
+{{% /cloud-only %}}
+
+## Use Telegraf
+To use Telegraf to scrape Prometheus-formatted metrics from an HTTP-accessible
+endpoint and write them to InfluxDB{{% cloud-only %}} Cloud{{% /cloud-only %}}, follow these steps:
+
+1. Add the [Prometheus input plugin](/{{< latest "telegraf" >}}/plugins/#prometheus) to your Telegraf configuration file.
+    1. Set the `urls` to scrape metrics from.
+    2. Set the `metric_version` configuration option to specify which
+      [metric parsing version](/influxdb/v2.0/reference/prometheus-metrics/) to use
+      _(version `2` is recommended)_.
+2. Add the [InfluxDB v2 output plugin](/{{< latest "telegraf" >}}/plugins/#influxdb_v2)
+   to your Telegraf configuration file and configure it to to write to
+   InfluxDB{{% cloud-only %}} Cloud{{% /cloud-only %}}.
+  
+##### Example telegraf.conf
+```toml
+# ...
+
+## Collect Prometheus formatted metrics
+[[inputs.prometheus]]
+  urls = ["http://example.com/metrics"]
+  metric_version = 2
+
+## Write Prometheus formatted metrics to InfluxDB
+[[outputs.influxdb_v2]]
+  urls = ["http://localhost:8086"]
+  token = "$INFLUX_TOKEN"
+  organization = "example-org"
+  bucket = "example-bucket"
+
+# ...
+```
+
+{{% oss-only %}}
+
+## Use an InfluxDB scraper
+InfluxDB scrapers automatically scrape Prometheus-formatted metrics from an 
+HTTP-accessible endpoint at a regular interval.
+For information about setting up an InfluxDB scraper, see
+[Scrape data using InfluxDB scrapers](/influxdb/v2.0/write-data/no-code/scrape-data/).
+
+{{% /oss-only %}}
+
+## Use prometheus.scrape()
+To use the [`prometheus.scrape()` Flux function](/{{< latest "flux" >}}/stdlib/experimental/prometheus/scrape/)
+to scrape Prometheus-formatted metrics from an HTTP-accessible endpoint and write
+them to InfluxDB{{% cloud-only %}} Cloud{{% /cloud-only %}}, do the following in your Flux script:
+
+1. Import the [`experimental/prometheus` package](/{{< latest "flux" >}}/stdlib/experimental/prometheus/).
+2. Use `prometheus.scrape()` and provide the URL to scrape metrics from.
+3. Use [`to()`](/{{< latest "flux" >}}/stdlib/influxdata/influxdb/to/) and specify the  InfluxDB{{% cloud-only %}} Cloud{{% /cloud-only %}} bucket to write
+  the scraped metrics to.
+
+##### Example Flux script
+```js
+import "experimental/prometheus"
+
+prometheus.scrape(url: "http://example.com/metrics")
+  |> to(bucket: "example-bucket")
+```
+
+4. (Optional) To scrape Prometheus metrics at regular intervals using Flux, add your Flux
+scraping script as an [InfluxDB task](/{{< latest "influxdb" >}}/process-data/).
+
+_For information about scraping Prometheus-formatted metrics with `prometheus.scrape()`,
+see [Scrape Prometheus metrics with Flux](/{{< latest "flux" >}}/prometheus/scrape-prometheus/)._
diff --git a/content/influxdb/v2.0/write-data/no-code/scrape-data/_index.md b/content/influxdb/v2.0/write-data/no-code/scrape-data/_index.md
index dcd8b759d..751051092 100644
--- a/content/influxdb/v2.0/write-data/no-code/scrape-data/_index.md
+++ b/content/influxdb/v2.0/write-data/no-code/scrape-data/_index.md
@@ -1,6 +1,5 @@
 ---
-title: Scrape data
-seotitle: Scrape data using InfluxDB scrapers
+title: Scrape data using InfluxDB scrapers
 weight: 103
 description: >
   Scrape data from InfluxDB instances or remote endpoints using InfluxDB scrapers.
@@ -15,7 +14,6 @@ menu:
   influxdb_2_0:
     name: Scrape data
     parent: No-code solutions
-products: [oss]
 ---
 
 InfluxDB scrapers collect data from specified targets at regular intervals,
diff --git a/content/influxdb/v2.0/write-data/no-code/scrape-data/manage-scrapers/_index.md b/content/influxdb/v2.0/write-data/no-code/scrape-data/manage-scrapers/_index.md
index 562ccea19..687f582e8 100644
--- a/content/influxdb/v2.0/write-data/no-code/scrape-data/manage-scrapers/_index.md
+++ b/content/influxdb/v2.0/write-data/no-code/scrape-data/manage-scrapers/_index.md
@@ -1,6 +1,5 @@
 ---
-title: Manage scrapers
-seotitle: Manage InfluxDB scrapers
+title: Manage InfluxDB scrapers
 description: Create, update, and delete InfluxDB data scrapers in the InfluxDB user interface.
 aliases:
   - /influxdb/v2.0/collect-data/scrape-data/manage-scrapers
@@ -10,8 +9,7 @@ menu:
     name: Manage scrapers
     parent: Scrape data
 weight: 201
-influxdb/v2.0/tags: [scraper]
-products: [oss]
+influxdb/v2.0/tags: [scraper, prometheus]
 ---
 
 The following articles walk through managing InfluxDB scrapers:
diff --git a/content/influxdb/v2.0/write-data/no-code/scrape-data/manage-scrapers/create-a-scraper.md b/content/influxdb/v2.0/write-data/no-code/scrape-data/manage-scrapers/create-a-scraper.md
index 433f33049..15552e9f8 100644
--- a/content/influxdb/v2.0/write-data/no-code/scrape-data/manage-scrapers/create-a-scraper.md
+++ b/content/influxdb/v2.0/write-data/no-code/scrape-data/manage-scrapers/create-a-scraper.md
@@ -1,15 +1,15 @@
 ---
-title: Create a scraper
-seotitle: Create an InfluxDB scraper
+title: Create an InfluxDB scraper
+list_title: Create a scraper
 description: Create an InfluxDB scraper that collects data from InfluxDB or a remote endpoint.
 aliases:
   - /influxdb/v2.0/collect-data/scrape-data/manage-scrapers/create-a-scraper
   - /influxdb/v2.0/write-data/scrape-data/manage-scrapers/create-a-scraper
 menu:
   influxdb_2_0:
+    name: Create a scraper
     parent: Manage scrapers
 weight: 301
-products: [oss]
 ---
 
 Create a new scraper in the InfluxDB user interface (UI).
diff --git a/content/influxdb/v2.0/write-data/no-code/scrape-data/manage-scrapers/delete-a-scraper.md b/content/influxdb/v2.0/write-data/no-code/scrape-data/manage-scrapers/delete-a-scraper.md
index 982af3e16..c0ed3c510 100644
--- a/content/influxdb/v2.0/write-data/no-code/scrape-data/manage-scrapers/delete-a-scraper.md
+++ b/content/influxdb/v2.0/write-data/no-code/scrape-data/manage-scrapers/delete-a-scraper.md
@@ -1,15 +1,15 @@
 ---
-title: Delete a scraper
-seotitle: Delete an InfluxDB scraper
+title: Delete an InfluxDB scraper
+list_title: Delete a scraper
 description: Delete an InfluxDB scraper in the InfluxDB user interface.
 aliases:
   - /influxdb/v2.0/collect-data/scrape-data/manage-scrapers/delete-a-scraper
   - /influxdb/v2.0/write-data/scrape-data/manage-scrapers/delete-a-scraper
 menu:
   influxdb_2_0:
+    name: Delete a scraper
     parent: Manage scrapers
 weight: 303
-products: [oss]
 ---
 
 Delete a scraper from the InfluxDB user interface (UI).
diff --git a/content/influxdb/v2.0/write-data/no-code/scrape-data/manage-scrapers/update-a-scraper.md b/content/influxdb/v2.0/write-data/no-code/scrape-data/manage-scrapers/update-a-scraper.md
index 83e47268f..232b29a73 100644
--- a/content/influxdb/v2.0/write-data/no-code/scrape-data/manage-scrapers/update-a-scraper.md
+++ b/content/influxdb/v2.0/write-data/no-code/scrape-data/manage-scrapers/update-a-scraper.md
@@ -1,15 +1,15 @@
 ---
-title: Update a scraper
-seotitle: Update an InfluxDB scraper
+title: Update an InfluxDB scraper
+list_title: Update a scraper
 description: Update an InfluxDB scraper that collects data from InfluxDB or a remote endpoint.
 aliases:
   - /influxdb/v2.0/collect-data/scrape-data/manage-scrapers/update-a-scraper
   - /influxdb/v2.0/write-data/scrape-data/manage-scrapers/update-a-scraper
 menu:
   influxdb_2_0:
+    name: Update a scraper
     parent: Manage scrapers
 weight: 302
-products: [oss]
 ---
 
 Update a scraper in the InfluxDB user interface (UI).
diff --git a/content/influxdb/v2.0/write-data/no-code/scrape-data/scrapable-endpoints.md b/content/influxdb/v2.0/write-data/no-code/scrape-data/scrapable-endpoints.md
index 687889e38..b826588dd 100644
--- a/content/influxdb/v2.0/write-data/no-code/scrape-data/scrapable-endpoints.md
+++ b/content/influxdb/v2.0/write-data/no-code/scrape-data/scrapable-endpoints.md
@@ -12,7 +12,7 @@ menu:
   influxdb_2_0:
     parent: Scrape data
 weight: 202
-influxdb/v2.0/tags: [scraper]
+influxdb/v2.0/tags: [scraper, prometheus]
 ---
 
 InfluxDB scrapers can collect data from any HTTP(S)-accessible endpoint that returns data
diff --git a/layouts/partials/footer/javascript.html b/layouts/partials/footer/javascript.html
index e532b168a..e2ecc1bdc 100644
--- a/layouts/partials/footer/javascript.html
+++ b/layouts/partials/footer/javascript.html
@@ -7,8 +7,10 @@
 {{ $notifications := resources.Get "js/notifications.js" }}
 {{ $keybindings := resources.Get "js/keybindings.js" }}
 {{ $fluxGroupKeys := resources.Get "js/flux-group-keys.js" }}
+{{ $fluxCurrentTime := resources.Get "js/flux-current-time.js" }}
 {{ $footerjs := slice $versionSelector $contentInteractions $searchInteractions $listFilters $influxdbURLs $featureCallouts $notifications $keybindings | resources.Concat "js/footer.bundle.js" | resources.Fingerprint }}
 {{ $fluxGroupKeyjs := slice $fluxGroupKeys | resources.Concat "js/flux-group-keys.js" | resources.Fingerprint }}
+{{ $fluxCurrentTimejs := slice $fluxCurrentTime | resources.Concat "js/flux-current-time.js" | resources.Fingerprint }}
 
 <!-- Load cloudUrls array -->
 <script type="text/javascript">
@@ -44,4 +46,9 @@
 <!-- Load group key demo JS if when the group key demo shortcode is present -->
 {{ if .Page.HasShortcode "flux/group-key-demo" }}
 <script type="text/javascript" src="{{ $fluxGroupKeyjs.RelPermalink }}"></script>
+{{ end }}
+
+<!-- Load Flux current time js if when the flux/current-time shortcode is present -->
+{{ if .Page.HasShortcode "flux/current-time" }}
+<script type="text/javascript" src="{{ $fluxCurrentTime.RelPermalink }}"></script>
 {{ end }}
\ No newline at end of file
diff --git a/layouts/shortcodes/cite.html b/layouts/shortcodes/cite.html
new file mode 100644
index 000000000..f837d7c75
--- /dev/null
+++ b/layouts/shortcodes/cite.html
@@ -0,0 +1 @@
+<span class="cite">{{ .Inner }}</span>
\ No newline at end of file
diff --git a/layouts/shortcodes/flex-content.html b/layouts/shortcodes/flex-content.html
index 8458f6fa4..9af32f6aa 100644
--- a/layouts/shortcodes/flex-content.html
+++ b/layouts/shortcodes/flex-content.html
@@ -1,5 +1,5 @@
 {{ $width :=  .Get 0 | default "half" }}
 {{ $_hugo_config := `{ "version": 1 }` }}
 <div class="flex-container {{ $width }}">
-  {{ .Inner }}
+{{ .Inner }}
 </div>
diff --git a/layouts/shortcodes/flex.html b/layouts/shortcodes/flex.html
index 5943fba4b..6f8b60b51 100644
--- a/layouts/shortcodes/flex.html
+++ b/layouts/shortcodes/flex.html
@@ -1,4 +1,4 @@
 {{ $_hugo_config := `{ "version": 1 }` }}
 <div class="flex-wrapper">
-  {{ .Inner }}
+{{ .Inner }}
 </div>
diff --git a/layouts/shortcodes/flux/current-time.html b/layouts/shortcodes/flux/current-time.html
new file mode 100644
index 000000000..3975a0619
--- /dev/null
+++ b/layouts/shortcodes/flux/current-time.html
@@ -0,0 +1 @@
+<span class="current-time nowrap">2021-01-01T00:00:00Z</span>
\ No newline at end of file
diff --git a/layouts/shortcodes/img-hd.html b/layouts/shortcodes/img-hd.html
index a49801b1b..be211dfde 100644
--- a/layouts/shortcodes/img-hd.html
+++ b/layouts/shortcodes/img-hd.html
@@ -3,10 +3,10 @@
 {{ $alt := .Get "alt" }}
 
 {{ if (fileExists ( print "/static" $src )) }}
-  {{ with (imageConfig ( print "/static" $src )) }}
-    {{ $imageWidth := div .Width 2 }}
-    <img src='{{ $src }}' alt='{{ $alt }}' width='{{ $imageWidth }}' />
-  {{ end }}
-{{ else }}
-  <img src='{{ $src }}' alt='{{ $alt }}'/>
+{{ with (imageConfig ( print "/static" $src )) }}
+{{ $imageWidth := div .Width 2 }}
+<img src='{{ $src }}' alt='{{ $alt }}' width='{{ $imageWidth }}' />
+{{ end }}
+{{ else }}
+<img src='{{ $src }}' alt='{{ $alt }}'/>
 {{ end }}
diff --git a/layouts/shortcodes/nowrap.html b/layouts/shortcodes/nowrap.html
index 5036b27a7..8f50267c9 100644
--- a/layouts/shortcodes/nowrap.html
+++ b/layouts/shortcodes/nowrap.html
@@ -1 +1 @@
-<span style="white-space:nowrap">{{ .Inner }}</span>
\ No newline at end of file
+<span class="nowrap">{{ .Inner }}</span>
diff --git a/layouts/shortcodes/tabs.html b/layouts/shortcodes/tabs.html
index 67eac6bea..5e0480e46 100644
--- a/layouts/shortcodes/tabs.html
+++ b/layouts/shortcodes/tabs.html
@@ -1,4 +1,6 @@
 {{ $_hugo_config := `{ "version": 1 }` }}
-<div class="tabs">
+{{ $styleParsed := .Get 0 | default "" }}
+{{ $style := .Get "style" | default $styleParsed }}
+<div class="tabs {{ $style }}">
   {{ .Inner }}
 </div>
diff --git a/static/img/flux/0-x-prometheus-counter-aggregate-rate-output.png b/static/img/flux/0-x-prometheus-counter-aggregate-rate-output.png
new file mode 100644
index 0000000000000000000000000000000000000000..4996b7543315291a30ec6f6015b33c3cc5324780
GIT binary patch
literal 11242
zcmaKS2Q*w?7cUVcMDM*tFN26)B3hzGiC#x%bVes4VGu+Rq9%lpL>XoDl9(Yn(S}hH
zQ4&TEBAC28{^k4LTJL*VEBDSlXYYOXKKu9E=bU>b-80moAY&yXARwT)dq>lRfZ!4u
z_)mO=2xwWVis%JyEWuiq!KQw0!J$rpt_12XeqdMbyFO0tt|qQdF5v<FuF3=iL;{{>
zmcf<=`ijneJ`zrN8Hq3-e?XgnKv^x!-^tnAHJBUh>h9^Q!n@Pf#mnvKqQYx&(?HU|
zU&GbI^G-ydt7(LxnRA4<vw{n+nku()m?B`n$2HiAJIn{-8>ASf!h2y?5%`U72Jv!V
zhy;79@c!kLrNKRJ4ZlEFZaE1lac4<MNp3j>2^S}@lQS4B#w{%=Ed`R40ZGY-OG+x<
zP*9YS;r{y{FECu7i<_c}ruN^10Z%Ht9>Kx>iXc#EXsAT!4GF(McaW5Vf&xfV8YC?(
z4oHXxh5H6Og^BwH@%>{#(>2IB(9=KI)6bV1Z_x?t7ZR+(3%L4M3_kw<n)MC(d!B$9
z1BE&HgQO%R@iF})XkhUF7xnS^S2`%z#PvV^{yz-|nT7kif=pb4{6Yeqfy}w_;fL~9
z)ChES3ib;$^YerJGmZB={DS?0JpBB*rKKfqatj$aIeYrzTZAuE3=9<S`UV9%`8vDa
z)l}gHj7WHTx+u!t(2$mt0p?giLq<wUOG8~jO8&Ntq@=8zq=vktyw*Runtsk9KCZsO
z|LD5>NB746)WyTW#~&D3(>2f&>gu8$=;y<I5w)V{|Mo@lf7<(7*X4ivBK1FYL4Y$L
zd~W|M*Z(vD0K)(L7rMa1zu<TE1rQ$yKzq3EQ#HUCf_wUAT8z>f>?Yn7?;FLd7Pz^E
z8k;|gSI%CKe#IcBlwb7bdU#=Td+*EAs%m&Ui>6iKtG6O~sM>~3Ep0=w@+o%q>ohEU
zZJnR)8C$)tZI!57k?KAYDIDOm3g&iuB>en?ROe3x1$8=psdv@Q&tH^EODkSC_od?z
zi;78nmR-bY7cL=jQ=)dczN!1ZxkJ*E?3*`L)Yb0_Ccy=tG+0@I(=zhd3|u6eu|lbc
zySgU4{uwmX%z?qtqAy1hU>RW%@k|PO+@47)s@fpLhK;QYk58&(>o%8Tw1cAuv#JR*
zGq*rOm4Sh|t(}`tMyq7Uz9ZN(CN_!7`2qifGSQMT5n(Al=nH{IZ)4+<-8}+aTzy&8
z&0kl*S#=$G<+V9E`IAzzB-{5yi-tfA>m26(Z{9TsWwz6D2!%jnOUi46v%0A1IiO*2
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

literal 0
HcmV?d00001

diff --git a/static/img/flux/0-x-prometheus-counter-derivative-output.png b/static/img/flux/0-x-prometheus-counter-derivative-output.png
new file mode 100644
index 0000000000000000000000000000000000000000..e3d50d0aad260478143a84e1b7f74bcecee86d9b
GIT binary patch
literal 11779
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

literal 0
HcmV?d00001

diff --git a/static/img/flux/0-x-prometheus-counter-difference-output.png b/static/img/flux/0-x-prometheus-counter-difference-output.png
new file mode 100644
index 0000000000000000000000000000000000000000..8fd6b146e95430abc7adbcc9ab09d6c6c0038bcb
GIT binary patch
literal 12599
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

literal 0
HcmV?d00001

diff --git a/static/img/flux/0-x-prometheus-counter-increase-input.png b/static/img/flux/0-x-prometheus-counter-increase-input.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6626685b06258470a42165f69f67b5394e73b7d
GIT binary patch
literal 10937
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

literal 0
HcmV?d00001

diff --git a/static/img/flux/0-x-prometheus-counter-increase-output.png b/static/img/flux/0-x-prometheus-counter-increase-output.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b3b5b5b1ee0263d7cd70c0e8ada4ef17f13d69e
GIT binary patch
literal 9299
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

literal 0
HcmV?d00001

diff --git a/static/img/flux/0-x-prometheus-counter-normalized-input.png b/static/img/flux/0-x-prometheus-counter-normalized-input.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c1f278dd95bd8550919d17e28d5c7f5a2d6a5a3
GIT binary patch
literal 9095
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
C!;Dk_

literal 0
HcmV?d00001

diff --git a/static/img/flux/0-x-prometheus-gauge-aggregate-rate-output.png b/static/img/flux/0-x-prometheus-gauge-aggregate-rate-output.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4f2028d6c1c19fbdaa84c3555ce0737e4015bad
GIT binary patch
literal 10763
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

literal 0
HcmV?d00001

diff --git a/static/img/flux/0-x-prometheus-gauge-derivative-output.png b/static/img/flux/0-x-prometheus-gauge-derivative-output.png
new file mode 100644
index 0000000000000000000000000000000000000000..56147d94748c362a134ca75a006a4f475b494fee
GIT binary patch
literal 11626
zcmaia2RK|&*RB+zgp6KB8H_SI(M9y$61@a5MjyTRs2L%8jVK8sqQoG22^pOb2?jwV
zO2jBZMnt=3@|FAF`+VQMo`*C0?6ucg@4Mc$&vE7?-7(anBxfNfA|j&H(N;GmBD#zP
zeu+u10B4qK!v=r@bAX0rfQh$rK(K?K6OjtS8}0<r@pN!;GInx6g!&FU-6A5o!s}*g
z8DMFkFYoB>DdIq|5ef110ag<c-BJqiad7l-3V^_!T->}Axpq5xxFBu_MJ@{|12F?1
zH78d$?Jz$llQ2V5$1o2^IRux|ZOE+<dBB0EQ-A{`#1rY|FCU`F_1CXF@R@L0lne6L
zB)~(F>mNy38r*@XdHXp*WJJV;9mT}NATn|y2nV=>BOERSkr0y*7ZsBf6_*qi6O+Fw
zCod@p`R5N85Y7+bEN`r?`Ojd$NRi7mAizgnR5Um^SS0wSh_|1MsJNV*oT!+DsDy+t
zU?J=u>J{J+BJAbQ{VxydPX3O5Zax8S-d+%bM+dlfV1ObQkm^4$c>4U?t(X5lc>)*{
z4RP=h6&DdBVEUJ#fx-XV)YJ3d*8Ty;PX9aK|LEA?G}OmQ)Y!@2JJ8P&sGKu5A(W52
znxB(HfVZEiw>R=%G~RLb4)FGO_4a{CNQg*5_zfH!-Mk2AV1Jhw7|82*`3E?7IXda6
zD{=u&MBLmE^3pfeB*Y}eRK(@fB*n!w)KuieWmP4`#H3}!)MUkEHU70$-P<wH)5$B~
zUuzM-T5%OwX(>5L32`~ioBwewK@OfiKxB0%Ker$!gr=XjC*&_`dAI+bi|l{T<sWMi
z{~?!u;*k5VYej)%L<zP1AGQA1DL_DkkN=h~F!;CloxA|W`vKCfI^b0SI)><uzNrQ@
ztVpPGrnIb9xN1(gW)TA6XJg|LX;`IZ=4RHg7AWX%?Hnj9uGG{teAC)j^z0RzRX}}H
zH!P<&GpD$tdk7l!T%c%}-8NLD{%dYQ8E<0E%bGWL?pi^d;_A?yHTCUDDLH&eXbA~<
zv95jbw|KGkoyL~8iKq-(sCac<YedvTPS3|GDmqqHaK4l#GjlsRc@-%sMTmP6EvGOG
z3m4CW7u-PwU;`%|U1JduDbeQ5)Ql&Jw>6nn%nS_7`P174OW)tKbGEsMV3gBix_vh!
zEKczGB!@#3h>nc|5gQ%zh(TP%FCanyCNBEsyZwDvgp(KRU3bw|oLDPPr0xrsPsV+?
z8x1>*KdXygSds5>Gc3DDpm?<WC0eX=kImc%tn0vP>iPV|Yo7R5k<qB;ws$VBzDx=R
zT>jbFd8IzSVU@3%=mccB0&)X_qQyG)f<j`1%0DtlX(GLXd15P*lC!;iLPZ<bJ-tJi
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
acD`bEx}+oxEg`)9tfOJ5UZ;9L_J0AH8ch%Y

literal 0
HcmV?d00001

diff --git a/static/img/flux/0-x-prometheus-gauge-input.png b/static/img/flux/0-x-prometheus-gauge-input.png
new file mode 100644
index 0000000000000000000000000000000000000000..81681267f169bce546e4045b51d06e54076e5014
GIT binary patch
literal 10838
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
SpX2}2Q%~DSt6CEh^S=P?2@TEw

literal 0
HcmV?d00001

diff --git a/static/img/flux/0-x-prometheus-histogram-multiple-quantiles.png b/static/img/flux/0-x-prometheus-histogram-multiple-quantiles.png
new file mode 100644
index 0000000000000000000000000000000000000000..116aa44235fe181a4b34f1e7d4100aaf4a646b05
GIT binary patch
literal 22451
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

literal 0
HcmV?d00001

diff --git a/static/img/flux/0-x-prometheus-histogram-quantile.png b/static/img/flux/0-x-prometheus-histogram-quantile.png
new file mode 100644
index 0000000000000000000000000000000000000000..6fe45e8243b59634875ba6c11e79448ab947a48b
GIT binary patch
literal 16141
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

literal 0
HcmV?d00001

diff --git a/static/img/flux/0-x-prometheus-summary-quantiles.png b/static/img/flux/0-x-prometheus-summary-quantiles.png
new file mode 100644
index 0000000000000000000000000000000000000000..833c73bc4bdf53fa0dd3a93a63e253d991937a19
GIT binary patch
literal 19016
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
L`njxgN@xNA$-NS1

literal 0
HcmV?d00001