<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Set up Database Observability on Grafana Labs</title><link>https://grafana.com/docs/learning-hub/intro-to-db-olly/02-database-observability/</link><description>Recent content in Set up Database Observability on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/learning-hub/intro-to-db-olly/02-database-observability/index.xml" rel="self" type="application/rss+xml"/><item><title>What Database Observability provides</title><link>https://grafana.com/docs/learning-hub/intro-to-db-olly/02-database-observability/04-what-db-olly-provides/</link><pubDate>Wed, 07 Oct 2026 10:00:46 -0500</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-db-olly/02-database-observability/04-what-db-olly-provides/</guid><content><![CDATA[&lt;h1 id=&#34;beyond-basic-metrics&#34;&gt;Beyond basic metrics&lt;/h1&gt;
&lt;p&gt;Traditional database monitoring tells you &lt;em&gt;something&lt;/em&gt; is wrong. Database Observability tells you &lt;em&gt;why&lt;/em&gt;. It surfaces query-level performance data (RED metrics, explain plans, query samples, wait events, and schema details) all inside Grafana Cloud.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Basic monitoring&lt;/th&gt;
              &lt;th&gt;Database Observability&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Queries per second (aggregate)&lt;/td&gt;
              &lt;td&gt;Which specific queries are slow and why&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;CPU and memory usage&lt;/td&gt;
              &lt;td&gt;Explain plans and wait events at the query level&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;what-you-can-see&#34;&gt;What you can see&lt;/h2&gt;
&lt;p&gt;Database Observability gives you query-level visibility. It captures RED metrics (rate, errors, and duration) for tracked queries, so you can tell which ones are slow. Explain plans are available for &lt;code&gt;SELECT&lt;/code&gt; queries. Write statements such as &lt;code&gt;INSERT&lt;/code&gt;, &lt;code&gt;UPDATE&lt;/code&gt;, and &lt;code&gt;DELETE&lt;/code&gt; cannot be explained.&lt;/p&gt;
&lt;p&gt;You can open a query to investigate it, and also get the signals that explain its performance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Query samples:&lt;/strong&gt; individual executions with timing. Parameters are redacted by default.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Explain plans:&lt;/strong&gt; how the database executes a query, with cost-coded nodes highlighting expensive operations&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wait events:&lt;/strong&gt; where a query spends time waiting for locks, I/O, or other resources instead of executing&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Table schemas:&lt;/strong&gt; table structures, indexes, and constraints that may reveal missing indexes&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;managed-database-support&#34;&gt;Managed database support&lt;/h2&gt;
&lt;p&gt;Database Observability works with the following self-managed databases and managed cloud services:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Self-managed MySQL and PostgreSQL&lt;/li&gt;
&lt;li&gt;Amazon RDS (MySQL and PostgreSQL)&lt;/li&gt;
&lt;li&gt;Amazon Aurora (MySQL and PostgreSQL)&lt;/li&gt;
&lt;li&gt;Google Cloud SQL (MySQL and PostgreSQL)&lt;/li&gt;
&lt;li&gt;Azure Database for MySQL and PostgreSQL&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="beyond-basic-metrics">Beyond basic metrics&lt;/h1>
&lt;p>Traditional database monitoring tells you &lt;em>something&lt;/em> is wrong. Database Observability tells you &lt;em>why&lt;/em>. It surfaces query-level performance data (RED metrics, explain plans, query samples, wait events, and schema details) all inside Grafana Cloud.&lt;/p></description></item><item><title>How Database Observability works</title><link>https://grafana.com/docs/learning-hub/intro-to-db-olly/02-database-observability/05-how-db-olly-works/</link><pubDate>Wed, 07 Oct 2026 10:00:46 -0500</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-db-olly/02-database-observability/05-how-db-olly-works/</guid><content><![CDATA[&lt;h1 id=&#34;how-the-data-flows&#34;&gt;How the data flows&lt;/h1&gt;
&lt;p&gt;&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;architecture.svg&#34;
  alt=&#34;Database Observability architecture&#34;/&gt;&lt;/p&gt;
&lt;p&gt;Grafana Alloy runs alongside your database and reads its &lt;strong&gt;built-in statistics&lt;/strong&gt;. Where those statistics come from depends on the database:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;PostgreSQL:&lt;/strong&gt; &lt;code&gt;pg_stat_statements&lt;/code&gt; for aggregate query statistics and &lt;code&gt;pg_stat_activity&lt;/code&gt; for active sessions. The &lt;code&gt;pg_stat_statements&lt;/code&gt; extension must be installed and enabled.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MySQL:&lt;/strong&gt; Performance Schema, which is enabled by default in MySQL 8.0 and later&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alloy splits that data into two streams and forwards each to a different Grafana Cloud backend:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Metrics&lt;/strong&gt; (query counts, latency, errors, and resource usage) are scraped by database exporters and sent to &lt;strong&gt;Grafana Cloud Metrics&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Logs&lt;/strong&gt; (query samples, explain plans, schema details, and wait events) are collected by the Database Observability components and sent to &lt;strong&gt;Grafana Cloud Logs&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Grafana Cloud provides Database Observability dashboards that bring the metrics and logs together into a single view of query performance, starting with the Queries Overview dashboard.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Database Observability is designed to minimize impact on your production databases. To capture an explain plan, it runs &lt;code&gt;EXPLAIN&lt;/code&gt;, not &lt;code&gt;EXPLAIN ANALYZE&lt;/code&gt;, so the query itself does not run. That has minimal overhead for most queries.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;when-you-collect-more-than-you-need&#34;&gt;When you collect more than you need&lt;/h2&gt;
&lt;p&gt;Query samples, schema details, and wait events are sent to Grafana Cloud Logs along with the metrics. If that is more than you need, &lt;a href=&#34;/docs/grafana-cloud/monitor-applications/database-observability/set-up/requirements-overhead/&#34;&gt;Requirements and overhead&lt;/a&gt; lists three changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Raise &lt;code&gt;collect_interval&lt;/code&gt;, for example from 1 minute to 5 minutes.&lt;/li&gt;
&lt;li&gt;Lower &lt;code&gt;explain_plans.per_collect_ratio&lt;/code&gt;, for example to &lt;code&gt;0.5&lt;/code&gt; or lower.&lt;/li&gt;
&lt;li&gt;Exclude schemas you don&amp;rsquo;t need (&lt;code&gt;exclude_schemas&lt;/code&gt; on MySQL) or databases you don&amp;rsquo;t need (&lt;code&gt;exclude_databases&lt;/code&gt; on PostgreSQL).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;/docs/grafana-cloud/monitor-applications/database-observability/configure/tune-alloy-collection/&#34;&gt;Tune Alloy collection&lt;/a&gt; has a high-volume example of those same settings.&lt;/p&gt;
]]></content><description>&lt;h1 id="how-the-data-flows">How the data flows&lt;/h1>
&lt;p>&lt;img
class="lazyload d-inline-block"
data-src="architecture.svg"
alt="Database Observability architecture"/>&lt;/p>
&lt;p>Grafana Alloy runs alongside your database and reads its &lt;strong>built-in statistics&lt;/strong>. Where those statistics come from depends on the database:&lt;/p></description></item><item><title>Common setup pitfalls</title><link>https://grafana.com/docs/learning-hub/intro-to-db-olly/02-database-observability/06-common-setup-pitfalls/</link><pubDate>Wed, 07 Oct 2026 10:00:46 -0500</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-db-olly/02-database-observability/06-common-setup-pitfalls/</guid><content><![CDATA[&lt;h1 id=&#34;before-you-try-the-hands-on-path&#34;&gt;Before you try the hands-on path&lt;/h1&gt;
&lt;p&gt;If you decide to install and explore Database Observability, it&amp;rsquo;s important to keep in mind to start from the &lt;strong&gt;Configuration&lt;/strong&gt; page.&lt;/p&gt;
&lt;p&gt;The setup guides recommend generating your Alloy configuration from the Database Observability &lt;strong&gt;Configuration&lt;/strong&gt; page. That page builds the config for your database and deployment, so you don&amp;rsquo;t have to assemble the components by hand.&lt;/p&gt;
&lt;p&gt;If you hand-write or edit the config, these mistakes stop data from arriving.&lt;/p&gt;
&lt;h2 id=&#34;where-setup-goes-wrong&#34;&gt;Where setup goes wrong&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Pitfall&lt;/th&gt;
              &lt;th&gt;What happens&lt;/th&gt;
              &lt;th&gt;What to check&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Incomplete Alloy config&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;The &lt;code&gt;database_observability.mysql&lt;/code&gt; or &lt;code&gt;database_observability.postgres&lt;/code&gt; component is missing its required &lt;code&gt;data_source_name&lt;/code&gt; (the database connection) or its &lt;code&gt;forward_to&lt;/code&gt; destination, so nothing is collected.&lt;/td&gt;
              &lt;td&gt;Both &lt;code&gt;data_source_name&lt;/code&gt; and &lt;code&gt;forward_to&lt;/code&gt; are set on the component.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Missing endpoints&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;The config has no &lt;code&gt;prometheus.remote_write&lt;/code&gt; for metrics or &lt;code&gt;loki.write&lt;/code&gt; for logs, so telemetry is collected but never reaches Grafana Cloud.&lt;/td&gt;
              &lt;td&gt;Both write blocks point at your Grafana Cloud Metrics and Grafana Cloud Logs endpoints with valid credentials.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Inconsistent job label&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;The &lt;code&gt;job&lt;/code&gt; label doesn&amp;rsquo;t use the value from the generated config (&lt;code&gt;integrations/db-o11y&lt;/code&gt;), or the metrics and logs relabel rules don&amp;rsquo;t match, so your data isn&amp;rsquo;t labeled the way Database Observability expects.&lt;/td&gt;
              &lt;td&gt;Your &lt;code&gt;discovery.relabel&lt;/code&gt; and &lt;code&gt;loki.relabel&lt;/code&gt; blocks both set &lt;code&gt;job&lt;/code&gt; to &lt;code&gt;integrations/db-o11y&lt;/code&gt;, and their rules stay consistent with each other.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Database side not prepared&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Performance Schema (MySQL) isn&amp;rsquo;t enabled, or the &lt;code&gt;pg_stat_statements&lt;/code&gt; extension (PostgreSQL) isn&amp;rsquo;t enabled in each database you want to monitor, so the built-in statistics Alloy reads don&amp;rsquo;t exist.&lt;/td&gt;
              &lt;td&gt;The prerequisites for your database are in place before Alloy starts. For PostgreSQL, confirm the extension exists in each database, not only on the server.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;confirm-its-working-before-you-troubleshoot&#34;&gt;Confirm it&amp;rsquo;s working before you troubleshoot&lt;/h2&gt;
&lt;p&gt;After Alloy is running, the &lt;strong&gt;Configuration&lt;/strong&gt; page runs status checks for your instance. If data isn&amp;rsquo;t showing up, start there. A failing check points at one of the gaps above, which is faster than searching the dashboards for data that never arrived.&lt;/p&gt;
]]></content><description>&lt;h1 id="before-you-try-the-hands-on-path">Before you try the hands-on path&lt;/h1>
&lt;p>If you decide to install and explore Database Observability, it&amp;rsquo;s important to keep in mind to start from the &lt;strong>Configuration&lt;/strong> page.&lt;/p></description></item><item><title>Set up a managed database</title><link>https://grafana.com/docs/learning-hub/intro-to-db-olly/02-database-observability/07-managed-databases/</link><pubDate>Wed, 07 Oct 2026 10:00:46 -0500</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-db-olly/02-database-observability/07-managed-databases/</guid><content><![CDATA[&lt;h1 id=&#34;set-up-a-managed-database&#34;&gt;Set up a managed database&lt;/h1&gt;
&lt;p&gt;The hands-on paths on the MySQL and PostgreSQL slides are for a database you run yourself. Amazon RDS, Amazon Aurora, Google Cloud SQL, and Azure Database use the same Database Observability features, and each has its own setup guide.&lt;/p&gt;
&lt;p&gt;Each of those guides follows the same three steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Prepare the database. Set the parameters or flags the guide lists, restart the instance when a change requires it, and create the monitoring user. For PostgreSQL, enable the &lt;code&gt;pg_stat_statements&lt;/code&gt; extension in each database you want to monitor.&lt;/li&gt;
&lt;li&gt;Configure Grafana Alloy so it can reach that instance.&lt;/li&gt;
&lt;li&gt;Verify that query metrics appear in Database Observability.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;reach-a-cloud-sql-instance&#34;&gt;Reach a Cloud SQL instance&lt;/h2&gt;
&lt;p&gt;Google Cloud SQL can be reached by private IP, by public IP with authorized networks, or by the Cloud SQL Auth Proxy. When you use the proxy, point Alloy at the proxy address. Avoid sending Alloy through a load balancer or a connection pooler.&lt;/p&gt;
&lt;h2 id=&#34;skip-the-providers-system-database&#34;&gt;Skip the provider&amp;rsquo;s system database&lt;/h2&gt;
&lt;p&gt;Grafana Alloy 1.17 and later excludes these provider system databases by default. If you run an older Alloy, exclude the database for your service yourself. The setup guide for your service shows where to set that exclusion.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Service&lt;/th&gt;
              &lt;th&gt;Database to exclude&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Amazon RDS and Amazon Aurora&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;rdsadmin&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Google Cloud SQL&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;cloudsqladmin&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Azure Database (MySQL and PostgreSQL)&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;azure_sys&lt;/code&gt; and &lt;code&gt;azure_maintenance&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;setup-guides&#34;&gt;Setup guides&lt;/h2&gt;
&lt;p&gt;Choose the guide that matches your engine and your service:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/docs/grafana-cloud/monitor-applications/database-observability/set-up/mysql/&#34;&gt;Set up MySQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/docs/grafana-cloud/monitor-applications/database-observability/set-up/postgres/&#34;&gt;Set up PostgreSQL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="set-up-a-managed-database">Set up a managed database&lt;/h1>
&lt;p>The hands-on paths on the MySQL and PostgreSQL slides are for a database you run yourself. Amazon RDS, Amazon Aurora, Google Cloud SQL, and Azure Database use the same Database Observability features, and each has its own setup guide.&lt;/p></description></item><item><title>MySQL with Database Observability</title><link>https://grafana.com/docs/learning-hub/intro-to-db-olly/02-database-observability/08-mysql-db-olly/</link><pubDate>Wed, 07 Oct 2026 10:00:46 -0500</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-db-olly/02-database-observability/08-mysql-db-olly/</guid><content><![CDATA[&lt;h1 id=&#34;mysql-with-database-observability&#34;&gt;MySQL with Database Observability&lt;/h1&gt;
&lt;p&gt;Database Observability gives you deep visibility into MySQL query performance. This slide&amp;rsquo;s path is for a database you run yourself.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&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;&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;What it monitors&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Query performance, explain plans, wait events, query samples, table schemas&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;How it works&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Grafana Alloy reads from MySQL Performance Schema (enabled by default in 8.0&#43;)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;What you see&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Top queries by duration, explain plans with cost highlighting, wait events, query samples&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;This path&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Self-managed MySQL 8.0 or later&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Managed services&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Amazon RDS, Amazon Aurora, Google Cloud SQL, and Azure Database each have a &lt;a href=&#34;/docs/grafana-cloud/monitor-applications/database-observability/set-up/mysql/&#34;&gt;setup guide&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;what-youll-get&#34;&gt;What you&amp;rsquo;ll get&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Queries Overview dashboard&lt;/strong&gt; showing RED metrics for tracked queries&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Explain plans&lt;/strong&gt; revealing full table scans, missing indexes, and expensive joins&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wait events&lt;/strong&gt; showing lock contention, I/O bottlenecks, and resource waits&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Query samples&lt;/strong&gt; with individual execution timing&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Table schemas&lt;/strong&gt; highlighting index coverage and constraints&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;before-you-start&#34;&gt;Before you start&lt;/h2&gt;
&lt;p&gt;A few things to keep in mind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MySQL 8.0 or later&lt;/strong&gt; is required. MariaDB isn&amp;rsquo;t supported.&lt;/li&gt;
&lt;li&gt;Query statistics need &lt;code&gt;PROCESS&lt;/code&gt;, &lt;code&gt;REPLICATION CLIENT&lt;/code&gt;, and &lt;code&gt;SELECT&lt;/code&gt; on &lt;code&gt;performance_schema&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Schema details and explain plans also need &lt;code&gt;SELECT&lt;/code&gt; and &lt;code&gt;SHOW VIEW&lt;/code&gt; on each schema you monitor, or on all schemas if you want every schema. The path below grants all schemas.&lt;/li&gt;
&lt;li&gt;Amazon RDS, Amazon Aurora, Google Cloud SQL, and Azure Database use a &lt;a href=&#34;/docs/grafana-cloud/monitor-applications/database-observability/set-up/mysql/&#34;&gt;separate setup guide&lt;/a&gt;, not this path.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The path below walks you through each step.&lt;/p&gt;
&lt;hr /&gt;









  
    
  
  
&lt;div class=&#34;learning-path-card&#34;&gt;
  




  
  
    
  


&lt;div class=&#34;pathway-row__label mb-1&#34;&gt;
  
  &lt;svg width=&#34;40&#34; height=&#34;40&#34; viewBox=&#34;0 0 40 40&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;&lt;rect x=&#34;0.5&#34; y=&#34;0.5&#34; width=&#34;39&#34; height=&#34;39&#34; rx=&#34;3.5&#34; fill=&#34;white&#34; stroke=&#34;#D8D8DF&#34;&gt;&lt;/rect&gt;&lt;path d=&#34;M8 20H14C16.5 20 18.5 18 18.5 15.5V12&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&lt;/path&gt;&lt;path d=&#34;M8 20H14C16.5 20 18.5 22 18.5 24.5V28&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&lt;/path&gt;&lt;path d=&#34;M14 20H32&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&lt;/path&gt;&lt;circle cx=&#34;18.5&#34; cy=&#34;12&#34; r=&#34;2&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; fill=&#34;white&#34;&gt;&lt;/circle&gt;&lt;circle cx=&#34;18.5&#34; cy=&#34;28&#34; r=&#34;2&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; fill=&#34;white&#34;&gt;&lt;/circle&gt;&lt;path d=&#34;M29 17L32 20L29 23&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&lt;/path&gt;&lt;/svg&gt;

  Learning path
&lt;/div&gt;

&lt;h4&gt;MySQL Database Observability&lt;/h4&gt;
&lt;p&gt;Set up Grafana Cloud Database Observability for MySQL to monitor query performance, explain plans, wait events, and query samples.&lt;/p&gt;

&lt;div class=&#34;d-sm-flex gap-half mb-2&#34;&gt;
  &lt;div class=&#34;d-flex align-items-center gap-half text-gray-12 mt-half body-small&#34;&gt;
    &lt;div class=&#34;journey-list__icon&#34;&gt;
  &lt;svg width=&#34;24&#34; height=&#34;24&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M11.9995 22.5039C17.7985 22.5039 22.4995 17.8029 22.4995 12.0039C22.4995 6.20492 17.7985 1.50391 11.9995 1.50391C6.20052 1.50391 1.49951 6.20492 1.49951 12.0039C1.49951 17.8029 6.20052 22.5039 11.9995 22.5039Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M11.9995 12.0039V8.25391&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M11.9995 12.0078L16.6865 16.6958&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;
&lt;/div&gt;
    &lt;span&gt;16 min&lt;/span&gt;
  &lt;/div&gt;
  
  &lt;div class=&#34;d-flex align-items-center gap-half text-gray-12 mt-half body-small&#34;&gt;
    &lt;div class=&#34;journey-list__icon&#34;&gt;
  &lt;svg width=&#34;24&#34; height=&#34;25&#34; viewBox=&#34;0 0 24 25&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M0.75 9.83984C0.75 7.6307 2.54086 5.83984 4.75 5.83984H19.25C21.4591 5.83984 23.25 7.6307 23.25 9.83984V19.1198C23.25 21.329 21.4591 23.1198 19.25 23.1198H4.75C2.54086 23.1198 0.75 21.329 0.75 19.1198V9.83984Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M14.25 1.52344H9.75C8.92157 1.52344 8.25 2.16815 8.25 2.96344V5.84344H15.75V2.96344C15.75 2.16815 15.0784 1.52344 14.25 1.52344Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M12 15.923C12.8284 15.923 13.5 15.2783 13.5 14.483C13.5 13.6877 12.8284 13.043 12 13.043C11.1716 13.043 10.5 13.6877 10.5 14.483C10.5 15.2783 11.1716 15.923 12 15.923Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M13.2742 8.91315L13.7162 10.309C13.8671 10.7897 14.3806 11.0756 14.8902 10.9628L16.3622 10.6354C16.9349 10.5115 17.5249 10.7602 17.8175 11.2488C18.11 11.7374 18.037 12.3519 17.6372 12.7647L16.6062 13.8312C16.2493 14.1997 16.2493 14.7703 16.6062 15.1388L17.6372 16.2053C18.0379 16.6179 18.1115 17.2331 17.8188 17.7222C17.526 18.2113 16.9353 18.4601 16.3622 18.3356L14.8902 18.0082C14.3806 17.8953 13.8671 18.1812 13.7162 18.662L13.2742 20.0559C13.1055 20.5961 12.5877 20.9661 12.0002 20.9661C11.4128 20.9661 10.8949 20.5961 10.7262 20.0559L10.2842 18.661C10.1333 18.1803 9.61982 17.8944 9.11021 18.0072L7.63821 18.3346C7.06469 18.4597 6.47325 18.2109 6.18034 17.7213C5.88742 17.2317 5.96161 16.6159 6.36321 16.2034L7.39421 15.1368C7.75116 14.7684 7.75116 14.1978 7.39421 13.8293L6.36321 12.7628C5.96346 12.35 5.89039 11.7354 6.18296 11.2468C6.47553 10.7582 7.06551 10.5096 7.63821 10.6335L9.11021 10.9608C9.61923 11.0739 10.1324 10.7889 10.2842 10.309L10.7262 8.91507C10.8944 8.37473 11.412 8.00435 11.9995 8.00391C12.5869 8.00346 13.1051 8.37307 13.2742 8.91315V8.91315Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;
&lt;/div&gt;
    &lt;span&gt;Intermediate&lt;/span&gt;
  &lt;/div&gt;
  
  
  &lt;div class=&#34;d-flex align-items-center gap-half text-gray-12 mt-half body-small&#34;&gt;
    &lt;div class=&#34;journey-list__icon&#34;&gt;
  &lt;svg width=&#34;24&#34; height=&#34;24&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M0.75 2.75C0.75 1.64543 1.64543 0.75 2.75 0.75H21.25C22.3546 0.75 23.25 1.64543 23.25 2.75V21.25C23.25 22.3546 22.3546 23.25 21.25 23.25H2.75C1.64543 23.25 0.75 22.3546 0.75 21.25V2.75Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M12 4.5L7.5 10.5L4.5 7.5&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M14.25 8.25H18.75&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M12 13.5L7.5 19.5L4.5 16.5&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M14.25 17.25H18.75&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;
&lt;/div&gt;
    &lt;span&gt;Docs &amp;amp; blog posts&lt;/span&gt;
  &lt;/div&gt;
  
&lt;/div&gt;










  






&lt;div class=&#34;pathfinder-cta orange-outline-list br-12 border-color-orange-flat border-width-2 p-1-5 pb-1&#34; x3-data=&#34;selectStack(&#39;/docs/learning-paths/mysql-db-olly&#39;, { packageId: &#39;mysql-db-olly-lj&#39; })&#34;&gt;
  &lt;div class=&#34;icon-heading d-flex&#34;&gt;
    &lt;div class=&#34;icon-heading__container&#34;&gt;
  &lt;svg width=&#34;30&#34; height=&#34;30&#34; viewBox=&#34;0 0 25 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
  &lt;path d=&#34;M16.1401 14.4402C16.2141 14.4402 16.2852 14.4101 16.3373 14.3581C16.5355 14.1569 21.1904 9.39886 21.1904 5.0513C21.1904 2.26537 18.924 0 16.1391 0C13.3541 0 11.0878 2.26537 11.0878 5.0513C11.0878 9.39886 15.7427 14.1569 15.9419 14.3581C15.9939 14.4111 16.065 14.4402 16.1401 14.4402ZM13.5814 5.0513C13.5814 3.63882 14.7266 2.49262 16.1401 2.49262C17.5536 2.49262 18.6978 3.63781 18.6978 5.0513C18.6978 6.46478 17.5526 7.60999 16.1401 7.60999C14.7276 7.60999 13.5814 6.46478 13.5814 5.0513Z&#34; fill=&#34;#FF671D&#34;/&gt;
  &lt;path d=&#34;M24.9034 21.9305C24.0595 18.9113 17.9561 17.4147 12.5704 16.0933C9.54023 15.3496 5.76827 14.4246 5.73524 13.6037C5.72823 13.4225 5.97949 12.7398 9.52922 11.5516C9.80551 11.4585 9.96668 11.1842 9.91262 10.8989C9.85856 10.6136 9.60229 10.4164 9.318 10.4304C4.13956 10.6807 0.501743 12.1602 0.0482666 14.1993C-0.172966 15.1944 0.26149 16.749 3.58398 18.5009L4.29773 18.8763C6.54509 20.0545 8.16879 20.9064 8.1808 21.6992C8.19482 22.6502 5.93745 24.0507 3.72713 25.296C3.58398 25.3761 3.5139 25.5433 3.55495 25.7024C3.59699 25.8616 3.74014 25.9717 3.90431 25.9717H23.0354C23.1315 25.9717 23.2226 25.9337 23.2907 25.8656C24.6971 24.4581 25.2397 23.1347 24.9034 21.9305Z&#34; fill=&#34;#FBC55A&#34;/&gt;
&lt;/svg&gt;
&lt;/div&gt;
    &lt;div class=&#34;no-anchor-heading&#34;&gt;
      &lt;h4&gt;Open in Grafana Cloud&lt;/h4&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div class=&#34;mt-1&#34;&gt;
    &lt;p class=&#34;mb-1 maxw-650&#34;&gt;
      
      Complete this learning path directly in your Grafana Cloud stack with an interactive learning experience.
      
    &lt;/p&gt;
    &lt;div class=&#34;d-flex column-gap-1 justify-content-end&#34;&gt;
      
      &lt;a
        x3-bind:href=&#34;launchUrl&#34;
        class=&#34;btn btn--primary br-8&#34;
        target=&#34;_blank&#34;
        rel=&#34;noopener noreferrer&#34;
        x3-on:click=&#34;trackPathfinderClick(&#39;mysql-db-olly&#39;, &#39;MySQL Database Observability&#39;)&#34;&gt;
        Open in Grafana Cloud
      &lt;/a&gt;
      
      
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#34;mt-1&#34;&gt;
  &lt;a
    href=&#34;/docs/learning-paths/mysql-db-olly/&#34;
    target=&#34;_blank&#34;
    rel=&#34;noopener noreferrer&#34;
    class=&#34;btn btn--outline arrow w-100p br-8&#34;
    x3-on:click=&#34;$dispatch(&#39;track-view-on-website&#39;, {
      pathId: &#39;mysql-db-olly&#39;,
      pathTitle: &#39;MySQL Database Observability&#39;
    })&#34;&gt;
    View on website
  &lt;/a&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href=&#34;/docs/learning-hub/intro-to-db-olly/02-database-observability/10-resources/&#34; class=&#34;btn btn-lg btn-primary&#34;&gt;Path completed&lt;/a&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="mysql-with-database-observability">MySQL with Database Observability&lt;/h1>
&lt;p>Database Observability gives you deep visibility into MySQL query performance. This slide&amp;rsquo;s path is for a database you run yourself.&lt;/p>
&lt;section class="expand-table-wrapper">&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>What it monitors&lt;/strong>&lt;/td>
&lt;td>Query performance, explain plans, wait events, query samples, table schemas&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>How it works&lt;/strong>&lt;/td>
&lt;td>Grafana Alloy reads from MySQL Performance Schema (enabled by default in 8.0+)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>What you see&lt;/strong>&lt;/td>
&lt;td>Top queries by duration, explain plans with cost highlighting, wait events, query samples&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>This path&lt;/strong>&lt;/td>
&lt;td>Self-managed MySQL 8.0 or later&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Managed services&lt;/strong>&lt;/td>
&lt;td>Amazon RDS, Amazon Aurora, Google Cloud SQL, and Azure Database each have a &lt;a href="/docs/grafana-cloud/monitor-applications/database-observability/set-up/mysql/">setup guide&lt;/a>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h2 id="what-youll-get">What you&amp;rsquo;ll get&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Queries Overview dashboard&lt;/strong> showing RED metrics for tracked queries&lt;/li>
&lt;li>&lt;strong>Explain plans&lt;/strong> revealing full table scans, missing indexes, and expensive joins&lt;/li>
&lt;li>&lt;strong>Wait events&lt;/strong> showing lock contention, I/O bottlenecks, and resource waits&lt;/li>
&lt;li>&lt;strong>Query samples&lt;/strong> with individual execution timing&lt;/li>
&lt;li>&lt;strong>Table schemas&lt;/strong> highlighting index coverage and constraints&lt;/li>
&lt;/ul>
&lt;h2 id="before-you-start">Before you start&lt;/h2>
&lt;p>A few things to keep in mind:&lt;/p></description></item><item><title>PostgreSQL with Database Observability</title><link>https://grafana.com/docs/learning-hub/intro-to-db-olly/02-database-observability/09-postgresql-db-olly/</link><pubDate>Wed, 07 Oct 2026 10:00:46 -0500</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-db-olly/02-database-observability/09-postgresql-db-olly/</guid><content><![CDATA[&lt;h1 id=&#34;postgresql-with-database-observability&#34;&gt;PostgreSQL with Database Observability&lt;/h1&gt;
&lt;p&gt;Database Observability gives you deep visibility into PostgreSQL query performance. This slide&amp;rsquo;s path is for a database you run yourself.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&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;&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;What it monitors&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Query performance, explain plans, wait events, query samples, table schemas&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;How it works&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Grafana Alloy reads from &lt;code&gt;pg_stat_statements&lt;/code&gt; and &lt;code&gt;pg_stat_activity&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;What you see&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Top queries by duration, explain plans with cost highlighting, wait events, query samples&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;This path&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Self-managed PostgreSQL 14 or later&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;strong&gt;Managed services&lt;/strong&gt;&lt;/td&gt;
              &lt;td&gt;Amazon RDS, Amazon Aurora, Google Cloud SQL, and Azure Database each have a &lt;a href=&#34;/docs/grafana-cloud/monitor-applications/database-observability/set-up/postgres/&#34;&gt;setup guide&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;what-youll-get&#34;&gt;What you&amp;rsquo;ll get&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Queries Overview dashboard&lt;/strong&gt; showing RED metrics for tracked queries&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Explain plans&lt;/strong&gt; with visual graphs showing scan types, join strategies, and cost distribution&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wait events&lt;/strong&gt; categorized by I/O, lock, and network waits from &lt;code&gt;pg_stat_activity&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Query samples&lt;/strong&gt; with individual execution timing. Parameters are redacted by default.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Table schemas&lt;/strong&gt; showing structures, indexes, and constraints&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;before-you-start&#34;&gt;Before you start&lt;/h2&gt;
&lt;p&gt;A few things to keep in mind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;PostgreSQL 14 or later&lt;/strong&gt; is required.&lt;/li&gt;
&lt;li&gt;Load &lt;code&gt;pg_stat_statements&lt;/code&gt; in &lt;code&gt;shared_preload_libraries&lt;/code&gt;. Changing that setting requires a restart. Then create the extension in each database you want to monitor.&lt;/li&gt;
&lt;li&gt;Query statistics need the &lt;code&gt;pg_monitor&lt;/code&gt; and &lt;code&gt;pg_read_all_stats&lt;/code&gt; roles.&lt;/li&gt;
&lt;li&gt;Schema details and explain plans also need &lt;code&gt;USAGE&lt;/code&gt; on each schema and &lt;code&gt;SELECT&lt;/code&gt; on all tables in that schema, or the &lt;code&gt;pg_read_all_data&lt;/code&gt; role if you want every object.&lt;/li&gt;
&lt;li&gt;Amazon RDS, Amazon Aurora, Google Cloud SQL, and Azure Database use a &lt;a href=&#34;/docs/grafana-cloud/monitor-applications/database-observability/set-up/postgres/&#34;&gt;separate setup guide&lt;/a&gt;, not this path.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The path below walks you through each step.&lt;/p&gt;
&lt;hr /&gt;









  
    
  
  
&lt;div class=&#34;learning-path-card&#34;&gt;
  




  
  
    
  


&lt;div class=&#34;pathway-row__label mb-1&#34;&gt;
  
  &lt;svg width=&#34;40&#34; height=&#34;40&#34; viewBox=&#34;0 0 40 40&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;&lt;rect x=&#34;0.5&#34; y=&#34;0.5&#34; width=&#34;39&#34; height=&#34;39&#34; rx=&#34;3.5&#34; fill=&#34;white&#34; stroke=&#34;#D8D8DF&#34;&gt;&lt;/rect&gt;&lt;path d=&#34;M8 20H14C16.5 20 18.5 18 18.5 15.5V12&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&lt;/path&gt;&lt;path d=&#34;M8 20H14C16.5 20 18.5 22 18.5 24.5V28&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&lt;/path&gt;&lt;path d=&#34;M14 20H32&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&lt;/path&gt;&lt;circle cx=&#34;18.5&#34; cy=&#34;12&#34; r=&#34;2&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; fill=&#34;white&#34;&gt;&lt;/circle&gt;&lt;circle cx=&#34;18.5&#34; cy=&#34;28&#34; r=&#34;2&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; fill=&#34;white&#34;&gt;&lt;/circle&gt;&lt;path d=&#34;M29 17L32 20L29 23&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&lt;/path&gt;&lt;/svg&gt;

  Learning path
&lt;/div&gt;

&lt;h4&gt;PostgreSQL Database Observability&lt;/h4&gt;
&lt;p&gt;Set up Grafana Cloud Database Observability for PostgreSQL to monitor query performance, explain plans, wait events, and query samples.&lt;/p&gt;

&lt;div class=&#34;d-sm-flex gap-half mb-2&#34;&gt;
  &lt;div class=&#34;d-flex align-items-center gap-half text-gray-12 mt-half body-small&#34;&gt;
    &lt;div class=&#34;journey-list__icon&#34;&gt;
  &lt;svg width=&#34;24&#34; height=&#34;24&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M11.9995 22.5039C17.7985 22.5039 22.4995 17.8029 22.4995 12.0039C22.4995 6.20492 17.7985 1.50391 11.9995 1.50391C6.20052 1.50391 1.49951 6.20492 1.49951 12.0039C1.49951 17.8029 6.20052 22.5039 11.9995 22.5039Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M11.9995 12.0039V8.25391&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M11.9995 12.0078L16.6865 16.6958&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;
&lt;/div&gt;
    &lt;span&gt;15 min&lt;/span&gt;
  &lt;/div&gt;
  
  &lt;div class=&#34;d-flex align-items-center gap-half text-gray-12 mt-half body-small&#34;&gt;
    &lt;div class=&#34;journey-list__icon&#34;&gt;
  &lt;svg width=&#34;24&#34; height=&#34;25&#34; viewBox=&#34;0 0 24 25&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M0.75 9.83984C0.75 7.6307 2.54086 5.83984 4.75 5.83984H19.25C21.4591 5.83984 23.25 7.6307 23.25 9.83984V19.1198C23.25 21.329 21.4591 23.1198 19.25 23.1198H4.75C2.54086 23.1198 0.75 21.329 0.75 19.1198V9.83984Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M14.25 1.52344H9.75C8.92157 1.52344 8.25 2.16815 8.25 2.96344V5.84344H15.75V2.96344C15.75 2.16815 15.0784 1.52344 14.25 1.52344Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M12 15.923C12.8284 15.923 13.5 15.2783 13.5 14.483C13.5 13.6877 12.8284 13.043 12 13.043C11.1716 13.043 10.5 13.6877 10.5 14.483C10.5 15.2783 11.1716 15.923 12 15.923Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M13.2742 8.91315L13.7162 10.309C13.8671 10.7897 14.3806 11.0756 14.8902 10.9628L16.3622 10.6354C16.9349 10.5115 17.5249 10.7602 17.8175 11.2488C18.11 11.7374 18.037 12.3519 17.6372 12.7647L16.6062 13.8312C16.2493 14.1997 16.2493 14.7703 16.6062 15.1388L17.6372 16.2053C18.0379 16.6179 18.1115 17.2331 17.8188 17.7222C17.526 18.2113 16.9353 18.4601 16.3622 18.3356L14.8902 18.0082C14.3806 17.8953 13.8671 18.1812 13.7162 18.662L13.2742 20.0559C13.1055 20.5961 12.5877 20.9661 12.0002 20.9661C11.4128 20.9661 10.8949 20.5961 10.7262 20.0559L10.2842 18.661C10.1333 18.1803 9.61982 17.8944 9.11021 18.0072L7.63821 18.3346C7.06469 18.4597 6.47325 18.2109 6.18034 17.7213C5.88742 17.2317 5.96161 16.6159 6.36321 16.2034L7.39421 15.1368C7.75116 14.7684 7.75116 14.1978 7.39421 13.8293L6.36321 12.7628C5.96346 12.35 5.89039 11.7354 6.18296 11.2468C6.47553 10.7582 7.06551 10.5096 7.63821 10.6335L9.11021 10.9608C9.61923 11.0739 10.1324 10.7889 10.2842 10.309L10.7262 8.91507C10.8944 8.37473 11.412 8.00435 11.9995 8.00391C12.5869 8.00346 13.1051 8.37307 13.2742 8.91315V8.91315Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;
&lt;/div&gt;
    &lt;span&gt;Intermediate&lt;/span&gt;
  &lt;/div&gt;
  
  
  &lt;div class=&#34;d-flex align-items-center gap-half text-gray-12 mt-half body-small&#34;&gt;
    &lt;div class=&#34;journey-list__icon&#34;&gt;
  &lt;svg width=&#34;24&#34; height=&#34;24&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
  &lt;path fill-rule=&#34;evenodd&#34; clip-rule=&#34;evenodd&#34; d=&#34;M0.75 2.75C0.75 1.64543 1.64543 0.75 2.75 0.75H21.25C22.3546 0.75 23.25 1.64543 23.25 2.75V21.25C23.25 22.3546 22.3546 23.25 21.25 23.25H2.75C1.64543 23.25 0.75 22.3546 0.75 21.25V2.75Z&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M12 4.5L7.5 10.5L4.5 7.5&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M14.25 8.25H18.75&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M12 13.5L7.5 19.5L4.5 16.5&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
  &lt;path d=&#34;M14.25 17.25H18.75&#34; stroke=&#34;#FF671D&#34; stroke-width=&#34;1.5&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
&lt;/svg&gt;
&lt;/div&gt;
    &lt;span&gt;Docs &amp;amp; blog posts&lt;/span&gt;
  &lt;/div&gt;
  
&lt;/div&gt;










  






&lt;div class=&#34;pathfinder-cta orange-outline-list br-12 border-color-orange-flat border-width-2 p-1-5 pb-1&#34; x3-data=&#34;selectStack(&#39;/docs/learning-paths/postgresql-db-olly&#39;, { packageId: &#39;postgresql-db-olly-lj&#39; })&#34;&gt;
  &lt;div class=&#34;icon-heading d-flex&#34;&gt;
    &lt;div class=&#34;icon-heading__container&#34;&gt;
  &lt;svg width=&#34;30&#34; height=&#34;30&#34; viewBox=&#34;0 0 25 26&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
  &lt;path d=&#34;M16.1401 14.4402C16.2141 14.4402 16.2852 14.4101 16.3373 14.3581C16.5355 14.1569 21.1904 9.39886 21.1904 5.0513C21.1904 2.26537 18.924 0 16.1391 0C13.3541 0 11.0878 2.26537 11.0878 5.0513C11.0878 9.39886 15.7427 14.1569 15.9419 14.3581C15.9939 14.4111 16.065 14.4402 16.1401 14.4402ZM13.5814 5.0513C13.5814 3.63882 14.7266 2.49262 16.1401 2.49262C17.5536 2.49262 18.6978 3.63781 18.6978 5.0513C18.6978 6.46478 17.5526 7.60999 16.1401 7.60999C14.7276 7.60999 13.5814 6.46478 13.5814 5.0513Z&#34; fill=&#34;#FF671D&#34;/&gt;
  &lt;path d=&#34;M24.9034 21.9305C24.0595 18.9113 17.9561 17.4147 12.5704 16.0933C9.54023 15.3496 5.76827 14.4246 5.73524 13.6037C5.72823 13.4225 5.97949 12.7398 9.52922 11.5516C9.80551 11.4585 9.96668 11.1842 9.91262 10.8989C9.85856 10.6136 9.60229 10.4164 9.318 10.4304C4.13956 10.6807 0.501743 12.1602 0.0482666 14.1993C-0.172966 15.1944 0.26149 16.749 3.58398 18.5009L4.29773 18.8763C6.54509 20.0545 8.16879 20.9064 8.1808 21.6992C8.19482 22.6502 5.93745 24.0507 3.72713 25.296C3.58398 25.3761 3.5139 25.5433 3.55495 25.7024C3.59699 25.8616 3.74014 25.9717 3.90431 25.9717H23.0354C23.1315 25.9717 23.2226 25.9337 23.2907 25.8656C24.6971 24.4581 25.2397 23.1347 24.9034 21.9305Z&#34; fill=&#34;#FBC55A&#34;/&gt;
&lt;/svg&gt;
&lt;/div&gt;
    &lt;div class=&#34;no-anchor-heading&#34;&gt;
      &lt;h4&gt;Open in Grafana Cloud&lt;/h4&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div class=&#34;mt-1&#34;&gt;
    &lt;p class=&#34;mb-1 maxw-650&#34;&gt;
      
      Complete this learning path directly in your Grafana Cloud stack with an interactive learning experience.
      
    &lt;/p&gt;
    &lt;div class=&#34;d-flex column-gap-1 justify-content-end&#34;&gt;
      
      &lt;a
        x3-bind:href=&#34;launchUrl&#34;
        class=&#34;btn btn--primary br-8&#34;
        target=&#34;_blank&#34;
        rel=&#34;noopener noreferrer&#34;
        x3-on:click=&#34;trackPathfinderClick(&#39;postgresql-db-olly&#39;, &#39;PostgreSQL Database Observability&#39;)&#34;&gt;
        Open in Grafana Cloud
      &lt;/a&gt;
      
      
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#34;mt-1&#34;&gt;
  &lt;a
    href=&#34;/docs/learning-paths/postgresql-db-olly/&#34;
    target=&#34;_blank&#34;
    rel=&#34;noopener noreferrer&#34;
    class=&#34;btn btn--outline arrow w-100p br-8&#34;
    x3-on:click=&#34;$dispatch(&#39;track-view-on-website&#39;, {
      pathId: &#39;postgresql-db-olly&#39;,
      pathTitle: &#39;PostgreSQL Database Observability&#39;
    })&#34;&gt;
    View on website
  &lt;/a&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href=&#34;/docs/learning-hub/intro-to-db-olly/02-database-observability/10-resources/&#34; class=&#34;btn btn-lg btn-primary&#34;&gt;Path completed&lt;/a&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="postgresql-with-database-observability">PostgreSQL with Database Observability&lt;/h1>
&lt;p>Database Observability gives you deep visibility into PostgreSQL query performance. This slide&amp;rsquo;s path is for a database you run yourself.&lt;/p>
&lt;section class="expand-table-wrapper">&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>What it monitors&lt;/strong>&lt;/td>
&lt;td>Query performance, explain plans, wait events, query samples, table schemas&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>How it works&lt;/strong>&lt;/td>
&lt;td>Grafana Alloy reads from &lt;code>pg_stat_statements&lt;/code> and &lt;code>pg_stat_activity&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>What you see&lt;/strong>&lt;/td>
&lt;td>Top queries by duration, explain plans with cost highlighting, wait events, query samples&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>This path&lt;/strong>&lt;/td>
&lt;td>Self-managed PostgreSQL 14 or later&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Managed services&lt;/strong>&lt;/td>
&lt;td>Amazon RDS, Amazon Aurora, Google Cloud SQL, and Azure Database each have a &lt;a href="/docs/grafana-cloud/monitor-applications/database-observability/set-up/postgres/">setup guide&lt;/a>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h2 id="what-youll-get">What you&amp;rsquo;ll get&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Queries Overview dashboard&lt;/strong> showing RED metrics for tracked queries&lt;/li>
&lt;li>&lt;strong>Explain plans&lt;/strong> with visual graphs showing scan types, join strategies, and cost distribution&lt;/li>
&lt;li>&lt;strong>Wait events&lt;/strong> categorized by I/O, lock, and network waits from &lt;code>pg_stat_activity&lt;/code>&lt;/li>
&lt;li>&lt;strong>Query samples&lt;/strong> with individual execution timing. Parameters are redacted by default.&lt;/li>
&lt;li>&lt;strong>Table schemas&lt;/strong> showing structures, indexes, and constraints&lt;/li>
&lt;/ul>
&lt;h2 id="before-you-start">Before you start&lt;/h2>
&lt;p>A few things to keep in mind:&lt;/p></description></item><item><title>Resources</title><link>https://grafana.com/docs/learning-hub/intro-to-db-olly/02-database-observability/10-resources/</link><pubDate>Wed, 07 Oct 2026 10:00:46 -0500</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-db-olly/02-database-observability/10-resources/</guid><content><![CDATA[&lt;h1 id=&#34;resources-for-database-observability&#34;&gt;Resources for Database Observability&lt;/h1&gt;
&lt;p&gt;Use these resources to learn more.&lt;/p&gt;
&lt;h2 id=&#34;documentation-and-blogs&#34;&gt;Documentation and blogs&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://grafana.com/docs/grafana-cloud/monitor-applications/database-observability/&#34; target=&#34;_blank&#34;&gt;Database Observability&lt;/a&gt; documentation&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://grafana.com/docs/grafana-cloud/monitor-applications/database-observability/set-up/requirements-overhead/&#34; target=&#34;_blank&#34;&gt;Requirements and overhead&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://grafana.com/docs/grafana-cloud/monitor-applications/database-observability/configure/tune-alloy-collection/&#34; target=&#34;_blank&#34;&gt;Tune Alloy collection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://grafana.com/docs/grafana-cloud/monitor-applications/database-observability/set-up/mysql/&#34; target=&#34;_blank&#34;&gt;Set up MySQL&lt;/a&gt;, including Amazon RDS, Aurora, Google Cloud SQL, and Azure Database&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://grafana.com/docs/grafana-cloud/monitor-applications/database-observability/set-up/postgres/&#34; target=&#34;_blank&#34;&gt;Set up PostgreSQL&lt;/a&gt;, including Amazon RDS, Aurora, Google Cloud SQL, and Azure Database&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://grafana.com/blog/understand-diagnose-and-optimize-sql-queries-introducing-grafana-cloud-database-observability/&#34; target=&#34;_blank&#34;&gt;Understand, diagnose, and optimize SQL queries: introducing Grafana Cloud Database Observability&lt;/a&gt; blog&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://grafana.com/blog/database-observability-how-opentelemetry-semantic-conventions-improve-consistency-across-signals/&#34; target=&#34;_blank&#34;&gt;Database Observability: how OpenTelemetry semantic conventions improve consistency across signals&lt;/a&gt; blog&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://grafana.com/docs/alloy/latest/&#34; target=&#34;_blank&#34;&gt;Grafana Alloy&lt;/a&gt;  documentation&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;community&#34;&gt;Community&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://community.grafana.com/&#34; target=&#34;_blank&#34;&gt;Grafana Community Forums&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://slack.grafana.com/&#34; target=&#34;_blank&#34;&gt;Grafana Slack&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="resources-for-database-observability">Resources for Database Observability&lt;/h1>
&lt;p>Use these resources to learn more.&lt;/p>
&lt;h2 id="documentation-and-blogs">Documentation and blogs&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://grafana.com/docs/grafana-cloud/monitor-applications/database-observability/" target="_blank">Database Observability&lt;/a> documentation&lt;/li>
&lt;li>&lt;a href="https://grafana.com/docs/grafana-cloud/monitor-applications/database-observability/set-up/requirements-overhead/" target="_blank">Requirements and overhead&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://grafana.com/docs/grafana-cloud/monitor-applications/database-observability/configure/tune-alloy-collection/" target="_blank">Tune Alloy collection&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://grafana.com/docs/grafana-cloud/monitor-applications/database-observability/set-up/mysql/" target="_blank">Set up MySQL&lt;/a>, including Amazon RDS, Aurora, Google Cloud SQL, and Azure Database&lt;/li>
&lt;li>&lt;a href="https://grafana.com/docs/grafana-cloud/monitor-applications/database-observability/set-up/postgres/" target="_blank">Set up PostgreSQL&lt;/a>, including Amazon RDS, Aurora, Google Cloud SQL, and Azure Database&lt;/li>
&lt;li>&lt;a href="https://grafana.com/blog/understand-diagnose-and-optimize-sql-queries-introducing-grafana-cloud-database-observability/" target="_blank">Understand, diagnose, and optimize SQL queries: introducing Grafana Cloud Database Observability&lt;/a> blog&lt;/li>
&lt;li>&lt;a href="https://grafana.com/blog/database-observability-how-opentelemetry-semantic-conventions-improve-consistency-across-signals/" target="_blank">Database Observability: how OpenTelemetry semantic conventions improve consistency across signals&lt;/a> blog&lt;/li>
&lt;li>&lt;a href="https://grafana.com/docs/alloy/latest/" target="_blank">Grafana Alloy&lt;/a> documentation&lt;/li>
&lt;/ul>
&lt;h2 id="community">Community&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://community.grafana.com/" target="_blank">Grafana Community Forums&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://slack.grafana.com/" target="_blank">Grafana Slack&lt;/a>&lt;/li>
&lt;/ul></description></item></channel></rss>