<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Introduction on Grafana Labs</title><link>https://grafana.com/docs/grafana/v12.4/fundamentals/</link><description>Recent content in Introduction on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/grafana/v12.4/fundamentals/index.xml" rel="self" type="application/rss+xml"/><item><title>What is Prometheus?</title><link>https://grafana.com/docs/grafana/v12.4/fundamentals/intro-to-prometheus/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/fundamentals/intro-to-prometheus/</guid><content><![CDATA[&lt;h1 id=&#34;what-is-prometheus&#34;&gt;What is Prometheus?&lt;/h1&gt;
&lt;p&gt;Observability focuses on understanding the internal state of your systems based on the data they produce, which helps determine if your infrastructure is healthy. Prometheus is a core technology for monitoring and observability of systems, but the term &amp;ldquo;Prometheus&amp;rdquo; can be confusing because it is used in different contexts. Understanding Prometheus basics, why it’s valuable for system observability, and how users use it in practice will both help you better understand it and help you use Grafana.&lt;/p&gt;
&lt;p&gt;Prometheus began in 2012 at SoundCloud because existing technologies were insufficient for their observability needs. Prometheus offers both a robust data model and a query language. Prometheus is also simple and scalable. In 2018, Prometheus graduated from Cloud Native Computing Foundation (CNCF) incubation, and today has a thriving community.&lt;/p&gt;
&lt;h2 id=&#34;prometheus-as-data&#34;&gt;Prometheus as data&lt;/h2&gt;
&lt;p&gt;The following panel in a Grafana dashboard shows how much disk bandwidth on a Mac laptop is being used. The green line represents disk &lt;code&gt;reads&lt;/code&gt;, and the yellow line represents &lt;code&gt;writes&lt;/code&gt;.&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 750px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;/media/docs/grafana/intro-prometheus/disk-io.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;/media/docs/grafana/intro-prometheus/disk-io.png&#34;data-srcset=&#34;/media/docs/grafana/intro-prometheus/disk-io.png?w=320 320w, /media/docs/grafana/intro-prometheus/disk-io.png?w=550 550w, /media/docs/grafana/intro-prometheus/disk-io.png?w=750 750w, /media/docs/grafana/intro-prometheus/disk-io.png?w=900 900w, /media/docs/grafana/intro-prometheus/disk-io.png?w=1040 1040w, /media/docs/grafana/intro-prometheus/disk-io.png?w=1240 1240w, /media/docs/grafana/intro-prometheus/disk-io.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Disk I/O dashboard&#34;width=&#34;1128&#34;height=&#34;492&#34;title=&#34;Disk I/O dashboard&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/grafana/intro-prometheus/disk-io.png&#34;
            alt=&#34;Disk I/O dashboard&#34;width=&#34;1128&#34;height=&#34;492&#34;title=&#34;Disk I/O dashboard&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Disk I/O dashboard&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Data like these form &lt;em&gt;time series&lt;/em&gt;. The X-axis is a moment in time and the Y-axis is a number or measurement; for example, 5 megabytes per second. This type of time series data appears everywhere in systems monitoring, as well as in places such as seasonal temperature charts and stock prices. This data is simply some measurement (such as a company stock price or Disk I/O) through a series of time instants.&lt;/p&gt;
&lt;p&gt;Prometheus is a technology that collects and stores time series data. Time series are fundamental to Prometheus; its &lt;a href=&#34;https://prometheus.io/docs/concepts/data_model/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;data model&lt;/a&gt; is arranged into:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;metrics&lt;/em&gt; that consist of a &lt;em&gt;timestamp&lt;/em&gt; and a &lt;em&gt;sample&lt;/em&gt;, which is the numeric value, such as how many disk bytes have been read or a stock price&lt;/li&gt;
&lt;li&gt;a set of labels called &lt;em&gt;dimensions&lt;/em&gt;, for example, &lt;code&gt;job&lt;/code&gt; and &lt;code&gt;device&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can store time series data in any relational database, however, these systems are not developed to store and query large volumes of time series data. Prometheus and similar software provide tools to compact and optimize time series data.&lt;/p&gt;
&lt;h3 id=&#34;simple-dashboard-using-promql&#34;&gt;Simple dashboard using PromQL&lt;/h3&gt;
&lt;p&gt;The following Grafana dashboard image shows a Disk I/O graph of raw data from Prometheus derived from a laptop.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Metrics browser&lt;/strong&gt; field contains the following query:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;node_disk_written_bytes_total{job=&amp;quot;integrations/macos-node&amp;quot;, device!=&amp;quot;&amp;quot;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;In this example, the Y-axis shows the total number of bytes written, and the X-axis shows dates and times. As the laptop runs, the number of bytes written increases over time. Below &lt;strong&gt;Metrics browser&lt;/strong&gt; is a counter that counts the number of bytes written over time.&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 750px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;/media/docs/grafana/intro-prometheus/dashboard-example.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;/media/docs/grafana/intro-prometheus/dashboard-example.png&#34;data-srcset=&#34;/media/docs/grafana/intro-prometheus/dashboard-example.png?w=320 320w, /media/docs/grafana/intro-prometheus/dashboard-example.png?w=550 550w, /media/docs/grafana/intro-prometheus/dashboard-example.png?w=750 750w, /media/docs/grafana/intro-prometheus/dashboard-example.png?w=900 900w, /media/docs/grafana/intro-prometheus/dashboard-example.png?w=1040 1040w, /media/docs/grafana/intro-prometheus/dashboard-example.png?w=1240 1240w, /media/docs/grafana/intro-prometheus/dashboard-example.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Metrics browser and counter&#34;width=&#34;1600&#34;height=&#34;927&#34;title=&#34;Metrics browser and counter&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/grafana/intro-prometheus/dashboard-example.png&#34;
            alt=&#34;Metrics browser and counter&#34;width=&#34;1600&#34;height=&#34;927&#34;title=&#34;Metrics browser and counter&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Metrics browser and counter&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;The query is a simple example of &lt;a href=&#34;/blog/2020/02/04/introduction-to-promql-the-prometheus-query-language/&#34;&gt;PromQL&lt;/a&gt;, the Prometheus Query Language. The query identifies the metric of interest (&lt;code&gt;node_disk_written_bytes_total&lt;/code&gt;) and provides two labels (&lt;code&gt;job&lt;/code&gt; and &lt;code&gt;device&lt;/code&gt;). The label selector &lt;code&gt;job=&amp;quot;integrations/macos-node&amp;quot;&lt;/code&gt; filters metrics. It both reduces the scope of the metrics to those coming from the MacOS integration job and specifies that the “device” label cannot be empty. The result of this query is the raw stream of numbers that the graph displays.&lt;/p&gt;
&lt;p&gt;Although this view provides some insight into the performance of the system, it doesn’t provide the full story. A clearer picture of system performance requires understanding the rate of change that displays &lt;em&gt;how fast the data being written is changing&lt;/em&gt;. To properly monitor disk performance, you need to also see spikes in activity that illustrate if and when the system is under load, and whether disk performance is at risk. PromQL includes a &lt;a href=&#34;https://prometheus.io/docs/prometheus/latest/querying/functions/#rate&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;rate()&lt;/a&gt; function that shows the per-second average rate of increase over &lt;code&gt;5m&lt;/code&gt; (5-minute) intervals. This view provides a much clearer picture of what’s happening with the system.&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 750px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;/media/docs/grafana/intro-prometheus/rate-function.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;/media/docs/grafana/intro-prometheus/rate-function.png&#34;data-srcset=&#34;/media/docs/grafana/intro-prometheus/rate-function.png?w=320 320w, /media/docs/grafana/intro-prometheus/rate-function.png?w=550 550w, /media/docs/grafana/intro-prometheus/rate-function.png?w=750 750w, /media/docs/grafana/intro-prometheus/rate-function.png?w=900 900w, /media/docs/grafana/intro-prometheus/rate-function.png?w=1040 1040w, /media/docs/grafana/intro-prometheus/rate-function.png?w=1240 1240w, /media/docs/grafana/intro-prometheus/rate-function.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Prometheus rate function&#34;width=&#34;1600&#34;height=&#34;899&#34;title=&#34;Prometheus rate function&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/grafana/intro-prometheus/rate-function.png&#34;
            alt=&#34;Prometheus rate function&#34;width=&#34;1600&#34;height=&#34;899&#34;title=&#34;Prometheus rate function&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Prometheus rate function&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;A counter metric is just one type of metric; it is a number (such as total bytes written) that only increases. Prometheus &lt;a href=&#34;https://prometheus.io/docs/concepts/metric_types/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;supports several others&lt;/a&gt;, such as the metric type &lt;code&gt;gauge&lt;/code&gt;, which can increase or decrease.&lt;/p&gt;
&lt;p&gt;The following gauge visualization displays the total RAM usage on a computer.&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 750px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;/media/docs/grafana/intro-prometheus/gauge-example.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;/media/docs/grafana/intro-prometheus/gauge-example.png&#34;data-srcset=&#34;/media/docs/grafana/intro-prometheus/gauge-example.png?w=320 320w, /media/docs/grafana/intro-prometheus/gauge-example.png?w=550 550w, /media/docs/grafana/intro-prometheus/gauge-example.png?w=750 750w, /media/docs/grafana/intro-prometheus/gauge-example.png?w=900 900w, /media/docs/grafana/intro-prometheus/gauge-example.png?w=1040 1040w, /media/docs/grafana/intro-prometheus/gauge-example.png?w=1240 1240w, /media/docs/grafana/intro-prometheus/gauge-example.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Gauge visualization&#34;width=&#34;618&#34;height=&#34;480&#34;title=&#34;Gauge visualization&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/grafana/intro-prometheus/gauge-example.png&#34;
            alt=&#34;Gauge visualization&#34;width=&#34;618&#34;height=&#34;480&#34;title=&#34;Gauge visualization&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Gauge visualization&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;The third metric type is called a &lt;code&gt;histogram&lt;/code&gt;, which counts observations and organizes them into configurable groups. The following example displays floating-point numbers grouped into ranges that display how frequently each occurred.&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 750px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;/media/docs/grafana/intro-prometheus/histogram-example.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;/media/docs/grafana/intro-prometheus/histogram-example.png&#34;data-srcset=&#34;/media/docs/grafana/intro-prometheus/histogram-example.png?w=320 320w, /media/docs/grafana/intro-prometheus/histogram-example.png?w=550 550w, /media/docs/grafana/intro-prometheus/histogram-example.png?w=750 750w, /media/docs/grafana/intro-prometheus/histogram-example.png?w=900 900w, /media/docs/grafana/intro-prometheus/histogram-example.png?w=1040 1040w, /media/docs/grafana/intro-prometheus/histogram-example.png?w=1240 1240w, /media/docs/grafana/intro-prometheus/histogram-example.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Histogram visualization&#34;width=&#34;1206&#34;height=&#34;688&#34;title=&#34;Histogram visualization&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/grafana/intro-prometheus/histogram-example.png&#34;
            alt=&#34;Histogram visualization&#34;width=&#34;1206&#34;height=&#34;688&#34;title=&#34;Histogram visualization&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Histogram visualization&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;These core concepts of time series, metrics, labels, and aggregation functions are foundational to Grafana and observability.&lt;/p&gt;
&lt;h2 id=&#34;why-this-is-valuable&#34;&gt;Why this is valuable&lt;/h2&gt;
&lt;p&gt;Software and systems are a difficult business. Sometimes things go wrong. Observability helps you understand a system’s state so that issues can be quickly identified and proactively addressed. And when problems do occur, you can be alerted to them to diagnose and solve them within your Service Level Objectives (SLOs).&lt;/p&gt;
&lt;p&gt;The &lt;a href=&#34;https://www.oreilly.com/library/view/distributed-systems-observability/9781492033431/ch04.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;three pillars of observability&lt;/a&gt; are metrics, logs, and traces. Prometheus supports the metrics pillar. When software on a computer runs slowly, observability can help you identify whether CPU is saturated, the system is out of memory, or if the disk is writing at maximum speed so you can proactively respond.&lt;/p&gt;
&lt;h2 id=&#34;prometheus-as-software&#34;&gt;Prometheus as software&lt;/h2&gt;
&lt;p&gt;Prometheus isn’t just a data format; it is also considered an &lt;a href=&#34;https://prometheus.io/docs/introduction/overview/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;open source systems monitoring and alerting toolkit&lt;/a&gt;. That’s because Prometheus is software, not just data.&lt;/p&gt;
&lt;p&gt;Prometheus can scrape metric data from software and infrastructure and store it. Scraping means that Prometheus software periodically revisits the same endpoint to check for new data. Prometheus scrapes data from a piece of software instrumented with a client library.&lt;/p&gt;
&lt;p&gt;For example, a NodeJS application can configure the &lt;a href=&#34;https://github.com/siimon/prom-client&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;prom-client&lt;/a&gt; to expose metrics easily at an endpoint, and Prometheus can regularly scrape that endpoint. Prometheus includes a number of other tools within the toolkit to instrument your applications.&lt;/p&gt;
&lt;h2 id=&#34;prometheus-as-deployment&#34;&gt;Prometheus as deployment&lt;/h2&gt;
&lt;p&gt;The first section of this document introduced the Prometheus as Data concept and how the Prometheus data model and metrics are organized. The second section introduced the concept of Prometheus as Software that is used to collect, process, and store metrics. This section describes how Prometheus as Data and Prometheus as Software come together.&lt;/p&gt;
&lt;p&gt;Consider the following example. Suppose a &amp;lsquo;MyApp&amp;rsquo; application uses a Prometheus client to expose metrics. One approach to collecting metrics data is to use a URL in the application that points to an endpoint &lt;code&gt;http://localhost:3000/metrics&lt;/code&gt; that produces Prometheus metrics data.&lt;/p&gt;
&lt;p&gt;The following image shows the two metrics associated with the endpoint. The HELP text explains what the metric means, and the TYPE text indicates what kind of metric it is (in this case, a gauge). &lt;code&gt;MyAppnodejs_active_request_total&lt;/code&gt; indicates the number of requests (in this case, &lt;code&gt;1&lt;/code&gt;). &lt;code&gt;MyAppnodejs_heap_size_total_bytes&lt;/code&gt; indicates the heap size reported in bytes. There are only two numbers because this data shows the value at the moment the data was fetched.&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 750px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;/media/docs/grafana/intro-prometheus/endpoint-data.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;/media/docs/grafana/intro-prometheus/endpoint-data.png&#34;data-srcset=&#34;/media/docs/grafana/intro-prometheus/endpoint-data.png?w=320 320w, /media/docs/grafana/intro-prometheus/endpoint-data.png?w=550 550w, /media/docs/grafana/intro-prometheus/endpoint-data.png?w=750 750w, /media/docs/grafana/intro-prometheus/endpoint-data.png?w=900 900w, /media/docs/grafana/intro-prometheus/endpoint-data.png?w=1040 1040w, /media/docs/grafana/intro-prometheus/endpoint-data.png?w=1240 1240w, /media/docs/grafana/intro-prometheus/endpoint-data.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Endpoint example&#34;width=&#34;1288&#34;height=&#34;228&#34;title=&#34;Endpoint example&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/grafana/intro-prometheus/endpoint-data.png&#34;
            alt=&#34;Endpoint example&#34;width=&#34;1288&#34;height=&#34;228&#34;title=&#34;Endpoint example&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Endpoint example&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;The &amp;lsquo;MyApp&amp;rsquo; metrics are available in an HTTP endpoint, but how do they get to Grafana, and subsequently, into a dashboard? The process of recording and transmitting the readings of an application or piece of infrastructure is known as &lt;em&gt;telemetry&lt;/em&gt;. Telemetry is critical to observability because it helps you understand exactly what&amp;rsquo;s going on in your infrastructure. The metrics introduced previously, for example, &lt;code&gt;MyAppnodejs_active_requests_total&lt;/code&gt;, are telemetry data.&lt;/p&gt;
&lt;p&gt;To get metrics into Grafana, you can use either the Prometheus software or &lt;a href=&#34;/docs/alloy/latest/&#34;&gt;Grafana Alloy&lt;/a&gt; to scrape metrics. Grafana Alloy collects and forwards the telemetry data to open-source deployments of the Grafana Stack, Grafana Cloud, or Grafana Enterprise, where your data can be analyzed. For example, you can configure Grafana Alloy to pull the data from &amp;lsquo;MyApp&amp;rsquo; every five seconds and send the results to Grafana Cloud.&lt;/p&gt;
&lt;p&gt;Metrics data is only one type of telemetry data; the other kinds are logs and traces. Using Grafana Alloy can be a great option to send telemetry data because as you scale your observability practices to include logs and traces, which Grafana Alloy also supports, you&amp;rsquo;ve got a solution already in place.&lt;/p&gt;
&lt;p&gt;The following image illustrates how Grafana Alloy works as an intermediary between &amp;lsquo;MyApp&amp;rsquo; and Grafana Cloud.&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 1277px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;/media/docs/alloy/flow-diagram-small-alloy.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;/media/docs/alloy/flow-diagram-small-alloy.png&#34;data-srcset=&#34;/media/docs/alloy/flow-diagram-small-alloy.png?w=320 320w, /media/docs/alloy/flow-diagram-small-alloy.png?w=550 550w, /media/docs/alloy/flow-diagram-small-alloy.png?w=750 750w, /media/docs/alloy/flow-diagram-small-alloy.png?w=900 900w, /media/docs/alloy/flow-diagram-small-alloy.png?w=1040 1040w, /media/docs/alloy/flow-diagram-small-alloy.png?w=1240 1240w, /media/docs/alloy/flow-diagram-small-alloy.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Grafana Alloy&#34;width=&#34;1277&#34;height=&#34;454&#34;title=&#34;Grafana Alloy&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/alloy/flow-diagram-small-alloy.png&#34;
            alt=&#34;Grafana Alloy&#34;width=&#34;1277&#34;height=&#34;454&#34;title=&#34;Grafana Alloy&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Grafana Alloy&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2 id=&#34;bringing-it-together&#34;&gt;Bringing it together&lt;/h2&gt;
&lt;p&gt;The combination of Prometheus and Grafana Alloy gives you control over the metrics you want to report, where they come from, and where they’re going. Once the data is in Grafana, it can be stored in a Grafana Mimir database. Grafana dashboards consist of visualizations populated by data queried from the Prometheus data source. The PromQL query filters and aggregates the data to provide you the insight you need. With those steps, we’ve gone from raw numbers, generated by software, into Prometheus, delivered to Grafana, queried by PromQL, and visualized by Grafana.&lt;/p&gt;
&lt;h2 id=&#34;whats-next&#34;&gt;What’s next?&lt;/h2&gt;
&lt;p&gt;Now that you understand how Prometheus metrics work, what will you build?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One great next step is to 
    &lt;a href=&#34;/docs/grafana/v12.4/dashboards/build-dashboards/&#34;&gt;build a dashboard&lt;/a&gt; in Grafana and start turning that raw Prometheus telemetry data into insights about what’s going with your services and infrastructure.&lt;/li&gt;
&lt;li&gt;Another great step is to learn about &lt;a href=&#34;/oss/mimir/&#34;&gt;Grafana Mimir&lt;/a&gt;, which is essentially a database for Prometheus data. If you’re wondering how to make this work for a large volumes of metrics with a lot of data and fast querying, check out Grafana Mimir.&lt;/li&gt;
&lt;li&gt;If you’re interested in working with Prometheus data in Grafana directly, check out the 
    &lt;a href=&#34;/docs/grafana/v12.4/datasources/prometheus/&#34;&gt;Prometheus data source&lt;/a&gt; documentation, or check out &lt;a href=&#34;https://prometheus.io/docs/prometheus/latest/querying/basics/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;PromQL basics&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="what-is-prometheus">What is Prometheus?&lt;/h1>
&lt;p>Observability focuses on understanding the internal state of your systems based on the data they produce, which helps determine if your infrastructure is healthy. Prometheus is a core technology for monitoring and observability of systems, but the term &amp;ldquo;Prometheus&amp;rdquo; can be confusing because it is used in different contexts. Understanding Prometheus basics, why it’s valuable for system observability, and how users use it in practice will both help you better understand it and help you use Grafana.&lt;/p></description></item><item><title>Grafana dashboards overview</title><link>https://grafana.com/docs/grafana/v12.4/fundamentals/dashboards-overview/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/fundamentals/dashboards-overview/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-dashboards-overview&#34;&gt;Grafana dashboards overview&lt;/h1&gt;
&lt;p&gt;Have you ever wondered what a dashboard is? In the observability world, this term is frequently used, but what exactly does it mean? The concept is borrowed from automobiles, where a dashboard gives drivers access to the controls necessary to operate a vehicle. Similarly, digital dashboards help us comprehend and manage systems. This topic explains how Grafana dashboards function, enabling you to create your own with greater ease.&lt;/p&gt;
&lt;p&gt;The following image illustrates a sample Grafana dashboard:&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 750px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;/media/docs/grafana/dashboards-overview/complex-dashboard-example.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;/media/docs/grafana/dashboards-overview/complex-dashboard-example.png&#34;data-srcset=&#34;/media/docs/grafana/dashboards-overview/complex-dashboard-example.png?w=320 320w, /media/docs/grafana/dashboards-overview/complex-dashboard-example.png?w=550 550w, /media/docs/grafana/dashboards-overview/complex-dashboard-example.png?w=750 750w, /media/docs/grafana/dashboards-overview/complex-dashboard-example.png?w=900 900w, /media/docs/grafana/dashboards-overview/complex-dashboard-example.png?w=1040 1040w, /media/docs/grafana/dashboards-overview/complex-dashboard-example.png?w=1240 1240w, /media/docs/grafana/dashboards-overview/complex-dashboard-example.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Example Grafana dashboard&#34;width=&#34;2188&#34;height=&#34;1992&#34;title=&#34;Example Grafana dashboard&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/grafana/dashboards-overview/complex-dashboard-example.png&#34;
            alt=&#34;Example Grafana dashboard&#34;width=&#34;2188&#34;height=&#34;1992&#34;title=&#34;Example Grafana dashboard&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Example Grafana dashboard&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;A Grafana dashboard consists of panels displaying data in beautiful graphs, charts, and other visualizations. These panels are created using components that transform raw data from a data source into visualizations. The process involves passing data through three gates: a plugin, a query, and an optional transformation.&lt;/p&gt;
&lt;p&gt;The image below displays all the gates, followed by detailed explanations of their purpose, usage, and significance.&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 750px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;/media/docs/grafana/dashboards-overview/dashboard-component-architecture.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;/media/docs/grafana/dashboards-overview/dashboard-component-architecture.png&#34;data-srcset=&#34;/media/docs/grafana/dashboards-overview/dashboard-component-architecture.png?w=320 320w, /media/docs/grafana/dashboards-overview/dashboard-component-architecture.png?w=550 550w, /media/docs/grafana/dashboards-overview/dashboard-component-architecture.png?w=750 750w, /media/docs/grafana/dashboards-overview/dashboard-component-architecture.png?w=900 900w, /media/docs/grafana/dashboards-overview/dashboard-component-architecture.png?w=1040 1040w, /media/docs/grafana/dashboards-overview/dashboard-component-architecture.png?w=1240 1240w, /media/docs/grafana/dashboards-overview/dashboard-component-architecture.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Dashboard component architecture&#34;width=&#34;1436&#34;height=&#34;818&#34;title=&#34;Dashboard component architecture&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/grafana/dashboards-overview/dashboard-component-architecture.png&#34;
            alt=&#34;Dashboard component architecture&#34;width=&#34;1436&#34;height=&#34;818&#34;title=&#34;Dashboard component architecture&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Dashboard component architecture&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2 id=&#34;data-sources&#34;&gt;Data sources&lt;/h2&gt;
&lt;p&gt;A data source refers to any entity that consists of data. It can be an SQL database, Grafana Loki, Grafana Mimir, or a JSON-based API. It can even be a basic CSV file. The first step in creating a dashboard visualization is selecting the data source that contains the data you need.&lt;/p&gt;
&lt;p&gt;It can be difficult to understand the distinctions between different data sources as each possesses its own structure and requires different query methods. However, in dashboards, you can see different data sources visualized in one single view, making it easier to understand your data overall.&lt;/p&gt;
&lt;h2 id=&#34;plugins&#34;&gt;Plugins&lt;/h2&gt;
&lt;p&gt;A Grafana plugin is software that adds new capabilities to Grafana. They come in many types, but right now we&amp;rsquo;ll address &lt;em&gt;data source plugins&lt;/em&gt;. The job of a Grafana data source plugin is to take a query you want answered, retrieve the data from the data source, and reconcile the differences between the data model of the data source and the data model of Grafana dashboards. It does this using a unified data structure called a &lt;a href=&#34;/developers/plugin-tools/key-concepts/data-frames&#34;&gt;data frame&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The data coming into the plugin from the data source might be in many different formats (such as JSON, rows and columns, or CSV), but when it leaves the plugin and moves through the rest of the gates toward a visualization, it&amp;rsquo;s always in data frames.&lt;/p&gt;
&lt;p&gt;Currently, Grafana offers a diverse range of 155 data sources that you can use. The most commonly used options are already pre-installed and accessible. Before exploring other options, look for an existing data source that matches your requirements. Grafana constantly updates the list, but if you don&amp;rsquo;t find a suitable data source, you can browse through the &lt;a href=&#34;/grafana/plugins/?type=datasource&#34;&gt;plugin catalog&lt;/a&gt; or &lt;a href=&#34;/developers/plugin-tools&#34;&gt;create a plugin&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;queries&#34;&gt;Queries&lt;/h2&gt;
&lt;p&gt;Queries allow you to reduce the entirety of your data to a specific dataset, providing a more manageable visualization. They help answer questions you have about system and operational processes. For instance, a company with an online store might want to determine the number of customers who add products to their shopping carts. This can be achieved through a query that aggregates access metrics for the shopping cart service, revealing the number of users accessing the service per second.&lt;/p&gt;
&lt;p&gt;When working with data sources, it&amp;rsquo;s crucial to recognize that each one has its own distinct query language. For example, Prometheus data sources utilize &lt;a href=&#34;/blog/2020/02/04/introduction-to-promql-the-prometheus-query-language/&#34;&gt;PromQL&lt;/a&gt;, while &lt;a href=&#34;/docs/loki/latest/logql/&#34;&gt;LogQL&lt;/a&gt; is used for logs, and particular databases employ SQL. A query is the foundation of every visualization in Grafana, and a dashboard might use a range of query languages.&lt;/p&gt;
&lt;p&gt;The following image shows the Query Editor associated with the Prometheus data source. The &lt;code&gt;node_cpu_seconds_total&lt;/code&gt; query is written in PromQL and requests just one metric:&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 750px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;/media/docs/grafana/dashboards-overview/example-query.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;/media/docs/grafana/dashboards-overview/example-query.png&#34;data-srcset=&#34;/media/docs/grafana/dashboards-overview/example-query.png?w=320 320w, /media/docs/grafana/dashboards-overview/example-query.png?w=550 550w, /media/docs/grafana/dashboards-overview/example-query.png?w=750 750w, /media/docs/grafana/dashboards-overview/example-query.png?w=900 900w, /media/docs/grafana/dashboards-overview/example-query.png?w=1040 1040w, /media/docs/grafana/dashboards-overview/example-query.png?w=1240 1240w, /media/docs/grafana/dashboards-overview/example-query.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Example query&#34;width=&#34;1244&#34;height=&#34;690&#34;title=&#34;Example query&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/grafana/dashboards-overview/example-query.png&#34;
            alt=&#34;Example query&#34;width=&#34;1244&#34;height=&#34;690&#34;title=&#34;Example query&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Example query&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2 id=&#34;transformations&#34;&gt;Transformations&lt;/h2&gt;
&lt;p&gt;When the data format in a visualization doesn’t meet your requirements, you can apply a 
    &lt;a href=&#34;/docs/grafana/v12.4/panels-visualizations/query-transform-data/transform-data/&#34;&gt;transformation&lt;/a&gt; that manipulates the data returned by a query.
You might not need to transform data when you&amp;rsquo;re first starting out, but they&amp;rsquo;re powerful and worth mentioning.&lt;/p&gt;
&lt;p&gt;Transforming data is useful in the following kinds of situations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You want to combine two fields together, for example, concatenating &lt;code&gt;Given Name&lt;/code&gt; and &lt;code&gt;Family Name&lt;/code&gt; into a &lt;code&gt;Full Name&lt;/code&gt; field.&lt;/li&gt;
&lt;li&gt;You have CSV data (all text), and you want to convert a field type (such as parsing a date or a number out of a string).&lt;/li&gt;
&lt;li&gt;You want to filter, join, merge, or perform other SQL-like operations that might not be supported by the underlying data source or query language.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Transformations are located in the &lt;strong&gt;Transform&lt;/strong&gt; tab in the edit dialog for a panel. Select the transformation you want, and define the transformation. The following image shows that you can have as many transformations as you want, just like queries. For example, you can chain together a series of transformations that make a change to a data type, filter results, organize columns, and sort the result into one data pipeline. Every time the dashboard is refreshed, the transformation applies to the latest data from the data source.&lt;/p&gt;
&lt;p&gt;The following image shows the transformation dialog:&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 750px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;/media/docs/grafana/dashboards-overview/example-transform-chain.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;/media/docs/grafana/dashboards-overview/example-transform-chain.png&#34;data-srcset=&#34;/media/docs/grafana/dashboards-overview/example-transform-chain.png?w=320 320w, /media/docs/grafana/dashboards-overview/example-transform-chain.png?w=550 550w, /media/docs/grafana/dashboards-overview/example-transform-chain.png?w=750 750w, /media/docs/grafana/dashboards-overview/example-transform-chain.png?w=900 900w, /media/docs/grafana/dashboards-overview/example-transform-chain.png?w=1040 1040w, /media/docs/grafana/dashboards-overview/example-transform-chain.png?w=1240 1240w, /media/docs/grafana/dashboards-overview/example-transform-chain.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Example chain of transformations&#34;width=&#34;1244&#34;height=&#34;454&#34;title=&#34;Example chain of transformations&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/grafana/dashboards-overview/example-transform-chain.png&#34;
            alt=&#34;Example chain of transformations&#34;width=&#34;1244&#34;height=&#34;454&#34;title=&#34;Example chain of transformations&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Example chain of transformations&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h2 id=&#34;panels&#34;&gt;Panels&lt;/h2&gt;
&lt;p&gt;After the data is sourced, queried, and transformed, it passes to a panel, which is the final gate in the journey to a Grafana visualization. A panel is a container that displays the visualization and provides you with various controls to manipulate it. The panel configuration is where you specify how you want to see the data. For example, you use a drop-down menu in the top-right of the panel to specify the type of visualization you want to see, such as a bar chart, pie chart, or histogram.&lt;/p&gt;
&lt;p&gt;The panel options let you customize many aspects of the visualization and the options differ based on which visualization you select. Panels also contain queries that specify the data the panel is visualizing.&lt;/p&gt;
&lt;p&gt;The following image shows a table panel being edited, the panel settings showing the query at the bottom, and the panel options on the right. In this image, you can see how the data source, plugin, query, and panel all come together.&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 750px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;/media/docs/grafana/dashboards-overview/example-table-panel.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;/media/docs/grafana/dashboards-overview/example-table-panel.png&#34;data-srcset=&#34;/media/docs/grafana/dashboards-overview/example-table-panel.png?w=320 320w, /media/docs/grafana/dashboards-overview/example-table-panel.png?w=550 550w, /media/docs/grafana/dashboards-overview/example-table-panel.png?w=750 750w, /media/docs/grafana/dashboards-overview/example-table-panel.png?w=900 900w, /media/docs/grafana/dashboards-overview/example-table-panel.png?w=1040 1040w, /media/docs/grafana/dashboards-overview/example-table-panel.png?w=1240 1240w, /media/docs/grafana/dashboards-overview/example-table-panel.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Example table panel&#34;width=&#34;1244&#34;height=&#34;670&#34;title=&#34;Example table panel&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/grafana/dashboards-overview/example-table-panel.png&#34;
            alt=&#34;Example table panel&#34;width=&#34;1244&#34;height=&#34;670&#34;title=&#34;Example table panel&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Example table panel&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Selecting the best visualization depends on the data and how you want it presented. To see examples of dashboards in one place that you can browse and inspect, refer to &lt;a href=&#34;https://play.grafana.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana Play&lt;/a&gt;, which has feature showcases and a variety of examples.&lt;/p&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;With the data source, plugin, query, transformation, and panel model in mind, you can now see right through any Grafana dashboard you encounter, and imagine how to build your own.&lt;/p&gt;
&lt;p&gt;Building a Grafana dashboard is a process that starts with determining your dashboard requirements and identifying which data sources support those requirements. If you want to integrate a specialized database with a Grafana dashboard, you must ensure the correct plugin is installed so that you can add a data source to use with that plugin.&lt;/p&gt;
&lt;p&gt;And with the data source identified and the plugin installed, you can write your query, transform the data, and format the visualization to meet your needs.&lt;/p&gt;
&lt;p&gt;This component architecture is part of what makes Grafana so powerful and general. Given the data source plugin and data frame abstraction, any data source you can access can work with the same general approach.&lt;/p&gt;
]]></content><description>&lt;h1 id="grafana-dashboards-overview">Grafana dashboards overview&lt;/h1>
&lt;p>Have you ever wondered what a dashboard is? In the observability world, this term is frequently used, but what exactly does it mean? The concept is borrowed from automobiles, where a dashboard gives drivers access to the controls necessary to operate a vehicle. Similarly, digital dashboards help us comprehend and manage systems. This topic explains how Grafana dashboards function, enabling you to create your own with greater ease.&lt;/p></description></item><item><title>Introduction to time series</title><link>https://grafana.com/docs/grafana/v12.4/fundamentals/timeseries/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/fundamentals/timeseries/</guid><content><![CDATA[&lt;h1 id=&#34;introduction-to-time-series&#34;&gt;Introduction to time series&lt;/h1&gt;
&lt;p&gt;Imagine you wanted to know how the temperature outside changes throughout the day. Once every hour, you&amp;rsquo;d check the thermometer and write down the time along with the current temperature. After a while, you&amp;rsquo;d have something like this:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Time&lt;/th&gt;
              &lt;th&gt;Value&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;09:00&lt;/td&gt;
              &lt;td&gt;24°C&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;10:00&lt;/td&gt;
              &lt;td&gt;26°C&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;11:00&lt;/td&gt;
              &lt;td&gt;27°C&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Temperature data like this is one example of what we call a &lt;em&gt;time series&lt;/em&gt; — a sequence of measurements, ordered in time. Every row in the table represents one individual measurement at a specific time.&lt;/p&gt;
&lt;p&gt;Tables are useful when you want to identify individual measurements, but they make it difficult to see the big picture. A more common visualization for time series is the &lt;em&gt;graph&lt;/em&gt;, which instead places each measurement along a time axis. Visual representations like the graph make it easier to discover patterns and features of the data that otherwise would be difficult to see.&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p docs-image--no-shadow&#34;
    style=&#34;max-width: 850px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link&#34;
        href=&#34;/static/img/docs/example_graph.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload &#34;
          data-src=&#34;/static/img/docs/example_graph.png&#34;data-srcset=&#34;/static/img/docs/example_graph.png?w=320 320w, /static/img/docs/example_graph.png?w=550 550w, /static/img/docs/example_graph.png?w=750 750w, /static/img/docs/example_graph.png?w=900 900w, /static/img/docs/example_graph.png?w=1040 1040w, /static/img/docs/example_graph.png?w=1240 1240w, /static/img/docs/example_graph.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Temperature data displayed on dashboard&#34;width=&#34;1736&#34;height=&#34;444&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/static/img/docs/example_graph.png&#34;
            alt=&#34;Temperature data displayed on dashboard&#34;width=&#34;1736&#34;height=&#34;444&#34;class=&#34;docs-image--no-shadow&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Temperature data like the one in the example, is far from the only example of a time series. Other examples of time series are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CPU and memory usage&lt;/li&gt;
&lt;li&gt;Sensor data&lt;/li&gt;
&lt;li&gt;Stock market index&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;While each of these examples are sequences of chronologically ordered measurements, they also share other attributes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New data is appended at the end, at regular intervals — for example, hourly at 09:00, 10:00, 11:00, and so on.&lt;/li&gt;
&lt;li&gt;Measurements are seldom updated after they were added — for example, yesterday&amp;rsquo;s temperature doesn&amp;rsquo;t change.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Time series are powerful. They help you understand the past by letting you analyze the state of the system at any point in time. Time series could tell you that the server crashed moments after the free disk space went down to zero.&lt;/p&gt;
&lt;p&gt;Time series can also help you predict the future, by uncovering trends in your data. If the number of registered users has been increasing monthly by 4% for the past few months, you can predict how big your user base is going to be at the end of the year.&lt;/p&gt;
&lt;p&gt;Some time series have patterns that repeat themselves over a known period. For example, the temperature is typically higher during the day, before it dips down at night. By identifying these periodic, or &lt;em&gt;seasonal&lt;/em&gt;, time series, you can make confident predictions about the next period. If you know that the system load peaks every day around 18:00, you can add more machines right before.&lt;/p&gt;
&lt;h2 id=&#34;aggregating-time-series&#34;&gt;Aggregating time series&lt;/h2&gt;
&lt;p&gt;Depending on what you&amp;rsquo;re measuring, the data can vary greatly. What if you wanted to compare periods longer than the interval between measurements? If you&amp;rsquo;d measure the temperature once every hour, you&amp;rsquo;d end up with 24 data points per day. To compare the temperature in August over the years, you&amp;rsquo;d have to combine the 31 times 24 data points into one.&lt;/p&gt;
&lt;p&gt;Combining a collection of measurements is called &lt;em&gt;aggregation&lt;/em&gt;. There are several ways to aggregate time series data. Here are some common ones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Average&lt;/strong&gt; returns the sum of all values divided by the total number of values.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Min&lt;/strong&gt; and &lt;strong&gt;Max&lt;/strong&gt; return the smallest and largest value in the collection.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sum&lt;/strong&gt; returns the sum of all values in the collection.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Count&lt;/strong&gt; returns the number of values in the collection.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, by aggregating the data in a month, you can determine that August 2017 was, on average, warmer than the year before. Instead, to see which month had the highest temperature, you&amp;rsquo;d compare the maximum temperature for each month.&lt;/p&gt;
&lt;p&gt;How you choose to aggregate your time series data is an important decision and depends on the story you want to tell with your data. It&amp;rsquo;s common to use different aggregations to visualize the same time series data in different ways.&lt;/p&gt;
&lt;h2 id=&#34;time-series-and-monitoring&#34;&gt;Time series and monitoring&lt;/h2&gt;
&lt;p&gt;In the IT industry, time series data is often collected to monitor things like infrastructure, hardware, or application events. Machine-generated time series data is typically collected with short intervals, which allows you to react to any unexpected changes, moments after they occur. As a consequence, data accumulates at a rapid pace, making it vital to have a way to store and query data efficiently. As a result, databases optimized for time series data have seen a rise in popularity in recent years.&lt;/p&gt;
&lt;h3 id=&#34;time-series-databases&#34;&gt;Time series databases&lt;/h3&gt;
&lt;p&gt;A time series database (TSDB) is a database explicitly designed for time series data. While it&amp;rsquo;s possible to use any regular database to store measurements, a TSDB comes with some useful optimizations.&lt;/p&gt;
&lt;p&gt;Modern time series databases take advantage of the fact that measurements are only ever appended, and rarely updated or removed. For example, the timestamps for each measurement change very little over time, which results in redundant data being stored.&lt;/p&gt;
&lt;p&gt;Look at this sequence of Unix timestamps:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;1572524345, 1572524375, 1572524404, 1572524434, 1572524464&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Looking at these timestamps, they all start with &lt;code&gt;1572524&lt;/code&gt;, leading to poor use of disk space. Instead, we could store each subsequent timestamp as the difference, or &lt;em&gt;delta&lt;/em&gt;, from the first one:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;1572524345, &amp;#43;30, &amp;#43;29, &amp;#43;30, &amp;#43;30&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;We could even take it a step further, by calculating the deltas of these deltas:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;1572524345, &amp;#43;30, -1, &amp;#43;1, &amp;#43;0&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If measurements are taken at regular intervals, most of these delta-of-deltas will be 0. Because of optimizations like these, TSDBs use drastically less space than other databases.&lt;/p&gt;
&lt;p&gt;Another feature of a TSDB is the ability to filter measurements using &lt;em&gt;tags&lt;/em&gt;. Each data point is labeled with a tag that adds context information, such as where the measurement was taken. Here&amp;rsquo;s an example of the &lt;a href=&#34;https://docs.influxdata.com/influxdb/v1.7/write_protocols/line_protocol_tutorial/#syntax&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;InfluxDB data format&lt;/a&gt; that demonstrates how each measurement is stored.&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;weather,location=us-midwest temperature=82 1465839830100400200
  |    -------------------- --------------  |
  |             |             |             |
  |             |             |             |
&amp;#43;-----------&amp;#43;--------&amp;#43;-&amp;#43;---------&amp;#43;-&amp;#43;---------&amp;#43;
|measurement|,tag_set| |field_set| |timestamp|
&amp;#43;-----------&amp;#43;--------&amp;#43;-&amp;#43;---------&amp;#43;-&amp;#43;---------&amp;#43;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Here are some of the TSDBs supported by Grafana:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://graphiteapp.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Graphite&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.influxdata.com/products/influxdb-overview/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;InfluxDB&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://prometheus.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Prometheus&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;collecting-time-series-data&#34;&gt;Collecting time series data&lt;/h3&gt;
&lt;p&gt;Now that we have a place to store our time series, how do we actually gather the measurements? To collect time series data, you&amp;rsquo;d typically install a &lt;em&gt;collector&lt;/em&gt; on the device, machine, or instance you want to monitor. Some collectors are made with a specific database in mind, and some support different output destinations.&lt;/p&gt;
&lt;p&gt;Here are some examples of collectors:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://collectd.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;collectd&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/statsd/statsd&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;statsd&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://prometheus.io/docs/instrumenting/exporters/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Prometheus exporters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/influxdata/telegraf&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Telegraf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A collector either &lt;em&gt;pushes&lt;/em&gt; data to a database or lets the database &lt;em&gt;pull&lt;/em&gt; the data from it. Both methods come with their own set of pros and cons:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;&lt;/th&gt;
              &lt;th&gt;Pros&lt;/th&gt;
              &lt;th&gt;Cons&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Push&lt;/td&gt;
              &lt;td&gt;Easier to replicate data to multiple destinations.&lt;/td&gt;
              &lt;td&gt;The TSDB has no control over how much data gets sent.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Pull&lt;/td&gt;
              &lt;td&gt;Better control of how much data that gets ingested, and its authenticity.&lt;/td&gt;
              &lt;td&gt;Firewalls, VPNs or load balancers can make it hard to access the agents.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;Since it would be inefficient to write every measurement to the database, collectors pre-aggregate the data and write to the time series database at regular intervals.&lt;/p&gt;
]]></content><description>&lt;h1 id="introduction-to-time-series">Introduction to time series&lt;/h1>
&lt;p>Imagine you wanted to know how the temperature outside changes throughout the day. Once every hour, you&amp;rsquo;d check the thermometer and write down the time along with the current temperature. After a while, you&amp;rsquo;d have something like this:&lt;/p></description></item><item><title>Time series dimensions</title><link>https://grafana.com/docs/grafana/v12.4/fundamentals/timeseries-dimensions/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/fundamentals/timeseries-dimensions/</guid><content><![CDATA[&lt;h1 id=&#34;time-series-dimensions&#34;&gt;Time series dimensions&lt;/h1&gt;
&lt;p&gt;In 
    &lt;a href=&#34;/docs/grafana/v12.4/fundamentals/timeseries/#time-series-databases&#34;&gt;Introduction to time series&lt;/a&gt;, the concept of &lt;em&gt;labels&lt;/em&gt;, also called &lt;em&gt;tags&lt;/em&gt;, is introduced:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Another feature of a TSDB is the ability to filter measurements using &lt;em&gt;tags&lt;/em&gt;. Each data point is labeled with a tag that adds context information, such as where the measurement was taken.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;With time series data, the data often contain more than a single series, and is a set of multiple time series. Many Grafana data sources support this type of data.&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p docs-image--no-shadow&#34;
    style=&#34;max-width: 850px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link&#34;
        href=&#34;/static/img/docs/example_graph_multi_dim.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload &#34;
          data-src=&#34;/static/img/docs/example_graph_multi_dim.png&#34;data-srcset=&#34;/static/img/docs/example_graph_multi_dim.png?w=320 320w, /static/img/docs/example_graph_multi_dim.png?w=550 550w, /static/img/docs/example_graph_multi_dim.png?w=750 750w, /static/img/docs/example_graph_multi_dim.png?w=900 900w, /static/img/docs/example_graph_multi_dim.png?w=1040 1040w, /static/img/docs/example_graph_multi_dim.png?w=1240 1240w, /static/img/docs/example_graph_multi_dim.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Temperature by location&#34;width=&#34;826&#34;height=&#34;371&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/static/img/docs/example_graph_multi_dim.png&#34;
            alt=&#34;Temperature by location&#34;width=&#34;826&#34;height=&#34;371&#34;class=&#34;docs-image--no-shadow&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;The common case is issuing a single query for a measurement with one or more additional properties as dimensions. For example, querying a temperature measurement along with a location property. In this case, multiple series are returned back from that single query and each series has unique location as a dimension.&lt;/p&gt;
&lt;p&gt;To identify unique series within a set of time series, Grafana stores dimensions in &lt;em&gt;labels&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id=&#34;labels&#34;&gt;Labels&lt;/h2&gt;
&lt;p&gt;Each time series in Grafana optionally has labels. Labels are a set of key/value pairs for identifying dimensions. Example labels could be &lt;code&gt;{location=us}&lt;/code&gt; or &lt;code&gt;{country=us,state=ma,city=boston}&lt;/code&gt;. Within a set of time series, the combination of its name and labels identifies each series. For example, &lt;code&gt;temperature {country=us,state=ma,city=boston}&lt;/code&gt; could identify the series of temperature values for the city of Boston in the US.&lt;/p&gt;
&lt;p&gt;Different sources of time series data have dimensions stored natively, or common storage patterns that allow the data to be extracted into dimensions.&lt;/p&gt;
&lt;p&gt;Time series databases (TSDBs) usually natively support dimensionality. Prometheus also stores dimensions in &lt;em&gt;labels&lt;/em&gt;. In TSDBs such as Graphite or OpenTSDB the term &lt;em&gt;tags&lt;/em&gt; is used instead.&lt;/p&gt;
&lt;p&gt;In table databases such SQL, these dimensions are generally the &lt;code&gt;GROUP BY&lt;/code&gt; parameters of a query.&lt;/p&gt;
&lt;h2 id=&#34;multiple-dimensions-in-table-format&#34;&gt;Multiple dimensions in table format&lt;/h2&gt;
&lt;p&gt;In SQL or SQL-like databases that return table responses, additional dimensions are usually represented as columns in the query response table.&lt;/p&gt;
&lt;h3 id=&#34;single-dimension&#34;&gt;Single dimension&lt;/h3&gt;
&lt;p&gt;For example, consider a query like:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;SQL&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-sql&#34;&gt;SELECT BUCKET(StartTime, 1h), AVG(Temperature) AS Temp, Location FROM T
  GROUP BY BUCKET(StartTime, 1h), Location
  ORDER BY time asc&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This query would return a table with three columns with data types time, number, and string respectively:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;StartTime&lt;/th&gt;
              &lt;th&gt;Temp&lt;/th&gt;
              &lt;th&gt;Location&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;09:00&lt;/td&gt;
              &lt;td&gt;24&lt;/td&gt;
              &lt;td&gt;LGA&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;09:00&lt;/td&gt;
              &lt;td&gt;20&lt;/td&gt;
              &lt;td&gt;BOS&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;10:00&lt;/td&gt;
              &lt;td&gt;26&lt;/td&gt;
              &lt;td&gt;LGA&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;10:00&lt;/td&gt;
              &lt;td&gt;22&lt;/td&gt;
              &lt;td&gt;BOS&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;The table format is a &lt;em&gt;long&lt;/em&gt; formatted time series, also called &lt;em&gt;tall&lt;/em&gt;. It has repeated time stamps, and repeated values in Location. In this case, we have two time series in the set that would be identified as &lt;code&gt;Temp {Location=LGA}&lt;/code&gt; and &lt;code&gt;Temp {Location=BOS}&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Individual time series from the set are extracted by using the time typed column &lt;code&gt;StartTime&lt;/code&gt; as the time index of the time series, the numeric typed column &lt;code&gt;Temp&lt;/code&gt; as the series name, and the name and values of the string typed &lt;code&gt;Location&lt;/code&gt; column to build the labels, such as Location=LGA.&lt;/p&gt;
&lt;h3 id=&#34;multiple-dimensions&#34;&gt;Multiple dimensions&lt;/h3&gt;
&lt;p&gt;If the query is updated to select and group by more than just one string column, for example, &lt;code&gt;GROUP BY BUCKET(StartTime, 1h), Location, Sensor&lt;/code&gt;, then an additional dimension is added:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;StartTime&lt;/th&gt;
              &lt;th&gt;Temp&lt;/th&gt;
              &lt;th&gt;Location&lt;/th&gt;
              &lt;th&gt;Sensor&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;09:00&lt;/td&gt;
              &lt;td&gt;24&lt;/td&gt;
              &lt;td&gt;LGA&lt;/td&gt;
              &lt;td&gt;A&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;09:00&lt;/td&gt;
              &lt;td&gt;24.1&lt;/td&gt;
              &lt;td&gt;LGA&lt;/td&gt;
              &lt;td&gt;B&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;09:00&lt;/td&gt;
              &lt;td&gt;20&lt;/td&gt;
              &lt;td&gt;BOS&lt;/td&gt;
              &lt;td&gt;A&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;09:00&lt;/td&gt;
              &lt;td&gt;20.2&lt;/td&gt;
              &lt;td&gt;BOS&lt;/td&gt;
              &lt;td&gt;B&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;10:00&lt;/td&gt;
              &lt;td&gt;26&lt;/td&gt;
              &lt;td&gt;LGA&lt;/td&gt;
              &lt;td&gt;A&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;10:00&lt;/td&gt;
              &lt;td&gt;26.1&lt;/td&gt;
              &lt;td&gt;LGA&lt;/td&gt;
              &lt;td&gt;B&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;10:00&lt;/td&gt;
              &lt;td&gt;22&lt;/td&gt;
              &lt;td&gt;BOS&lt;/td&gt;
              &lt;td&gt;A&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;10:00&lt;/td&gt;
              &lt;td&gt;22.2&lt;/td&gt;
              &lt;td&gt;BOS&lt;/td&gt;
              &lt;td&gt;B&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;In this case the labels that represent the dimensions will have two keys based on the two string typed columns &lt;code&gt;Location&lt;/code&gt; and &lt;code&gt;Sensor&lt;/code&gt;. This data results four series: &lt;code&gt;Temp {Location=LGA,Sensor=A}&lt;/code&gt;, &lt;code&gt;Temp {Location=LGA,Sensor=B}&lt;/code&gt;, &lt;code&gt;Temp {Location=BOS,Sensor=A}&lt;/code&gt;, and &lt;code&gt;Temp {Location=BOS,Sensor=B}&lt;/code&gt;.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;More than one dimension is currently only supported in the Logs queries within the Azure Monitor service as of version 7.1.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Multiple dimensions are not supported in a way that maps to multiple alerts in Grafana, but rather they are treated as multiple conditions to a single alert.
For more information, see the documentation on 
    &lt;a href=&#34;/docs/grafana/v12.4/alerting/alerting-rules/create-grafana-managed-rule/#single-and-multi-dimensional-rule&#34;&gt;creating alerts with multiple series&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;multiple-values&#34;&gt;Multiple values&lt;/h3&gt;
&lt;p&gt;In the case of SQL-like data sources, more than one numeric column can be selected, with or without additional string columns to be used as dimensions. For example, &lt;code&gt;AVG(Temperature) AS AvgTemp, MAX(Temperature) AS MaxTemp&lt;/code&gt;. This, if combined with multiple dimensions, can result in a lot of series. Selecting multiple values is currently only designed to be used with visualization.&lt;/p&gt;
&lt;p&gt;Additional technical information on tabular time series formats and how dimensions are extracted can be found in &lt;a href=&#34;/developers/plugin-tools/key-concepts/data-frames#data-frames-as-time-series&#34;&gt;the developer documentation on data frames as time series&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="time-series-dimensions">Time series dimensions&lt;/h1>
&lt;p>In
&lt;a href="/docs/grafana/v12.4/fundamentals/timeseries/#time-series-databases">Introduction to time series&lt;/a>, the concept of &lt;em>labels&lt;/em>, also called &lt;em>tags&lt;/em>, is introduced:&lt;/p>
&lt;blockquote>
&lt;p>Another feature of a TSDB is the ability to filter measurements using &lt;em>tags&lt;/em>. Each data point is labeled with a tag that adds context information, such as where the measurement was taken.&lt;/p></description></item><item><title>Introduction to histograms and heatmaps</title><link>https://grafana.com/docs/grafana/v12.4/fundamentals/intro-histograms/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/fundamentals/intro-histograms/</guid><content><![CDATA[&lt;h1 id=&#34;introduction-to-histograms-and-heatmaps&#34;&gt;Introduction to histograms and heatmaps&lt;/h1&gt;
&lt;p&gt;A histogram is a graphical representation of the distribution of numerical data. It groups values into buckets
(sometimes also called bins) and then counts how many values fall into each bucket.&lt;/p&gt;
&lt;p&gt;Instead of graphing the actual values, histograms graph the buckets. Each bar represents a bucket,
and the bar height represents the frequency (such as count) of values that fell into that bucket&amp;rsquo;s interval.&lt;/p&gt;
&lt;h2 id=&#34;histogram-example&#34;&gt;Histogram example&lt;/h2&gt;
&lt;p&gt;This &lt;em&gt;histogram&lt;/em&gt; shows the value distribution of a couple of time series. You can easily see that
most values land between 240-300 with a peak between 260-280.&lt;/p&gt;
&lt;p&gt;&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/static/img/docs/v43/heatmap_histogram.png&#34;
  alt=&#34;Histogram example&#34; width=&#34;864&#34;
     height=&#34;297&#34;/&gt;&lt;/p&gt;
&lt;p&gt;Here is an example showing height distribution of people.&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 625px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;/static/img/docs/histogram-panel/histogram-example-v8-0.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;/static/img/docs/histogram-panel/histogram-example-v8-0.png&#34;data-srcset=&#34;/static/img/docs/histogram-panel/histogram-example-v8-0.png?w=320 320w, /static/img/docs/histogram-panel/histogram-example-v8-0.png?w=550 550w, /static/img/docs/histogram-panel/histogram-example-v8-0.png?w=750 750w, /static/img/docs/histogram-panel/histogram-example-v8-0.png?w=900 900w, /static/img/docs/histogram-panel/histogram-example-v8-0.png?w=1040 1040w, /static/img/docs/histogram-panel/histogram-example-v8-0.png?w=1240 1240w, /static/img/docs/histogram-panel/histogram-example-v8-0.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Bar chart example&#34;width=&#34;1086&#34;height=&#34;535&#34;title=&#34;Bar chart example&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/static/img/docs/histogram-panel/histogram-example-v8-0.png&#34;
            alt=&#34;Bar chart example&#34;width=&#34;1086&#34;height=&#34;535&#34;title=&#34;Bar chart example&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Bar chart example&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;For more information about histogram visualization options, refer to 
    &lt;a href=&#34;/docs/grafana/v12.4/panels-visualizations/visualizations/histogram/&#34;&gt;Histogram&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Histograms only look at &lt;em&gt;value distributions&lt;/em&gt; over a specific time range. The problem with histograms is that you cannot see any trends or changes in the distribution over time. This is where heatmaps become useful.&lt;/p&gt;
&lt;h2 id=&#34;heatmaps&#34;&gt;Heatmaps&lt;/h2&gt;
&lt;p&gt;A &lt;em&gt;heatmap&lt;/em&gt; is like a histogram, but over time, where each time slice represents its own histogram. Instead of using bar height as a representation of frequency, it uses cells, and colors the cell proportional to the number of values in the bucket.&lt;/p&gt;
&lt;p&gt;In this example, you can clearly see what values are more common and how they trend over time.&lt;/p&gt;
&lt;p&gt;&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/static/img/docs/v43/heatmap_histogram_over_time.png&#34;
  alt=&#34;Heatmap example&#34; width=&#34;863&#34;
     height=&#34;368&#34;/&gt;&lt;/p&gt;
&lt;p&gt;For more information about heatmap visualization options, refer to 
    &lt;a href=&#34;/docs/grafana/v12.4/panels-visualizations/visualizations/heatmap/&#34;&gt;Heatmap&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;pre-bucketed-data&#34;&gt;Pre-bucketed data&lt;/h2&gt;
&lt;p&gt;There are a number of data sources supporting histogram over time, like Elasticsearch (by using a Histogram bucket
aggregation) or Prometheus (with &lt;a href=&#34;https://prometheus.io/docs/concepts/metric_types/#histogram&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;histogram&lt;/a&gt; metric type
and &lt;em&gt;Format as&lt;/em&gt; option set to Heatmap). But generally, any data source could be used as long as it meets the requirement
that it either returns series with names representing bucket bounds, or that it returns series sorted by the bounds
in ascending order.&lt;/p&gt;
&lt;h2 id=&#34;raw-data-vs-aggregated&#34;&gt;Raw data vs aggregated&lt;/h2&gt;
&lt;p&gt;If you use the heatmap with regular time series data (not pre-bucketed), then it&amp;rsquo;s important to keep in mind that your data
is often already aggregated by your time series backend. Most time series queries do not return raw sample data,
but instead include a group by time interval or maxDataPoints limit coupled with an aggregation function (usually average).&lt;/p&gt;
&lt;p&gt;This all depends on the time range of your query of course. But the important point is to know that the histogram bucketing
that Grafana performs might be done on already aggregated and averaged data. To get more accurate heatmaps, it is better
to do the bucketing during metric collection, or to store the data in Elasticsearch or any other data source which
supports doing histogram bucketing on the raw data.&lt;/p&gt;
&lt;p&gt;If you remove or lower the group by time (or raise maxDataPoints) in your query to return more data points, your heatmap will be
more accurate, but this can also be very CPU and memory taxing for your browser, possibly causing hangs or crashes if the number of
data points becomes unreasonably large.&lt;/p&gt;
]]></content><description>&lt;h1 id="introduction-to-histograms-and-heatmaps">Introduction to histograms and heatmaps&lt;/h1>
&lt;p>A histogram is a graphical representation of the distribution of numerical data. It groups values into buckets
(sometimes also called bins) and then counts how many values fall into each bucket.&lt;/p></description></item><item><title>Introduction to exemplars</title><link>https://grafana.com/docs/grafana/v12.4/fundamentals/exemplars/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/fundamentals/exemplars/</guid><content><![CDATA[&lt;h1 id=&#34;introduction-to-exemplars&#34;&gt;Introduction to exemplars&lt;/h1&gt;
&lt;p&gt;An exemplar is a specific trace representative of measurement taken in a given time interval.
While metrics excel at giving you an aggregated view of your system, traces give you a fine grained view of a single request; exemplars are a way to link the two.&lt;/p&gt;
&lt;p&gt;Suppose your company website is experiencing a surge in traffic volumes.
While more than eighty percent of the users are able to access the website in under two seconds, some users are experiencing a higher than normal response time resulting in bad user experience.&lt;/p&gt;
&lt;p&gt;To identify the factors that are contributing to the latency, you must compare a trace for a fast response against a trace for a slow response.
Given the vast amount of data in a typical production environment, it&amp;rsquo;s an extremely laborious and time-consuming effort.&lt;/p&gt;
&lt;p&gt;Use exemplars to help isolate problems within your data distribution by pinpointing query traces exhibiting high latency within a time interval.
After you localize the latency problem to a few exemplar traces, you can combine it with additional system based information or location properties to perform a root cause analysis faster, leading to quick resolutions to performance issues.&lt;/p&gt;
&lt;p&gt;Support for exemplars is available for the Prometheus data source only.
After you enable the functionality, exemplar data is available by default.
For more information on exemplar configuration and how to enable exemplars, refer to the Exemplars section in &lt;a href=&#34;/docs/grafana/latest/datasources/prometheus/configure/#configuration-options&#34;&gt;Prometheus configuration options&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Grafana shows exemplars alongside a metric in the Explore view and in dashboards.
Each exemplar displays as a highlighted star.
You can hover your cursor over an exemplar to view the unique trace ID, which is a combination of a key value pair.
To investigate further, click the blue button next to the &lt;code&gt;traceID&lt;/code&gt; property.&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p docs-image--no-shadow&#34;
    style=&#34;max-width: 750px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;/media/docs/grafana/exemplars/screenshot-exemplars.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;/media/docs/grafana/exemplars/screenshot-exemplars.png&#34;data-srcset=&#34;/media/docs/grafana/exemplars/screenshot-exemplars.png?w=320 320w, /media/docs/grafana/exemplars/screenshot-exemplars.png?w=550 550w, /media/docs/grafana/exemplars/screenshot-exemplars.png?w=750 750w, /media/docs/grafana/exemplars/screenshot-exemplars.png?w=900 900w, /media/docs/grafana/exemplars/screenshot-exemplars.png?w=1040 1040w, /media/docs/grafana/exemplars/screenshot-exemplars.png?w=1240 1240w, /media/docs/grafana/exemplars/screenshot-exemplars.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Screenshot showing the detail window of an exemplar&#34;width=&#34;1557&#34;height=&#34;786&#34;title=&#34;Screenshot showing the detail window of an exemplar&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/grafana/exemplars/screenshot-exemplars.png&#34;
            alt=&#34;Screenshot showing the detail window of an exemplar&#34;width=&#34;1557&#34;height=&#34;786&#34;title=&#34;Screenshot showing the detail window of an exemplar&#34;class=&#34;docs-image--no-shadow&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Screenshot showing the detail window of an exemplar&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Refer to &lt;a href=&#34;#view-exemplar-data&#34;&gt;View exemplar data&lt;/a&gt; for instructions on how to drill down and view exemplar trace details from metrics and logs.
To know more about exemplars, refer to the blog post &lt;a href=&#34;/blog/2021/03/31/intro-to-exemplars-which-enable-grafana-tempos-distributed-tracing-at-massive-scale/&#34;&gt;Intro to exemplars, which enable Grafana Tempo’s distributed tracing at massive scale&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;view-exemplar-data&#34;&gt;View exemplar data&lt;/h2&gt;
&lt;p&gt;When support for exemplar support is enabled for a Prometheus data source, you can view exemplar data either in the Explore view or from the Loki log details.&lt;/p&gt;
&lt;h3 id=&#34;in-explore&#34;&gt;In Explore&lt;/h3&gt;
&lt;p&gt;Explore visualizes exemplar traces as highlighted stars alongside metrics data.
For more information on how Explore visualizes trace data, refer to &lt;a href=&#34;../../explore/trace-integration/&#34;&gt;Tracing in Explore&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To examine the details of an exemplar trace:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Place your cursor over an exemplar (highlighted star).
Depending on the trace data source you are using, you may see a blue button with the label &lt;code&gt;Query with &amp;lt;DATA SOURCE NAME&amp;gt;&lt;/code&gt;.
In the following example, the tracing data source is Tempo.&lt;/p&gt;
&lt;figure
       class=&#34;figure-wrapper figure-wrapper__lightbox w-100p docs-image--no-shadow&#34;
       style=&#34;max-width: 350px;&#34;
       itemprop=&#34;associatedMedia&#34;
       itemscope=&#34;&#34;
       itemtype=&#34;http://schema.org/ImageObject&#34;
     &gt;&lt;a
           class=&#34;lightbox-link captioned&#34;
           href=&#34;/media/docs/grafana/exemplars/screenshot-exemplar-details.png&#34;
           itemprop=&#34;contentUrl&#34;
         &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
             class=&#34;lazyload mb-0&#34;
             data-src=&#34;/media/docs/grafana/exemplars/screenshot-exemplar-details.png&#34;data-srcset=&#34;/media/docs/grafana/exemplars/screenshot-exemplar-details.png?w=320 320w, /media/docs/grafana/exemplars/screenshot-exemplar-details.png?w=550 550w, /media/docs/grafana/exemplars/screenshot-exemplar-details.png?w=750 750w, /media/docs/grafana/exemplars/screenshot-exemplar-details.png?w=900 900w, /media/docs/grafana/exemplars/screenshot-exemplar-details.png?w=1040 1040w, /media/docs/grafana/exemplars/screenshot-exemplar-details.png?w=1240 1240w, /media/docs/grafana/exemplars/screenshot-exemplar-details.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Screenshot showing exemplar details&#34;width=&#34;503&#34;height=&#34;666&#34;title=&#34;Screenshot showing exemplar details&#34;/&gt;
           &lt;noscript&gt;
             &lt;img
               src=&#34;/media/docs/grafana/exemplars/screenshot-exemplar-details.png&#34;
               alt=&#34;Screenshot showing exemplar details&#34;width=&#34;503&#34;height=&#34;666&#34;title=&#34;Screenshot showing exemplar details&#34;class=&#34;docs-image--no-shadow&#34;/&gt;
           &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Screenshot showing exemplar details&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click the &lt;strong&gt;Query with Tempo&lt;/strong&gt; option next to the &lt;code&gt;traceID&lt;/code&gt; property.
The trace details, including the spans within the trace are listed in a separate panel on the right.&lt;/p&gt;
&lt;figure
       class=&#34;figure-wrapper figure-wrapper__lightbox w-100p docs-image--no-shadow&#34;
       style=&#34;max-width: 900px;&#34;
       itemprop=&#34;associatedMedia&#34;
       itemscope=&#34;&#34;
       itemtype=&#34;http://schema.org/ImageObject&#34;
     &gt;&lt;a
           class=&#34;lightbox-link captioned&#34;
           href=&#34;/media/docs/grafana/exemplars/screenshot-exemplar-explore-view.png&#34;
           itemprop=&#34;contentUrl&#34;
         &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
             class=&#34;lazyload mb-0&#34;
             data-src=&#34;/media/docs/grafana/exemplars/screenshot-exemplar-explore-view.png&#34;data-srcset=&#34;/media/docs/grafana/exemplars/screenshot-exemplar-explore-view.png?w=320 320w, /media/docs/grafana/exemplars/screenshot-exemplar-explore-view.png?w=550 550w, /media/docs/grafana/exemplars/screenshot-exemplar-explore-view.png?w=750 750w, /media/docs/grafana/exemplars/screenshot-exemplar-explore-view.png?w=900 900w, /media/docs/grafana/exemplars/screenshot-exemplar-explore-view.png?w=1040 1040w, /media/docs/grafana/exemplars/screenshot-exemplar-explore-view.png?w=1240 1240w, /media/docs/grafana/exemplars/screenshot-exemplar-explore-view.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Explorer view with panel showing trace details&#34;width=&#34;1561&#34;height=&#34;853&#34;title=&#34;Explorer view with panel showing trace details&#34;/&gt;
           &lt;noscript&gt;
             &lt;img
               src=&#34;/media/docs/grafana/exemplars/screenshot-exemplar-explore-view.png&#34;
               alt=&#34;Explorer view with panel showing trace details&#34;width=&#34;1561&#34;height=&#34;853&#34;title=&#34;Explorer view with panel showing trace details&#34;class=&#34;docs-image--no-shadow&#34;/&gt;
           &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Explorer view with panel showing trace details&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For more information on how to drill down and analyze the trace and span details, refer to the &lt;a href=&#34;#analyze-trace-and-spans&#34;&gt;Analyze trace and span details&lt;/a&gt; section.&lt;/p&gt;
&lt;h3 id=&#34;in-logs&#34;&gt;In logs&lt;/h3&gt;
&lt;p&gt;You can also view exemplar trace details from the Loki logs in Explore.
Use regular expressions within the Derived fields links for Loki to extract the &lt;code&gt;traceID&lt;/code&gt; information.
Now when you expand Loki logs, you can see a &lt;code&gt;traceID&lt;/code&gt; property under the &lt;strong&gt;Detected fields&lt;/strong&gt; section.
To learn more about how to extract a part of a log message into an internal or external link, refer to &lt;a href=&#34;../../explore/logs-integration/&#34;&gt;using derived fields in Loki&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To view the details of an exemplar trace:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Expand a log line and scroll down to the &lt;code&gt;Fields&lt;/code&gt; section.
Depending on your backend trace data source, you may see a blue button with the label &lt;code&gt;&amp;lt;DATA SOURCE NAME&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click the blue button next to the &lt;code&gt;traceID&lt;/code&gt; property.
Typically, it has the name of the backend data source.
In the following example, the tracing data source is Tempo.
The trace details, including the spans within the trace are listed in a separate panel on the right.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p docs-image--no-shadow&#34;
    style=&#34;max-width: 750px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;/media/docs/grafana/exemplars/screenshot-exemplar-loki-logs.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;/media/docs/grafana/exemplars/screenshot-exemplar-loki-logs.png&#34;data-srcset=&#34;/media/docs/grafana/exemplars/screenshot-exemplar-loki-logs.png?w=320 320w, /media/docs/grafana/exemplars/screenshot-exemplar-loki-logs.png?w=550 550w, /media/docs/grafana/exemplars/screenshot-exemplar-loki-logs.png?w=750 750w, /media/docs/grafana/exemplars/screenshot-exemplar-loki-logs.png?w=900 900w, /media/docs/grafana/exemplars/screenshot-exemplar-loki-logs.png?w=1040 1040w, /media/docs/grafana/exemplars/screenshot-exemplar-loki-logs.png?w=1240 1240w, /media/docs/grafana/exemplars/screenshot-exemplar-loki-logs.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Explorer view with panel showing trace details&#34;width=&#34;1559&#34;height=&#34;928&#34;title=&#34;Explorer view with panel showing trace details&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/media/docs/grafana/exemplars/screenshot-exemplar-loki-logs.png&#34;
            alt=&#34;Explorer view with panel showing trace details&#34;width=&#34;1559&#34;height=&#34;928&#34;title=&#34;Explorer view with panel showing trace details&#34;class=&#34;docs-image--no-shadow&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Explorer view with panel showing trace details&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;For more information on how to drill down and analyze the trace and span details, refer to the &lt;a href=&#34;#analyze-trace-and-spans&#34;&gt;Analyze trace and span details&lt;/a&gt; section.&lt;/p&gt;
&lt;h3 id=&#34;analyze-trace-and-spans&#34;&gt;Analyze trace and spans&lt;/h3&gt;
&lt;p&gt;This panel shows the details of the trace in different segments.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The top segment displays the trace ID to indicate that the query results correspond to the specific trace.&lt;/p&gt;
&lt;p&gt;You can add more traces to the results using the &lt;code&gt;Add query&lt;/code&gt; button.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The next segment shows the entire span for the specific trace as a narrow strip.
All levels of the trace from the client all the way down to database query is displayed, which provides a bird&amp;rsquo;s eye view of the time distribution across all layers over which the HTTP request was processed.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;You can click within this strip view to display a magnified view of a smaller time segment within the span. This magnified view shows up in the bottom segment of the panel.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the magnified view, you can expand or collapse the various levels of the trace to drill down to the specific span of interest.&lt;/p&gt;
&lt;p&gt;For example, if the strip view shows that most of the latency was within the app layer, you can expand the trace down the app layer to investigate the problem further.
To expand a particular layer of span, click the left icon.
The same button can collapse an expanded span.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To see the details of the span at any level, click the span itself.&lt;/p&gt;
&lt;p&gt;This displays additional metadata associated with the span.
The metadata itself is initially shown in a narrow strip but you can see more details by clicking the metadata strip.&lt;/p&gt;
&lt;figure
      class=&#34;figure-wrapper figure-wrapper__lightbox w-100p docs-image--no-shadow&#34;
      style=&#34;max-width: 600px;&#34;
      itemprop=&#34;associatedMedia&#34;
      itemscope=&#34;&#34;
      itemtype=&#34;http://schema.org/ImageObject&#34;
    &gt;&lt;a
          class=&#34;lightbox-link captioned&#34;
          href=&#34;/media/docs/grafana/exemplars/screenshot-exemplar-span-details.png&#34;
          itemprop=&#34;contentUrl&#34;
        &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
            class=&#34;lazyload mb-0&#34;
            data-src=&#34;/media/docs/grafana/exemplars/screenshot-exemplar-span-details.png&#34;data-srcset=&#34;/media/docs/grafana/exemplars/screenshot-exemplar-span-details.png?w=320 320w, /media/docs/grafana/exemplars/screenshot-exemplar-span-details.png?w=550 550w, /media/docs/grafana/exemplars/screenshot-exemplar-span-details.png?w=750 750w, /media/docs/grafana/exemplars/screenshot-exemplar-span-details.png?w=900 900w, /media/docs/grafana/exemplars/screenshot-exemplar-span-details.png?w=1040 1040w, /media/docs/grafana/exemplars/screenshot-exemplar-span-details.png?w=1240 1240w, /media/docs/grafana/exemplars/screenshot-exemplar-span-details.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Span details&#34;width=&#34;765&#34;height=&#34;1086&#34;title=&#34;Span details&#34;/&gt;
          &lt;noscript&gt;
            &lt;img
              src=&#34;/media/docs/grafana/exemplars/screenshot-exemplar-span-details.png&#34;
              alt=&#34;Span details&#34;width=&#34;765&#34;height=&#34;1086&#34;title=&#34;Span details&#34;class=&#34;docs-image--no-shadow&#34;/&gt;
          &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Span details&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="introduction-to-exemplars">Introduction to exemplars&lt;/h1>
&lt;p>An exemplar is a specific trace representative of measurement taken in a given time interval.
While metrics excel at giving you an aggregated view of your system, traces give you a fine grained view of a single request; exemplars are a way to link the two.&lt;/p></description></item><item><title>Glossary</title><link>https://grafana.com/docs/grafana/v12.4/fundamentals/glossary/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/fundamentals/glossary/</guid><content><![CDATA[&lt;h1 id=&#34;glossary&#34;&gt;Glossary&lt;/h1&gt;
&lt;p&gt;This topic lists words and abbreviations that are commonly used in the Grafana documentation and community.&lt;/p&gt;
&lt;table&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;app plugin&lt;/td&gt;
    &lt;td&gt;
      An extension of Grafana that allows users to provide additional functionality to enhance their experience by including a set of panel and data source plugins, as well as custom pages. See also &lt;i&gt;data source plugin&lt;/i&gt;, &lt;i&gt;panel plugin&lt;/i&gt;, and &lt;i&gt;plugin&lt;/i&gt;.
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;dashboard&lt;/td&gt;
    &lt;td&gt;
      A set of one or more panels, organized and arranged into one or more rows, that provide an at-a-glance view of related information.
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;data source&lt;/td&gt;
    &lt;td&gt;
      A file, database, or service providing the data. Grafana supports several data sources by default, and can be extended to support additional data sources through plugins.
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;data source plugin&lt;/td&gt;
    &lt;td&gt;
      Extends Grafana with support for additional data sources. See also &lt;i&gt;data source&lt;/i&gt;, &lt;i&gt;app plugin&lt;/i&gt;, &lt;i&gt;panel plugin&lt;/i&gt;, and &lt;i&gt;plugin&lt;/i&gt;.
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;exemplar&lt;/td&gt;
    &lt;td&gt;
      An exemplar is any data that serves as a detailed example of one of the observations aggregated into a metric. An exemplar contains the observed value together with an optional timestamp and arbitrary labels, which are typically used to reference a trace.
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;Explore&lt;/td&gt;
    &lt;td&gt;
      Explore allows a user to focus on building a query. Users can refine the query to return the expected metrics before building a dashboard. For more information, refer to the &lt;a href=&#34;https://grafana.com/docs/grafana/latest/explore&#34;&gt;Explore&lt;/a&gt; topic.
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;export or import dashboard&lt;/td&gt;
    &lt;td&gt;
      Grafana includes the ability to export your dashboards to a file containing JSON. Community members sometimes share their created dashboards on the &lt;a href=&#34;https://grafana.com/grafana/dashboards&#34;&gt;Grafana Dashboards page&lt;/a&gt;. Dashboards previously exported or found on this site may be imported by other users.
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;exporter&lt;/td&gt;
    &lt;td&gt;
      An exporter translates data that comes out of a data source into a format that Prometheus can digest.
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;Integration (Grafana Cloud)&lt;/td&gt;
    &lt;td&gt;
      Each Integration in Grafana Cloud uses the cloud agent to connect your data source to Grafana Cloud for visualizing. Note: Prometheus uses the word “integrations” to refer to software that exposes Prometheus metrics without needing an exporter, which is a different use of the same word we use here.
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;graph&lt;/td&gt;
    &lt;td&gt;
      A commonly-used visualization that displays data as points, lines, or bars.
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;&lt;code&gt;grafanactl&lt;/code&gt;&lt;/td&gt;
    &lt;td&gt;
      A command-line tool that enables users to authenticate, manage multiple environments, and perform administrative tasks through Grafana&#39;s REST API. 
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;mixin&lt;/td&gt;
    &lt;td&gt;
      A mixin is a set of Grafana dashboards and Prometheus rules and alerts, written in Jsonnet and packaged together in a bundle.
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;panel&lt;/td&gt;
    &lt;td&gt;
      Basic building block in Grafana, composed by a query and a visualization. Can be moved and resized within a dashboard.
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;panel plugin&lt;/td&gt;
    &lt;td&gt;
      Extends Grafana with additional visualization options. See also &lt;i&gt;panel&lt;/i&gt;, &lt;i&gt;plugin&lt;/i&gt;, &lt;i&gt;app plugin&lt;/i&gt;, and &lt;i&gt;data source plugin&lt;/i&gt;.
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;plugin&lt;/td&gt;
    &lt;td&gt;
      An extension of Grafana that allows users to provide additional functionality to enhance their experience. See also &lt;i&gt;app plugin&lt;/i&gt;, &lt;i&gt;data source plugin&lt;/i&gt;, and &lt;i&gt;panel plugin&lt;/i&gt;.
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;query&lt;/td&gt;
    &lt;td&gt;
      Used to request data from a data source. The structure and format of the query depend on the specific data source.
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;time series&lt;/td&gt;
    &lt;td&gt;
      A series of measurements, ordered by time. Time series are stored in data sources and returned as the result of a query.
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;trace&lt;/td&gt;
    &lt;td&gt;
      An observed execution path of a request through a distributed system. For more information, refer to &lt;a href=&#34;https://opentracing.io/docs/overview/what-is-tracing/&#34;&gt;What is Distributed Tracing?&lt;/a&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;transformation&lt;/td&gt;
    &lt;td&gt;
      Transformations process the result set of a query before it’s passed on for visualization. For more information, refer to the &lt;a href=&#34;https://grafana.com/docs/grafana/latest/panels/transformations&#34;&gt;Transformations overview&lt;/a&gt; topic.
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&#34;vertical-align: top&#34;&gt;visualization&lt;/td&gt;
    &lt;td&gt;A graphical representation of query results.&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
]]></content><description>&lt;h1 id="glossary">Glossary&lt;/h1>
&lt;p>This topic lists words and abbreviations that are commonly used in the Grafana documentation and community.&lt;/p>
&lt;table>
&lt;tr>
&lt;td style="vertical-align: top">app plugin&lt;/td>
&lt;td>
An extension of Grafana that allows users to provide additional functionality to enhance their experience by including a set of panel and data source plugins, as well as custom pages. See also &lt;i>data source plugin&lt;/i>, &lt;i>panel plugin&lt;/i>, and &lt;i>plugin&lt;/i>.
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">dashboard&lt;/td>
&lt;td>
A set of one or more panels, organized and arranged into one or more rows, that provide an at-a-glance view of related information.
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">data source&lt;/td>
&lt;td>
A file, database, or service providing the data. Grafana supports several data sources by default, and can be extended to support additional data sources through plugins.
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">data source plugin&lt;/td>
&lt;td>
Extends Grafana with support for additional data sources. See also &lt;i>data source&lt;/i>, &lt;i>app plugin&lt;/i>, &lt;i>panel plugin&lt;/i>, and &lt;i>plugin&lt;/i>.
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">exemplar&lt;/td>
&lt;td>
An exemplar is any data that serves as a detailed example of one of the observations aggregated into a metric. An exemplar contains the observed value together with an optional timestamp and arbitrary labels, which are typically used to reference a trace.
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">Explore&lt;/td>
&lt;td>
Explore allows a user to focus on building a query. Users can refine the query to return the expected metrics before building a dashboard. For more information, refer to the &lt;a href="https://grafana.com/docs/grafana/latest/explore">Explore&lt;/a> topic.
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">export or import dashboard&lt;/td>
&lt;td>
Grafana includes the ability to export your dashboards to a file containing JSON. Community members sometimes share their created dashboards on the &lt;a href="https://grafana.com/grafana/dashboards">Grafana Dashboards page&lt;/a>. Dashboards previously exported or found on this site may be imported by other users.
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">exporter&lt;/td>
&lt;td>
An exporter translates data that comes out of a data source into a format that Prometheus can digest.
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">Integration (Grafana Cloud)&lt;/td>
&lt;td>
Each Integration in Grafana Cloud uses the cloud agent to connect your data source to Grafana Cloud for visualizing. Note: Prometheus uses the word “integrations” to refer to software that exposes Prometheus metrics without needing an exporter, which is a different use of the same word we use here.
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">graph&lt;/td>
&lt;td>
A commonly-used visualization that displays data as points, lines, or bars.
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">&lt;code>grafanactl&lt;/code>&lt;/td>
&lt;td>
A command-line tool that enables users to authenticate, manage multiple environments, and perform administrative tasks through Grafana's REST API.
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">mixin&lt;/td>
&lt;td>
A mixin is a set of Grafana dashboards and Prometheus rules and alerts, written in Jsonnet and packaged together in a bundle.
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">panel&lt;/td>
&lt;td>
Basic building block in Grafana, composed by a query and a visualization. Can be moved and resized within a dashboard.
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">panel plugin&lt;/td>
&lt;td>
Extends Grafana with additional visualization options. See also &lt;i>panel&lt;/i>, &lt;i>plugin&lt;/i>, &lt;i>app plugin&lt;/i>, and &lt;i>data source plugin&lt;/i>.
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">plugin&lt;/td>
&lt;td>
An extension of Grafana that allows users to provide additional functionality to enhance their experience. See also &lt;i>app plugin&lt;/i>, &lt;i>data source plugin&lt;/i>, and &lt;i>panel plugin&lt;/i>.
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">query&lt;/td>
&lt;td>
Used to request data from a data source. The structure and format of the query depend on the specific data source.
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">time series&lt;/td>
&lt;td>
A series of measurements, ordered by time. Time series are stored in data sources and returned as the result of a query.
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">trace&lt;/td>
&lt;td>
An observed execution path of a request through a distributed system. For more information, refer to &lt;a href="https://opentracing.io/docs/overview/what-is-tracing/">What is Distributed Tracing?&lt;/a>
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">transformation&lt;/td>
&lt;td>
Transformations process the result set of a query before it’s passed on for visualization. For more information, refer to the &lt;a href="https://grafana.com/docs/grafana/latest/panels/transformations">Transformations overview&lt;/a> topic.
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="vertical-align: top">visualization&lt;/td>
&lt;td>A graphical representation of query results.&lt;/td>
&lt;/tr>
&lt;/table></description></item><item><title>Get started with Grafana Open Source</title><link>https://grafana.com/docs/grafana/v12.4/fundamentals/getting-started/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/fundamentals/getting-started/</guid><content><![CDATA[&lt;h1 id=&#34;get-started-with-grafana-open-source&#34;&gt;Get started with Grafana Open Source&lt;/h1&gt;
&lt;p&gt;Grafana helps you collect, correlate, and visualize data with beautiful dashboards — the open source data visualization and monitoring solution that drives informed decisions, enhances system performance, and streamlines troubleshooting.&lt;/p&gt;
&lt;p&gt;This section provides guidance to our open source community about how to build your first dashboard after you have installed Grafana. It also provides step-by-step instructions on how to add a Prometheus, InfluxDB, or an MS SQL Server data source. If you are connecting a different data source, please refer to our complete list of supported 
    &lt;a href=&#34;/docs/grafana/v12.4/datasources/#built-in-core-data-sources&#34;&gt;Data sources&lt;/a&gt;. If you would like to learn how to get started with Grafana Cloud, our fully managed observability stack, visit the &lt;a href=&#34;/docs/grafana-cloud/quickstart/&#34;&gt;Grafana Cloud documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;
    &lt;a href=&#34;/docs/grafana/v12.4/fundamentals/getting-started/first-dashboards/&#34;&gt;Build your first dashboard&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
]]></content><description>&lt;h1 id="get-started-with-grafana-open-source">Get started with Grafana Open Source&lt;/h1>
&lt;p>Grafana helps you collect, correlate, and visualize data with beautiful dashboards — the open source data visualization and monitoring solution that drives informed decisions, enhances system performance, and streamlines troubleshooting.&lt;/p></description></item></channel></rss>