<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Getting started on Grafana Labs</title><link>https://grafana.com/docs/grafana/v7.0/getting-started/</link><description>Recent content in Getting started on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/grafana/v7.0/getting-started/index.xml" rel="self" type="application/rss+xml"/><item><title>Getting started</title><link>https://grafana.com/docs/grafana/v7.0/getting-started/getting-started/</link><pubDate>Fri, 07 Mar 2025 11:34:44 +0100</pubDate><guid>https://grafana.com/docs/grafana/v7.0/getting-started/getting-started/</guid><content><![CDATA[&lt;h1 id=&#34;getting-started&#34;&gt;Getting started&lt;/h1&gt;
&lt;p&gt;This guide will help you get started and acquainted with Grafana. To learn more about Grafana in general, refer to &lt;a href=&#34;../what-is-grafana/&#34;&gt;What is Grafana?&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;install-grafana&#34;&gt;Install Grafana&lt;/h2&gt;
&lt;p&gt;This step varies according to your computer operating system. Refer to the instructions for your OS in the &lt;a href=&#34;../../installation/&#34;&gt;Installation&lt;/a&gt; section for instructions.&lt;/p&gt;
&lt;h2 id=&#34;log-in-for-the-first-time&#34;&gt;Log in for the first time&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Open your web browser and go to http://localhost:3000/. &lt;code&gt;3000&lt;/code&gt; is the default HTTP port that Grafana listens to if you haven’t configured a different port.&lt;/li&gt;
&lt;li&gt;On the login page, type &lt;code&gt;admin&lt;/code&gt; for the username and password.&lt;/li&gt;
&lt;li&gt;Change your password.&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; We strongly encourage you to follow Grafana best practices and change the default administrator password. Don&amp;rsquo;t forget to record your credentials!&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;create-a-dashboard&#34;&gt;Create a dashboard&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;New dashboard&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add Query&lt;/strong&gt;. Grafana creates a basic graph panel with the Random Walk scenario.&lt;/li&gt;
&lt;li&gt;Save your dashboard. Click the &lt;strong&gt;Save dashboard&lt;/strong&gt; icon in the top corner of the screen.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Congratulations, you have gotten started with Grafana! You have a dashboard and are displaying results. Feel free to experiment with what you have built, continue on to add another data source, or explore &lt;a href=&#34;#next-steps&#34;&gt;Next steps&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;next-steps&#34;&gt;Next steps&lt;/h2&gt;
&lt;p&gt;Different user types will have different interests. Some suggestions are listed below, or refer to &lt;a href=&#34;../what-is-grafana/&#34;&gt;What is Grafana?&lt;/a&gt; for a general overview of Grafana features.&lt;/p&gt;
&lt;h3 id=&#34;all-users&#34;&gt;All users&lt;/h3&gt;
&lt;p&gt;All users might want to learn about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../../panels/panels-overview/&#34;&gt;Panels&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../features/dashboard/dashboards/&#34;&gt;Dashboards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../features/datasources/data-sources/&#34;&gt;Data sources&lt;/a&gt; and &lt;a href=&#34;../../features/datasources/add-a-data-source/&#34;&gt;Add a data source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../features/shortcuts/&#34;&gt;Keyboard shortcuts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../features/explore/&#34;&gt;Explore workflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/grafana/plugins?orderBy=weight&amp;amp;direction=asc&#34;&gt;Plugins&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;admins&#34;&gt;Admins&lt;/h3&gt;
&lt;p&gt;Administrators might want to learn about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../../administration/configuration/&#34;&gt;Grafana configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../auth/overview/&#34;&gt;Authentication&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../permissions/overview/&#34;&gt;User permissions and roles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../administration/provisioning/&#34;&gt;Provisioning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../administration/cli/&#34;&gt;Grafana CLI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="getting-started">Getting started&lt;/h1>
&lt;p>This guide will help you get started and acquainted with Grafana. To learn more about Grafana in general, refer to &lt;a href="../what-is-grafana/">What is Grafana?&lt;/a>.&lt;/p>
&lt;h2 id="install-grafana">Install Grafana&lt;/h2>
&lt;p>This step varies according to your computer operating system. Refer to the instructions for your OS in the &lt;a href="../../installation/">Installation&lt;/a> section for instructions.&lt;/p></description></item><item><title>Glossary</title><link>https://grafana.com/docs/grafana/v7.0/getting-started/glossary/</link><pubDate>Wed, 14 Apr 2021 09:32:57 +0200</pubDate><guid>https://grafana.com/docs/grafana/v7.0/getting-started/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;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 a several data sources by default, and can be extended to support additional ones through plugins.&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;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;Plugin&lt;/td&gt;
    &lt;td&gt;An extension of Grafana that allows users to provide additional functionality to enhance their experience. The types of plugins currently supported are:
    &lt;ul&gt;
      &lt;li&gt;&lt;b&gt;App plugin:&lt;/b&gt; Extends Grafana with a customized experience. It includes a set of panel and data source plugins, as well as custom pages.&lt;/li&gt;
      &lt;li&gt;&lt;b&gt;Data source plugin:&lt;/b&gt; Extends Grafana with support for additional data sources.&lt;/li&gt;
      &lt;li&gt;&lt;b&gt;Panel plugin:&lt;/b&gt; Extends Grafana with additional visualization options.&lt;/li&gt;
    &lt;/ul&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;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;">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 a several data sources by default, and can be extended to support additional ones through plugins.&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;">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;">Plugin&lt;/td>
&lt;td>An extension of Grafana that allows users to provide additional functionality to enhance their experience. The types of plugins currently supported are:
&lt;ul>
&lt;li>&lt;b>App plugin:&lt;/b> Extends Grafana with a customized experience. It includes a set of panel and data source plugins, as well as custom pages.&lt;/li>
&lt;li>&lt;b>Data source plugin:&lt;/b> Extends Grafana with support for additional data sources.&lt;/li>
&lt;li>&lt;b>Panel plugin:&lt;/b> Extends Grafana with additional visualization options.&lt;/li>
&lt;/ul>
&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;">Visualization&lt;/td>
&lt;td>A graphical representation of query results.&lt;/td>
&lt;/tr>
&lt;/table></description></item><item><title>Histograms and heatmaps</title><link>https://grafana.com/docs/grafana/v7.0/getting-started/intro-histograms/</link><pubDate>Fri, 28 May 2021 11:31:54 +0200</pubDate><guid>https://grafana.com/docs/grafana/v7.0/getting-started/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 histogram 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&#34;
  data-src=&#34;/static/img/docs/v43/heatmap_histogram.png&#34;
  alt=&#34;&#34; width=&#34;864&#34;
     height=&#34;297&#34;/&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 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&#34;
  data-src=&#34;/static/img/docs/v43/heatmap_histogram_over_time.png&#34;
  alt=&#34;&#34; width=&#34;863&#34;
     height=&#34;368&#34;/&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 if it meets the requirements:
returns series with names representing bucket bound or returns series sorted by the bound 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 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 store the data in Elasticsearch, or in the 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 and could cause hangs and 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>Monitoring strategies</title><link>https://grafana.com/docs/grafana/v7.0/getting-started/strategies/</link><pubDate>Wed, 14 Apr 2021 09:32:57 +0200</pubDate><guid>https://grafana.com/docs/grafana/v7.0/getting-started/strategies/</guid><content><![CDATA[&lt;h1 id=&#34;common-observability-strategies&#34;&gt;Common observability strategies&lt;/h1&gt;
&lt;p&gt;When you have a lot to monitor, like a server farm, you need a strategy to decide what is important enough to monitor. This page describes several common methods for choosing what to monitor.&lt;/p&gt;
&lt;p&gt;A logical strategy allows you to make uniform dashboards and scale your observability platform more easily.&lt;/p&gt;
&lt;h2 id=&#34;guidelines-for-usage&#34;&gt;Guidelines for usage&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The USE method tells you how happy your machines are, the RED method tells you how happy your users are.&lt;/li&gt;
&lt;li&gt;USE reports on causes of issues.&lt;/li&gt;
&lt;li&gt;RED reports on user experience and is more likely to report symptoms of problems.&lt;/li&gt;
&lt;li&gt;The best practice of alerting is to alert on symptoms rather than causes, so alerting should be done on RED dashboards.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;use-method&#34;&gt;USE method&lt;/h2&gt;
&lt;p&gt;USE stands for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Utilization -&lt;/strong&gt; Percent time the resource is busy, such as node CPU usage&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Saturation -&lt;/strong&gt; Amount of work a resource has to do, often queue length or node load&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Errors -&lt;/strong&gt; Count of error events&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This method is best for hardware resources in infrastructure, such as CPU, memory, and network devices. For more information, refer to &lt;a href=&#34;http://www.brendangregg.com/usemethod.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;The USE Method&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;red-method&#34;&gt;RED method&lt;/h2&gt;
&lt;p&gt;RED stands for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Rate -&lt;/strong&gt; Requests per second&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Errors -&lt;/strong&gt; Number of requests that are failing&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Duration -&lt;/strong&gt; Amount of time these requests take, distribution of latency measurements&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This method is most applicable to services, especially a microservices environment. For each of your services, instrument the code to expose these metrics for each component. RED dashboards are good for alerting and SLAs. A well-designed RED dashboard is a proxy for user experience.&lt;/p&gt;
&lt;p&gt;For more information, refer to Tom Wilkie&amp;rsquo;s blog post &lt;a href=&#34;/blog/2018/08/02/the-red-method-how-to-instrument-your-services&#34;&gt;The RED method: How to instrument your services&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;the-four-golden-signals&#34;&gt;The Four Golden Signals&lt;/h2&gt;
&lt;p&gt;According to the &lt;a href=&#34;https://landing.google.com/sre/sre-book/chapters/monitoring-distributed-systems/#xref_monitoring_golden-signals&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Google SRE handbook&lt;/a&gt;, if you can only measure four metrics of your user-facing system, focus on these four.&lt;/p&gt;
&lt;p&gt;This method is similar to the RED method, but it includes saturation.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Latency -&lt;/strong&gt; Time taken to serve a request&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Traffic -&lt;/strong&gt; How much demand is placed on your system&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Errors -&lt;/strong&gt; Rate of requests that are failing&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Saturation -&lt;/strong&gt; How &amp;ldquo;full&amp;rdquo; your system is&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="common-observability-strategies">Common observability strategies&lt;/h1>
&lt;p>When you have a lot to monitor, like a server farm, you need a strategy to decide what is important enough to monitor. This page describes several common methods for choosing what to monitor.&lt;/p></description></item><item><title>Time series</title><link>https://grafana.com/docs/grafana/v7.0/getting-started/timeseries/</link><pubDate>Fri, 28 May 2021 11:31:54 +0200</pubDate><guid>https://grafana.com/docs/grafana/v7.0/getting-started/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 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;&#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;&#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 we know that the system load peaks every day around 18:00, we 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 uses 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;p&gt;Here are some of the TSDBs supported by Grafana:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://graphiteapp.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Graphite&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&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;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://prometheus.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Prometheus&lt;/a&gt;&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;/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/v7.0/getting-started/timeseries-dimensions/</link><pubDate>Fri, 07 Mar 2025 11:34:44 +0100</pubDate><guid>https://grafana.com/docs/grafana/v7.0/getting-started/timeseries-dimensions/</guid><content><![CDATA[&lt;h1 id=&#34;time-series-dimensions&#34;&gt;Time series dimensions&lt;/h1&gt;
&lt;p&gt;At the end of the &lt;a href=&#34;../timeseries/#time-series-databases&#34;&gt;&amp;ldquo;Time series databases&amp;rdquo; section of &amp;ldquo;Introduction to time series&amp;rdquo;&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. &amp;hellip;&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;&#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;&#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 set a of key/value pairs for identifying dimensions. Example labels could are &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;.&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 usually 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;Might return a table with three columns that each respectively have data types time, number, and string.&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 &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;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; More than one dimension for SQL data sources is currently only supported in the Analytics services with the Azure monitor service as of version 7.1. Support for SQL data sources such as MySQL, Postgres, and MSSQL is planned to be added for 7.2.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&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. See the documentation on &lt;a href=&#34;../../alerting/create-alerts/#multiple-series&#34;&gt;creating alerts with multiple series&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;multiple-values&#34;&gt;Multiple values&lt;/h3&gt;
&lt;p&gt;In the case SQL-like data sources, more than one numeric column cab be selected, without 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/introduction/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>At the end of the &lt;a href="../timeseries/#time-series-databases">&amp;ldquo;Time series databases&amp;rdquo; section of &amp;ldquo;Introduction to time series&amp;rdquo;&lt;/a>, the concept of &lt;em>labels&lt;/em>, also called &lt;em>tags&lt;/em>, is introduced:&lt;/p></description></item><item><title>What is Grafana?</title><link>https://grafana.com/docs/grafana/v7.0/getting-started/what-is-grafana/</link><pubDate>Fri, 07 Mar 2025 11:34:44 +0100</pubDate><guid>https://grafana.com/docs/grafana/v7.0/getting-started/what-is-grafana/</guid><content><![CDATA[&lt;h1 id=&#34;what-is-grafana&#34;&gt;What is Grafana?&lt;/h1&gt;
&lt;p&gt;This topic provides a high-level look at Grafana, the Grafana process, and Grafana features. It&amp;rsquo;s a good place to start if you want to learn more about Grafana software. To jump right in, refer to &lt;a href=&#34;../getting-started/&#34;&gt;Getting started&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Grafana is open source visualization and analytics software. It allows you to query, visualize, alert on, and explore your metrics no matter where they are stored. In plain English, it provides you with tools to turn your time-series database (TSDB) data into beautiful graphs and visualizations.&lt;/p&gt;
&lt;p&gt;After creating a dashboard like you do in &lt;a href=&#34;../getting-started/&#34;&gt;Getting started&lt;/a&gt;, there are many possible things you might do next. It all depends on your needs and your use case.&lt;/p&gt;
&lt;p&gt;For example, if you want to view weather data and statistics about your smart home, then you might create a playlist. If you are the administrator for a corporation and are managing Grafana for multiple teams, then you might need to set up provisioning and authentication.&lt;/p&gt;
&lt;p&gt;The following sections provide an overview of things you might want to do with your Grafana database and links so you can learn more. For more guidance and ideas, check out the &lt;a href=&#34;https://community.grafana.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana Community forums&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;explore-metrics-and-logs&#34;&gt;Explore metrics and logs&lt;/h2&gt;
&lt;p&gt;Explore your data through ad-hoc queries and dynamic drilldown. Split view and compare different time ranges, queries and data sources side by side.&lt;/p&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../features/explore/&#34;&gt;Explore&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h2 id=&#34;alerts&#34;&gt;Alerts&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;re using Grafana alerting, then you can have alerts sent through a number of different &lt;a href=&#34;../../alerting/notifications/&#34;&gt;alert notifiers&lt;/a&gt;, including PagerDuty, SMS, email, VictorOps, OpsGenie, or Slack.&lt;/p&gt;
&lt;p&gt;Alert hooks allow you to create different notifiers with a bit of code if you prefer some other channels of communication. Visually define &lt;a href=&#34;../../alerting/alerts-overview/&#34;&gt;alert rules&lt;/a&gt; for your most important metrics.&lt;/p&gt;
&lt;h2 id=&#34;annotations&#34;&gt;Annotations&lt;/h2&gt;
&lt;p&gt;Annotate graphs with rich events from different data sources. Hover over events to see the full event metadata and tags.&lt;/p&gt;
&lt;p&gt;This feature, which shows up as a graph marker in Grafana, is useful for correlating data in case something goes wrong. You can create the annotations manually—just control-click on a graph and input some text—or you can fetch data from any data source.&lt;/p&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../dashboards/annotations/&#34;&gt;Annotations&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h2 id=&#34;dashboard-variables&#34;&gt;Dashboard variables&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;../../variables/templates-and-variables/&#34;&gt;Template variables&lt;/a&gt; allow you to create dashboards that can be reused for lots of different use cases. Values aren&amp;rsquo;t hard-coded with these templates, so for instance, if you have a production server and a test server, you can use the same dashboard for both.&lt;/p&gt;
&lt;p&gt;Templating allows you to drill down into your data, say, from all data to North America data, down to Texas data, and beyond. You can also share these dashboards across teams within your organization—or if you create a great dashboard template for a popular data source, you can contribute it to the whole community to customize and use.&lt;/p&gt;
&lt;h2 id=&#34;configure-grafana&#34;&gt;Configure Grafana&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;re a Grafana administrator, then you&amp;rsquo;ll want to thoroughly familiarize yourself with &lt;a href=&#34;../../administration/configuration/&#34;&gt;Grafana configuration options&lt;/a&gt; and the &lt;a href=&#34;../../administration/cli/&#34;&gt;Grafana CLI&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Configuration covers both config files and environment variables. You can set up default ports, logging levels, email IP addresses, security, and more.&lt;/p&gt;
&lt;h2 id=&#34;import-dashboards-and-plugins&#34;&gt;Import dashboards and plugins&lt;/h2&gt;
&lt;p&gt;Discover hundreds of &lt;a href=&#34;/grafana/dashboards&#34;&gt;dashboards&lt;/a&gt; and &lt;a href=&#34;/grafana/plugins&#34;&gt;plugins&lt;/a&gt; in the official library. Thanks to the passion and momentum of community members, new ones are added every week.&lt;/p&gt;
&lt;h2 id=&#34;authentication&#34;&gt;Authentication&lt;/h2&gt;
&lt;p&gt;Grafana supports different authentication methods, such as LDAP and OAuth, and allows you to map users to organizations. Refer to the &lt;a href=&#34;../../auth/overview/&#34;&gt;User authentication overview&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;In Grafana Enterprise, you can also map users to teams: If your company has its own authentication system, Grafana allows you to map the teams in your internal systems to teams in Grafana. That way, you can automatically give people access to the dashboards designated for their teams.&lt;/p&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h2 id=&#34;provisioning&#34;&gt;Provisioning&lt;/h2&gt;
&lt;p&gt;While it&amp;rsquo;s easy to click, drag, and drop to create a single dashboard, power users in need of many dashboards will want to automate the setup with a script. You can script anything in Grafana.&lt;/p&gt;
&lt;p&gt;For example, if you&amp;rsquo;re spinning up a new Kubernetes cluster, you can also spin up a Grafana automatically with a script that would have the right server, IP address, and data sources preset and locked in so users cannot change them. It&amp;rsquo;s also a way of getting control over a lot of dashboards.&lt;/p&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../administration/provisioning/&#34;&gt;Provisioning&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h2 id=&#34;permissions&#34;&gt;Permissions&lt;/h2&gt;
&lt;p&gt;When organizations have one Grafana and multiple teams, they often want the ability to both keep things separate and share dashboards. You can create a team of users and then set &lt;a href=&#34;../../permissions/overview/&#34;&gt;permissions&lt;/a&gt; on folders, dashboards, and down to the &lt;a href=&#34;../../enterprise/datasource_permissions/&#34;&gt;data source level&lt;/a&gt; if you&amp;rsquo;re using &lt;a href=&#34;../../enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;grafana-cloud&#34;&gt;Grafana Cloud&lt;/h2&gt;
&lt;p&gt;Grafana Cloud is a highly available, fast, fully managed OpenSaaS logging and metrics platform. Everything you love about Grafana, but Grafana Labs hosts it for you and handles all the headaches.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;/cloud/&#34;&gt;Learn more about Grafana Cloud.&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;grafana-enterprise&#34;&gt;Grafana Enterprise&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;../../enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt; is a commercial edition of Grafana that includes additional features not found in the open source version.&lt;/p&gt;
&lt;p&gt;Building on everything you already know and love about Grafana, Grafana Enterprise adds enterprise data sources, advanced authentication options, more permission controls, 24x7x365 support, and training from the core Grafana team.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;/enterprise&#34;&gt;Learn more about Grafana Enterprise&lt;/a&gt;. To purchase Enterprise or obtain a trial license, contact the Grafana Labs &lt;a href=&#34;/contact?about=support&amp;amp;topic=Grafana%20Enterprise&#34;&gt;Sales Team&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="what-is-grafana">What is Grafana?&lt;/h1>
&lt;p>This topic provides a high-level look at Grafana, the Grafana process, and Grafana features. It&amp;rsquo;s a good place to start if you want to learn more about Grafana software. To jump right in, refer to &lt;a href="../getting-started/">Getting started&lt;/a>.&lt;/p></description></item></channel></rss>