---
title: "Prometheus & Grafana: Monitoring & Observability Fundamentals"
description: "Test your monitoring and observability skills with this quiz on Prometheus metrics, PromQL, Grafana dashboards, and alerting logic."
author: "Mohammad Abu Mattar"
canonical: https://mkabumattar.com/quizzes/post/prometheus-grafana-monitoring-quiz
---

# Prometheus & Grafana: Monitoring & Observability Fundamentals

Welcome to the Prometheus & Grafana Basics Quiz! Monitoring and Observability are the heart of a stable production environment. This quiz will test your knowledge on how metrics are collected, how to query them using PromQL, and how to build meaningful visualizations in Grafana. Let's see how much you know about keeping your systems visible!

## Questions

### 1. What is the primary data model used by Prometheus?

- Relational tables using structured schemas
  - Prometheus does not use SQL-style tables or fixed relational schemas.
- **Time-series data identified by metric names** ✅
  - Correct! Data is stored as timestamped values associated with unique label sets.
- Unstructured logs stored in a distributed file system
  - Prometheus is optimized for metrics; logs are typically handled by tools like Loki.
- Document-oriented JSON blobs with nested objects
  - Prometheus uses a flat, multi-dimensional numeric model rather than nested JSON.

**Hint:** Think about data over time.

### 2. What does it mean that Prometheus is a "Pull-based" system?

- Targets must broadcast UDP packets to the server
  - Broadcasting data to a central collector is a Push-based characteristic.
- **Prometheus initiates HTTP requests to scrape metrics** ✅
  - Correct! Prometheus fetches data by querying exposed endpoints on the targets.
- Agents must upload periodic batches via an API
  - Batch uploading is a common feature of Push-based observability platforms.
- The kernel pushes telemetry directly to the disk
  - The kernel provides data, but Prometheus must actively fetch it via an exporter.

**Hint:** How does it get the data?

### 3. What is a Prometheus "Exporter"?

- A backup tool for migrating data to S3 buckets
  - Exporters facilitate data collection, not long-term storage or migration.
- **A proxy that translates service metrics into Prometheus format** ✅
  - Correct! It converts internal state (like SQL stats) into scrapable Prometheus text.
- A visualization plugin used for exporting Grafana PDFs
  - Exporting reports is a dashboarding function, not a metric collection function.
- A load balancer that distributes scrapers across nodes
  - Exporters live near the target application, not as a central networking layer.

**Hint:** A translator for metrics.

### 4. Which metric type is used for a value that only goes up (like a request counter)?

- Gauge
  - Gauges represent values that can fluctuate both up and down, such as memory usage.
- **Counter** ✅
  - Correct! A counter is a cumulative metric that only ever increases or resets to zero.
- Histogram
  - Histograms aggregate observations into buckets rather than tracking a single sum.
- Summary
  - Summaries track quantiles over a sliding time window rather than a simple total.

**Hint:** Think of a car odometer.

### 5. What is "PromQL"?

- A configuration syntax for setting up alert routes
  - Alert routing is handled in Alertmanager using a separate YAML-based syntax.
- **The functional query language used to process metrics** ✅
  - Correct! PromQL allows for real-time aggregation and filtering of time-series data.
- A protocol for streaming metrics over gRPC channels
  - Prometheus primarily uses HTTP for scraping; PromQL is for querying, not transport.
- A specialized markup language for designing dashboards
  - Dashboards are usually designed via Grafana UI or JSON, not PromQL.

**Hint:** The language of Prometheus.

### 6. What is the "Node Exporter" used for?

- Monitoring Node.js runtime and heap performance
  - Node.js monitoring requires a dedicated client library, not the Node Exporter.
- **Collecting hardware-level metrics from the host OS** ✅
  - Correct! It exposes CPU, memory, and disk stats from *nix-based machines.
- Deploying Kubernetes nodes via infrastructure scripts
  - The exporter is a monitoring agent, not a provisioning or deployment tool.
- Verifying network connectivity between cluster nodes
  - Connectivity checks are typically performed by Blackbox Exporter or K8s probes.

**Hint:** Standard hardware metrics.

### 7. What is a "Gauge" metric used for?

- Tracking the cumulative sum of successful operations
  - Cumulative totals are the domain of Counter metrics.
- **Measuring a value that can increase or decrease over time** ✅
  - Correct! Gauges are ideal for snapshots like temperature or disk usage.
- Calculating the distribution of latency across requests
  - Distributions and latencies are better handled by Histograms or Summaries.
- Storing static metadata such as software version numbers
  - Metadata is usually stored as labels or "info" metrics with a constant value of 1.

**Hint:** Values that fluctuate.

### 8. In Grafana, what is a "Data Source"?

- **The underlying database that stores the observability data** ✅
  - Correct! Grafana connects to backends like Prometheus, Loki, or MySQL to fetch data.
- The CSS file that defines the dashboard visual theme
  - The visual theme is part of Grafana settings, not the data source configuration.
- The raw CSV file uploaded manually by the developer
  - While Grafana can use files, "Data Source" typically refers to an active database API.
- The internet gateway used to fetch external API metrics
  - Data sources are specific storage backends, not general network paths.

**Hint:** Where the graphs come from.

### 9. What is the purpose of the "Alertmanager"?

- Generating the initial alert signals based on thresholds
  - Alert generation is handled by Prometheus; Alertmanager manages those signals once fired.
- **Routing, grouping, and deduplicating alert notifications** ✅
  - Correct! It manages silence, inhibition, and delivery to Slack, Email, or PagerDuty.
- Storing a historical record of all past alert failures
  - History is often kept in logging systems or the Prometheus state, not Alertmanager.
- Automatically restarting services that trigger critical alerts
  - Self-healing is usually handled by Kubernetes or automation scripts, not the Alertmanager.

**Hint:** Handling notifications.

### 10. What does the PromQL query "rate(http_requests_total[5m])" calculate?

- The absolute increase in requests over the last 5 minutes
  - This is the function of "increase()", not "rate()".
- **The average per-second growth rate over a 5-minute window** ✅
  - Correct! Rate is the preferred way to look at the "speed" of a counter.
- The percentage of requests that returned a 200 OK status
  - This requires a division operation between specific label subsets.
- The maximum latency observed for a request in that period
  - Latency is a different metric (Histogram) and requires quantile calculation.

**Hint:** Per-second increase.

### 11. In Grafana, what is a "Variable" (Dashboard Variable)?

- A hardcoded constant used in individual panel titles
  - Variables are dynamic and user-selectable, not hardcoded constants.
- **A dynamic placeholder used to filter data across panels** ✅
  - Correct! They allow users to change the view (e.g., server or region) via a dropdown.
- A temporary storage buffer for large query results
  - Result buffering is a server-side cache function, not a dashboard variable.
- The mathematical coefficient used for unit conversion
  - Unit conversion is handled in the "Standard Options" of a panel.

**Hint:** Dropdown filters.

### 12. What is "Cardinality" in Prometheus?

- The number of scrape targets configured in the YAML file
  - Target count is simply the scale of the fleet, not the cardinality of the data.
- **The total number of unique time-series in the system** ✅
  - Correct! High cardinality is caused by many unique label combinations (like user IDs).
- The frequency at which the TSDB flushes data to the disk
  - Disk flushing is a storage engine setting, not a measure of series uniqueness.
- The latency involved in executing complex PromQL queries
  - Query latency is a performance metric, distinct from series cardinality.

**Hint:** Unique label combinations.

### 13. What does the "Job" label usually represent in Prometheus?

- A specific Kubernetes pod identifier within a namespace
  - This is usually represented by the "instance" or "pod" label.
- **A group of targets serving the same technical purpose** ✅
  - Correct! For example, all instances of an API service share the same "job" name.
- A background process that cleans up the Prometheus database
  - Maintenance processes are internal system tasks, not scraped labels.
- The individual developer responsible for the application code
  - Ownership is rarely used as a high-level job label in Prometheus scraping.

**Hint:** Group of targets.

### 14. What is the "Scrape Interval"?

- The time allowed for a single target to return its metrics
  - This is the "Scrape Timeout," which must be shorter than the interval.
- **The frequency at which Prometheus collects data from targets** ✅
  - Correct! This determines the resolution of your time-series data.
- The amount of time metrics are kept before being deleted
  - This is "Retention Time," not the scrape interval.
- The delay between an alert firing and the notification sent
  - This is the "Group Wait" or "Repeat Interval" in Alertmanager.

**Hint:** Frequency of collection.

### 15. What is the purpose of "Labels" in Prometheus?

- To provide a unique name for the entire Prometheus cluster
  - Cluster naming is usually done via external labels or configuration files.
- **To enable multi-dimensional filtering and data aggregation** ✅
  - Correct! Labels (key-value pairs) allow you to slice data by region, method, or status.
- To encrypt sensitive metric data before it is stored on disk
  - Encryption is handled at the storage or volume layer, not through metric labels.
- To automatically generate CSS classes for Grafana dashboards
  - Grafana does not use Prometheus labels to generate styling or CSS code.

**Hint:** Dimensional data.

### 16. What is "Prometheus Federation"?

- **A method for scaling by having one server scrape another** ✅
  - Correct! Federation allows for hierarchical monitoring across different environments.
- A protocol for balancing traffic between multiple Grafana UI nodes
  - UI load balancing is a networking task, not Prometheus federation.
- The process of merging multiple metric names into a single series
  - This sounds like "Recording Rules" or aggregation, not federation.
- A security standard for authenticating across different cloud providers
  - Federated identity is a security concept unrelated to Prometheus metric federation.

**Hint:** Prometheus pulling from Prometheus.

### 17. What is a "Histogram" in Prometheus?

- A visual timeline of all dashboard configuration changes
  - This describes an audit log or version history rather than a metric type.
- **A metric that tracks the distribution of values across buckets** ✅
  - Correct! Histograms are the standard way to measure request latency distributions.
- A specialized chart that shows data from previous years only
  - Prometheus histograms represent statistical distribution, not historical archives.
- A tool for measuring the physical temperature of server CPUs
  - Temperature is measured as a Gauge; Histogram measures how often values fall into ranges.

**Hint:** Buckets of data.

### 18. In Grafana, what does a "Panel" represent?

- A logical group of dashboards within a specific folder
  - Grouping dashboards is a folder function; Panels are components *within* a dashboard.
- **A single visualization block (graph, gauge, or table)** ✅
  - Correct! Every chart on a dashboard is an individual panel with its own query.
- The side navigation menu used to switch between data sources
  - This is the Grafana Sidebar or Navigation Menu.
- A collaborative chat room for discussing observability alerts
  - Collaboration is handled via external tools or Grafana annotations, not Panels.

**Hint:** A single visualization.

### 19. What is the "Pushgateway" used for?

- Speeding up the scraping process for high-latency networks
  - The Pushgateway is for ephemeral jobs, not for network optimization.
- **Allowing short-lived batch jobs to expose metrics to Prometheus** ✅
  - Correct! It holds metrics from jobs that exit before they can be scraped.
- Serving as a firewall between the internet and the cluster
  - This is the role of an Ingress or API Gateway, not the Pushgateway.
- Providing a UI for manually entering metric values
  - Pushgateway is an API-driven component, not a manual data entry tool.

**Hint:** Short-lived jobs.

### 20. What is "Alert Grouping" in Alertmanager?

- Assigning multiple developers to investigate a single failure
  - Team assignment is an incident management task, not a technical grouping logic.
- **Consolidating multiple related alerts into a single notification** ✅
  - Correct! This prevents alert fatigue by sending one message for many similar failures.
- Sorting alerts by their timestamp in the Grafana alert view
  - Sorting is a UI display preference; grouping is a notification delivery logic.
- Restricting alert visibility to specific user roles only
  - Role-based access is a security feature, not alert grouping.

**Hint:** Reducing noise.

### 21. What is "Silence" in Alertmanager?

- A feature to stop Prometheus from scraping a specific target
  - Stopping scrapes is done via configuration; "Silence" only stops notifications.
- **A mechanism to mute notifications for a defined period of time** ✅
  - Correct! This is commonly used to suppress noise during scheduled maintenance.
- A global setting that disables all alerting across the cluster
  - Silences are targeted at specific label sets rather than being a global "off" switch.
- An error state where Prometheus fails to reach the Alertmanager
  - A communication failure is a "connectivity error," not a "Silence."

**Hint:** Muting specific alerts.

### 22. What is a "Service Discovery" in Prometheus?

- A lookup tool for finding the documentation of a specific metric
  - Metric documentation is usually found in the Prometheus UI or metadata API.
- **The automated identification of new scrape targets via APIs** ✅
  - Correct! It works with Kubernetes, AWS, Consul, and other providers to find pods/nodes.
- A protocol for advertising Prometheus dashboards to the internet
  - Advertising dashboards is a DNS or service mesh function, not service discovery.
- A way to identify which developer last modified a dashboard
  - This is part of the Grafana audit logs or version control.

**Hint:** Automatically finding targets.

### 23. What does the "sum" operator do in PromQL?

- Calculates the average value over a specified duration
  - Averages are calculated using the "avg()" operator.
- **Aggregates multiple time-series into a single total value** ✅
  - Correct! For example, it can sum requests across all pods in a cluster.
- Finds the maximum value across all existing dimensions
  - Finding the maximum is the role of the "max()" operator.
- Counts the number of unique labels present in the results
  - Counting the number of series is done via "count()", not "sum()".

**Hint:** Aggregation.

### 24. What is "Retention Time" in Prometheus?

- The time required for a query to return a result from the disk
  - This is "Query Latency."
- **The duration for which Prometheus stores metrics before deletion** ✅
  - Correct! By default, this is often set to 15 days, after which old data is purged.
- The delay between a data point being scraped and appearing in UI
  - This is "Ingestion Latency."
- The period an alert must stay active before it is considered resolved
  - This is related to "Resolved" timeouts in Alertmanager.

**Hint:** Data storage limit.

### 25. What is "Grafana Loki"?

- A dedicated database for storing distributed trace spans
  - Traces are usually stored in Tempo or Jaeger, not Loki.
- **A log aggregation system that uses Prometheus-style labels** ✅
  - Correct! It indexes labels instead of full text to keep costs low.
- A high-availability plugin for mirroring Grafana dashboards
  - Mirroring dashboards is handled by provisioning or database replication.
- A security tool for scanning metrics for malicious patterns
  - Metric scanning is a security/anomaly detection function, not Loki's core role.

**Hint:** Like Prometheus, but for logs.

### 26. What is "Prometheus Recording Rules"?

- A way to capture screen recordings of dashboard performance
  - Prometheus does not deal with video or screen capture.
- **A method to pre-calculate and save complex queries as metrics** ✅
  - Correct! This significantly improves dashboard performance for heavy aggregations.
- A set of rules that define how data is encrypted on the disk
  - Encryption rules are infrastructure settings, not Prometheus recording rules.
- A mandatory policy for how developers must name their labels
  - Naming policies are "linting" or organizational standards, not technical "rules."

**Hint:** Pre-calculating expensive queries.

### 27. In Grafana, what is "Provisioning"?

- Allocating CPU and RAM resources for the Grafana pod
  - This is "Resource Management" or Kubernetes provisioning.
- **Using configuration files to define dashboards and sources** ✅
  - Correct! It allows for "Dashboard as Code" by loading YAML/JSON files automatically.
- The process of purchasing a commercial license for Grafana Enterprise
  - This is a billing or procurement process.
- Setting up the SMTP server for sending alert emails
  - SMTP setup is a configuration step, but not what "Provisioning" refers to in this context.

**Hint:** Dashboard as Code.

### 28. What is "Blackbox Exporter"?

- An agent that collects internal system logs and kernel metrics
  - Internal metrics are collected by Node Exporter; Blackbox probes from the outside.
- **A probe that monitors endpoints via HTTP, DNS, or ICMP** ✅
  - Correct! It verifies that a service is reachable and responding correctly.
- A hardware device used to store encrypted Prometheus backups
  - Prometheus is software; Blackbox is a software exporter, not a hardware device.
- A security tool that hides metric names from external scrapers
  - Hiding metrics is a masking or auth task, not the role of the Blackbox Exporter.

**Hint:** Probing from the outside.

### 29. What is "Inhibitions" in Alertmanager?

- A way to limit the CPU usage of the Alertmanager process
  - CPU limiting is an OS/Container function, not an "Inhibition" rule.
- **Muting specific alerts if a related parent alert is already active** ✅
  - Correct! For example, silencing "Server Down" alerts if the "Data Center Down" alert is firing.
- Preventing certain users from accessing the Alertmanager UI
  - UI access is managed via RBAC, not inhibition rules.
- A timeout that stops an alert from firing if it lasts too long
  - Timed stops are usually handled by alert resolution or silences.

**Hint:** Suppressing alerts based on other alerts.

### 30. What is "Reporting" in Grafana?

- A tool for filing bugs directly to the Grafana GitHub repo
  - Bug reporting is a development process, not a dashboard feature.
- **A feature that generates and emails PDF snapshots of dashboards** ✅
  - Correct! It allows teams to receive scheduled visual summaries of their system health.
- An audit log that shows which users viewed which dashboard
  - This is "Audit Logging," which tracks user activity rather than system state.
- A way to calculate the cost of cloud infrastructure in real-time
  - Cloud cost calculation is typically handled by tools like Kubecost, not standard Grafana reporting.

**Hint:** Exporting panels as images/PDFs.
