Courseiva

Prometheus Certified Associate (PCA, CNCF/Linux Foundation) (PCA) (PCA) — Questions 76–150

265 questions total · 4 pages · All types, answers revealed

Page 1

Page 2 of 4

Page 3
76
Multi-Selectmedium

Which TWO of the following are valid aggregation operators in PromQL?

Select 2 answers
A.sum
B.stddev
C.multiply
D.filter
E.rate
AnswersA, B

`sum` aggregates a vector's samples across matching label sets into a single instant vector, optionally grouped by labels via `by` or `without`. PromQL defines it as a core aggregation operator, so it satisfies the question's requirement for a valid operator.

Why this answer

In PromQL, aggregation operators combine the elements of a single instant vector into a new vector with fewer elements, and the valid set includes sum, min, max, avg, group, stddev, stdvar, count, count_values, bottomk, topk, and quantile. Option A (sum) is correct because sum is a core aggregation operator that adds the values of all series in the vector, optionally grouped by labels via by/without. Option B (stddev) is correct because stddev is a standard aggregation operator that computes the standard deviation across the grouped series.

Option C (multiply) is not an aggregation operator; arithmetic binary operators like * (multiply) operate between two instant vectors/scalars rather than aggregating one vector. Option D (filter) is not a PromQL operator at all; filtering is done through label matchers or functions like absent/unless-style logic, not a 'filter' keyword. Option E (rate) is a function, not an aggregation operator, used to calculate the per-second average rate of increase of a counter over a range vector.

77
MCQeasy

Which tool would you use to monitor the availability of a website from various geographic locations?

A.node_exporter
B.blackbox_exporter
C.Pushgateway
D.Prometheus API
AnswerB

blackbox_exporter probes endpoints over HTTP, HTTPS, TCP and ICMP from wherever its instance runs, exposing results as Prometheus metrics. Deploying multiple instances across regions satisfies the stem's geographic requirement, letting you alert on probe_success and latency per location.

Why this answer

The blackbox_exporter is the standard tool for probing the availability of HTTP, TCP, or DNS services.

78
MCQmedium

You are monitoring a counter metric 'errors_total' and need to calculate the total number of errors that occurred over the last 1 hour. Which function is most appropriate?

A.rate(errors_total[1h])
B.sum(errors_total[1h])
C.delta(errors_total[1h])
D.increase(errors_total[1h])
AnswerD

`increase()` extrapolates a counter's total growth across the specified 1h window, correctly handling counter resets and returning the actual number of errors that occurred. `rate()` would instead give a per-second average, and `delta()` cannot handle resets, so neither satisfies the requirement for a total count over the last hour.

Why this answer

The increase() function returns the total increase in the time series over the specified range vector, properly accounting for counter resets.

79
MCQmedium

Which mechanism allows Prometheus to discover targets by reading a list from a file?

A.dns_sd_configs
B.static_configs
C.consul_sd_configs
D.file_sd_configs
AnswerD

file_sd_configs makes Prometheus read target lists from JSON or YAML files on disk, refreshing them periodically without a restart. This satisfies the stem's constraint of discovering targets from a file rather than via API-based service discovery.

Why this answer

file_sd_configs is designed to read target lists from JSON or YAML files.

80
Multi-Selecteasy

Which THREE of the following are considered part of the 'Four Golden Signals' of monitoring?

Select 3 answers
A.Disk Space
B.Errors
C.Up-time
D.Traffic
E.Latency
AnswersB, D, E

Errors counts failed requests, whether explicit failures, wrong content or policy rejections. It is a Golden Signal because it directly exposes reliability degradation, letting SRE teams alert on failure rates rather than waiting for user reports.

Why this answer

The four golden signals are Latency, Traffic, Errors, and Saturation.

81
MCQmedium

What is the purpose of the 'rule_files' configuration?

A.To manage user authentication
B.To define static targets
C.To define alerting and recording rules
D.To configure global retention
AnswerC

The rule_files directive lists the files Prometheus loads to evaluate alerting rules and recording rules. Alerting rules generate alerts sent to Alertmanager; recording rules precompute frequently used expressions into new time series, satisfying the need to define both rule types.

Why this answer

rule_files point to recording and alerting rules that Prometheus evaluates.

82
Multi-Selectmedium

Which TWO of the following should be considered when defining metric names?

Select 2 answers
A.Avoid using underscores
B.Use random IDs to ensure uniqueness
C.Use descriptive, clear names
D.Include the unit suffix
E.Include the instance name in the metric
AnswersC, D

Descriptive, clear metric names satisfy the stem's requirement for defining metric names by making each series self-documenting, so engineers can identify what a measurement represents without external context. This reduces ambiguity during querying and alerting, directly supporting maintainability across dashboards and Prometheus-style label sets.

Why this answer

Names should be descriptive and use the unit suffix as per conventions.

83
MCQhard

What is the behavior of the clamp_max() function when applied to an instant vector?

A.It drops any time series whose value exceeds the specified maximum.
B.It generates an alert if any time series exceeds the maximum.
C.It restricts all values in the vector so that none exceed the specified maximum.
D.It sets values exceeding the maximum to NaN.
AnswerC

clamp_max() caps each sample's value at the given maximum, leaving lower values untouched. Applied to an instant vector, it returns the same series with values above the threshold replaced by that maximum, satisfying the requirement to bound peaks rather than filter or drop them.

Why this answer

clamp_max(v, max) returns the input vector with every sample value capped at the specified maximum: values above max are replaced by max, while values at or below max pass through unchanged. It does not drop or flag series — it mutates the values in place. This is useful for capping spikes in graphs or enforcing upper bounds in derived metrics.

Exam trap

The trap is assuming clamp_max drops or nullifies out-of-range series — it actually replaces the value with the maximum, keeping the series intact.

How to eliminate wrong answers

Option A is wrong because clamp_max does not filter or drop series; it retains every series and only adjusts values that exceed the maximum. Option B is wrong because clamp_max is a pure transformation function with no alerting behavior — alerts are defined in alerting rules, not in PromQL functions. Option D is wrong because setting values to NaN is the behavior of functions like clamp_min with NaN handling or explicit NaN assignment, not clamp_max, which substitutes the max value itself.

84
MCQhard

When using the Prometheus Go client, what is the difference between a Gauge and a GaugeVec?

A.Gauge is faster
B.GaugeVec is for Histograms
C.There is no difference
D.GaugeVec supports labels
AnswerD

GaugeVec wraps a Gauge with a label dimension, exposing one child metric per label-value combination via WithLabelValues. This satisfies the stem's requirement to distinguish the two types: a plain Gauge holds a single unlabelled value, whereas GaugeVec permits per-label tracking, such as by endpoint or status code.

Why this answer

In the Prometheus Go client, a Gauge is a metric that represents a single numerical value that can go up or down, while a GaugeVec is a vector of Gauges that supports labels. The GaugeVec allows you to create multiple Gauge metrics differentiated by label values (e.g., by instance, method, or status), enabling multi-dimensional metrics. This is the key difference: GaugeVec supports labels, whereas a plain Gauge does not.

Exam trap

PCA often tests the difference between scalar metrics and vector metrics, catching candidates who think GaugeVec is for a different metric type (like Histograms) rather than understanding it as a labeled collection of Gauges.

How to eliminate wrong answers

Option A is wrong because performance is not the differentiator — both are implemented similarly, and the overhead of labels is negligible; the choice depends on whether you need multi-dimensional metrics. Option B is wrong because GaugeVec is not for Histograms; Histograms have their own HistogramVec type, and GaugeVec is specifically for gauge metrics with labels. Option C is wrong because there is a clear difference: GaugeVec supports labels and manages a collection of Gauges, while Gauge is a single metric without labels.

85
MCQeasy

What is the primary language used to query Prometheus data?

A.Regex
B.GraphQL
C.PromQL
D.SQL
AnswerC

PromQL is Prometheus's native functional query language, used across the expression browser, HTTP API and alerting rules to select and aggregate time series. It satisfies the stem's requirement as the primary language for querying Prometheus data.

Why this answer

PromQL (Prometheus Query Language) is the functional query language for Prometheus.

86
MCQeasy

Which file format is used to define Prometheus alerting rules?

A.YAML
B.JSON
C.TOML
D.XML
AnswerA

Prometheus alerting rules are defined in YAML files, typically within a `groups` structure containing `alert` and `expr` fields. This satisfies the stem's requirement for the specific file format, since Prometheus natively parses rule files as YAML — not JSON or TOML — and loads them via `rule_files` in the main configuration.

Why this answer

Prometheus alerting rules are defined in YAML format. The rule files are specified in the Prometheus configuration and contain groups of rules with expressions and durations. YAML is the standard for Prometheus configuration files.

Exam trap

PCA often tests basic file format knowledge, where candidates might confuse YAML with JSON due to similar use in APIs, but Prometheus configuration and rules are exclusively YAML.

How to eliminate wrong answers

Option B is wrong because JSON is not used for Prometheus alerting rules; while Prometheus supports JSON for some API responses, rule files are YAML. Option C is wrong because TOML is not used by Prometheus for any configuration. Option D is wrong because XML is not used by Prometheus.

87
MCQeasy

A Prometheus administrator wants to query the current value of the metric 'http_requests_total'. Which of the following PromQL expressions should be used?

A.http_requests_total[5m]
B.http_requests_total
C.rate(http_requests_total)
D.sum(http_requests_total) over (instance)
AnswerB

A bare metric selector returns the instant vector of current samples for http_requests_total at query evaluation time, which is exactly the current value requested. No rate or aggregation function is needed for a raw counter reading.

Why this answer

The expression `http_requests_total` is a valid PromQL instant vector selector that returns the current value of the metric at the evaluation timestamp. It does not require a range or function because the question asks for the current value, not a rate or aggregation. This is the simplest and correct way to query a single metric's latest sample.

Exam trap

PCA often tests the difference between instant and range vectors, and candidates frequently confuse the two by adding a time range when only the current value is needed.

How to eliminate wrong answers

Option A is wrong because `http_requests_total[5m]` is a range vector selector, which returns a matrix of samples over the last 5 minutes, not a single current value. Option C is wrong because `rate(http_requests_total)` expects a range vector and would produce a parse error; rate requires a range like `http_requests_total[5m]`. Option D is wrong because `sum(http_requests_total) over (instance)` is invalid PromQL syntax; aggregation operators do not use an `over` clause, and `sum` would aggregate across all instances, not return the raw current value.

88
MCQhard

A dashboard shows a latency spike that doesn't correlate with CPU usage. What should you investigate next?

A.Increase the number of replicas.
B.Disk I/O and network saturation.
C.Check the memory limit.
D.Delete old metrics.
AnswerB

Latency without CPU correlation points to resource contention outside the processor: storage throughput, IOPS limits, or network bandwidth and packet loss. Examining disk I/O and network saturation metrics identifies whether the bottleneck sits in I/O waits or transport, which CPU graphs cannot reveal.

Why this answer

Latency that is decoupled from CPU utilization points to a bottleneck outside of compute processing, most commonly I/O wait or network congestion. Disk I/O saturation (high await, queue depth) and network saturation (packet drops, retransmits, bandwidth limits) can both inflate request latency while CPU sits idle waiting on data. In a Prometheus/Grafana context, you would inspect node_disk_io_time_seconds_total, node_network_transmit_drop_total, or container network metrics to confirm.

This is why B is the correct next investigation step.

Exam trap

PCA often tests the misconception that latency always correlates with CPU, so candidates instinctively pick compute-scaling or memory-limit answers instead of recognizing I/O and network as independent latency sources.

How to eliminate wrong answers

Option A is wrong because adding replicas addresses capacity/throughput limits, not a latency spike that is uncorrelated with CPU — if the bottleneck is disk or network, more replicas can worsen contention. Option C is wrong because memory limits cause OOM kills or GC pressure, which typically manifest alongside CPU or restart events, not an isolated latency spike with flat CPU. Option D is wrong because deleting old metrics is a retention/storage housekeeping action and has no causal relationship to a live latency spike; it would also destroy the historical data needed for diagnosis.

89
MCQeasy

What is the default port that Prometheus listens on?

A.9100
B.9093
C.8080
D.9090
AnswerD

Prometheus's server process binds to TCP port 9090 by default, serving its web UI, HTTP API and metrics endpoint there. This is the port scraped for Prometheus's own self-metrics and the one exposed in the default --web.listen-address setting.

Why this answer

9090 is the well-known default port for the Prometheus server web interface.

90
MCQeasy

What is the purpose of a 'grouping' configuration in the Alertmanager 'route' block?

A.To inhibit alerts based on severity
B.To aggregate similar alerts into a single notification
C.To ensure alerts are processed in alphabetical order
D.To create hierarchical alert routing
AnswerB

Grouping aggregates alerts sharing common labels, such as alertname or cluster, into one notification, reducing noise during incidents. Configured via group_by within the route block, it batches related firing alerts so receivers get a single consolidated message rather than many.

Why this answer

Grouping categorizes multiple alerts into a single notification based on common label sets, reducing alert fatigue.

91
MCQhard

If you are using a Histogram, what is the purpose of the '_sum' metric?

A.To store the median
B.To store the maximum value
C.To store the sum of observations
D.To store the total count
AnswerC

The '_sum' metric accumulates the total of all observed values, complementing '_count' and '_bucket', which track observation counts and distribution boundaries. It satisfies the requirement to store the summed observations rather than counts or buckets.

Why this answer

The _sum metric provides the sum of all observed values, which allows calculating the average when combined with the _count metric.

92
Multi-Selecthard

Which THREE of the following are valid Alertmanager routing tree parameters?

Select 3 answers
A.receiver
B.server
C.match_re
D.match
E.auth_token
AnswersA, C, D

receiver is a required route parameter naming the notification integration, such as email or Slack, that delivers alerts matching that route. Every route must define one, making it a core element of the Alertmanager routing tree.

Why this answer

Routes can filter by 'match', 'match_re', and define a 'receiver'.

93
MCQhard

You have a histogram metric tracking request durations. You need to calculate the 99th percentile across all instances in a cluster. Why is this difficult with standard Prometheus metrics?

A.Histograms can only be used on a single instance.
B.The Prometheus server does not support mathematical operations.
C.Aggregating histograms requires complex math because they track bucket counts, not raw values.
D.Histograms are not designed to be aggregated across multiple labels.
AnswerC

Histogram buckets store cumulative counts per bucket, not individual observations, so the 99th percentile cannot be read directly. Merging histograms across instances requires summing bucket counts and interpolating within the target bucket, which introduces approximation error and cannot recover the true percentile.

Why this answer

Histograms track counts in predefined buckets. Without knowing the exact distribution of values within those buckets, calculating accurate quantiles across multiple instances or time windows is an approximation.

94
MCQmedium

What does the `_count` suffix denote in a summary or histogram?

A.The maximum value
B.The sum of values
C.The total number of samples
D.The current bucket value
AnswerC

The _count suffix exposes the number of observations aggregated into that summary or histogram series, independent of the sum or bucket values. It lets you compute averages and rates by dividing other suffixes by this sample total.

Why this answer

The _count suffix represents the total number of observations made for that specific metric.

95
MCQmedium

When running node_exporter, how can you disable specific collectors like 'textfile'?

A.collector.textfile=false
B.--no-collector.textfile
C.exclude=textfile
D.--disable-textfile
AnswerB

The `--no-collector.textfile` flag disables the textfile collector at startup, satisfying the requirement to switch off a specific collector. node_exporter accepts `--no-collector.<name>` for any registered collector, so the textfile collector is excluded from the metrics endpoint without affecting others.

Why this answer

Collectors can be disabled using the --no-collector.<name> flag.

96
MCQmedium

What is the purpose of a Gauge metric?

A.To track request rates.
B.To track job start times.
C.To track request durations.
D.To track values that fluctuate up and down.
AnswerD

A Gauge records an instantaneous value that can rise or fall over time, such as memory usage or queue depth, unlike counters that only increase. This matches the stem's requirement to track values that fluctuate up and down.

Why this answer

A gauge represents a single numerical value that can arbitrarily go up and down, such as temperature or memory usage.

97
MCQmedium

You notice your custom exporter is timing out during scraping. What is the most likely cause?

A.The metric type is wrong
B.The scrape timeout is too short
C.The port is blocked
D.The label names are incorrect
AnswerB

Prometheus scrapes each target within a configured scrape_timeout; if the exporter's response exceeds that window, the scrape is cancelled and marked as failed. Raising the timeout, or speeding up the exporter's collection, resolves the timeout errors.

Why this answer

If the exporter is overloaded or generating a massive amount of data, the scrape_timeout value in Prometheus might be too low.

98
MCQeasy

Which component is responsible for receiving alerts from Prometheus and managing notification delivery?

A.Alertmanager
B.Prometheus Server
C.Exporter
D.Pushgateway
AnswerA

Alertmanager receives alerts pushed by Prometheus and handles their routing, grouping, inhibition and silencing before dispatching notifications to receivers such as email, Slack or PagerDuty. This satisfies the stem's requirement for the component managing notification delivery, since Prometheus itself only evaluates rules and fires alerts.

Why this answer

Alertmanager is the dedicated component for deduplicating, grouping, and routing alerts.

99
MCQhard

You are seeing 'NaN' values in your gauge metrics. What does this indicate?

A.A scrape error
B.An undefined gauge state
C.Metric type mismatch
D.Label collision
AnswerB

A NaN gauge value signals an undefined or missing measurement, not a zero reading. The metric exists but its current state cannot be computed, so the gauge renders no valid numeric value. This matches the undefined gauge state the stem describes.

Why this answer

NaN (Not a Number) is a valid value for gauges in Prometheus, often indicating that a value is currently undefined or not applicable.

100
MCQmedium

Which monitoring philosophy is core to the Prometheus architecture?

A.Agent-less log aggregation.
B.Push-based data ingestion.
C.Centralized pull-based scraping.
D.Event-driven architecture.
AnswerC

Prometheus pulls metrics from targets at controlled intervals.

Why this answer

Prometheus favors the pull model, where the server controls the scrape rate and frequency, providing better control over the load on the monitoring system.

101
MCQmedium

What is the primary drawback of using the Pushgateway for long-running services?

A.It requires manual restarts.
B.It lacks metric persistence.
C.Prometheus cannot query the Pushgateway.
D.It bypasses Prometheus's liveness check for the source.
AnswerD

Pushgateway accepts pushed metrics without verifying that the source service is still running, so Prometheus scrapes stale values indefinitely. This directly satisfies the stem's constraint: long-running services lose Prometheus's liveness detection, since the target's up metric reflects the gateway, not the actual service instance.

Why this answer

Pushgateway exists for short-lived batch jobs that cannot be scraped before they exit. When a long-running service pushes metrics to Pushgateway, Prometheus scrapes Pushgateway rather than the service itself, so Prometheus's normal up/health metric reflects Pushgateway's availability, not the actual service. If the service dies, Pushgateway keeps serving the last pushed values, masking the outage — this is the liveness-check bypass described in option D.

Exam trap

The trap is confusing Pushgateway's persistence with reliability — candidates assume 'it stores metrics' means 'it's safe for long-running services,' but the real issue is that it decouples Prometheus's health check from the actual service, hiding failures.

How to eliminate wrong answers

Option A is wrong because Pushgateway does not require manual restarts; it runs as a persistent service and accepts pushes continuously. Option B is wrong because Pushgateway does persist metrics — it stores the last pushed values in memory (and optionally on disk) until they are deleted or overwritten, which is precisely why stale metrics are a problem. Option C is wrong because Prometheus absolutely can query Pushgateway; in fact, Prometheus scrapes Pushgateway as a target, and the pushed metrics appear in PromQL queries normally.

102
Multi-Selectmedium

Which TWO of the following are true regarding Prometheus Histograms?

Select 2 answers
A.They calculate quantiles client-side
B.They do not use labels
C.They are cumulative
D.They support aggregation across instances
E.They are only for Gauges
AnswersC, D

Histogram buckets are cumulative: each _bucket series counts all observations less than or equal to its upper bound, so values increase monotonically across buckets. This cumulative layout is what enables histogram_quantile() to interpolate quantiles from the bucket counts.

Why this answer

Option C is correct because Prometheus histograms expose cumulative buckets: each bucket with an upper bound le counts all observations less than or equal to that bound, so the counts are monotonically increasing across buckets. Option D is correct because those cumulative bucket counters are plain time series that can be summed across instances with PromQL aggregation operators such as sum by (le), allowing quantiles to be estimated over aggregated data. Option A is wrong because quantile estimation from histograms is done server-side by PromQL's histogram_quantile() function, not client-side.

Option B is wrong because histograms rely on the le label to identify bucket boundaries. Option E is wrong because histograms are their own metric type used for distributions, not a variant of Gauges.

103
MCQeasy

What is the primary goal of observability?

A.To store as many logs as possible.
B.To automate code deployments.
C.To understand system state from external outputs.
D.To replace testing.
AnswerC

Observability infers internal system state purely from emitted outputs such as logs, metrics and traces, without inspecting internals directly. This lets operators answer novel questions about behaviour the system was never explicitly instrumented to report.

Why this answer

Observability aims to answer 'why' a system is in its current state by understanding its internal state through outputs (metrics, logs, traces).

104
MCQhard

You have a recording rule that uses 'sum() by (instance)'. Why might this be inefficient for large clusters?

A.It can lead to high cardinality if 'instance' has many values
B.It blocks concurrent queries
C.It uses too much disk I/O
D.It slows down the network
AnswerA

Grouping by instance creates one output series per distinct instance value, so cardinality scales linearly with cluster size. This satisfies the stem's inefficiency concern: each additional instance multiplies stored series, increasing memory and query cost.

Why this answer

Using 'sum() by (instance)' in a recording rule aggregates metrics per instance, and if the 'instance' label has many unique values (e.g., in a large cluster with many nodes or pods), it creates a high number of time series. This high cardinality increases memory and storage usage in Prometheus, leading to inefficiency and potential performance degradation. The correct answer identifies high cardinality as the primary concern.

Exam trap

PCA often tests the misconception that recording rules always reduce cardinality, when in fact grouping by a high-cardinality label like 'instance' can perpetuate or even exacerbate high cardinality issues.

How to eliminate wrong answers

Option B is wrong because recording rules do not block concurrent queries; Prometheus is designed to handle concurrent queries, and recording rules are evaluated in the background. Option C is wrong because disk I/O is not the primary issue with high-cardinality recording rules; memory usage is more directly impacted. Option D is wrong because network slowdown is not a typical consequence of recording rule cardinality; the bottleneck is usually Prometheus's internal storage and query engine.

105
MCQmedium

When should you use the 'absent()' function?

A.To alert when a metric has no data points in a given range.
B.To reset a counter.
C.To ignore null values in a calculation.
D.To handle missing labels in a join.
AnswerA

absent() returns a non-empty result when its input vector has no samples, letting alerting rules fire on missing data. This suits detecting a metric that has stopped reporting within a given range, which is exactly the scenario described.

Why this answer

absent() returns a time series if the input vector is empty, useful for alerting on missing metrics.

106
MCQhard

How do you apply a global notification delay in Alertmanager?

A.By using the group_wait field
B.By setting the repeat_interval
C.By creating a silence for the first 5 minutes
D.By modifying the Prometheus rule interval
AnswerA

The group_wait parameter sets how long Alertmanager buffers alerts belonging to a new group before sending the first notification, which is precisely the global delay mechanism requested. It applies across all routes unless overridden, satisfying the stem's requirement for a global notification delay.

Why this answer

The 'group_wait' parameter at the root route level defines the time to wait before sending an initial notification for a new alert group.

107
MCQmedium

You are designing a monitoring architecture for an ephemeral, auto-scaling microservices environment. Why is the Prometheus 'pull' model generally preferred over a 'push' model in this scenario?

A.Pull models enable automatic service discovery and health management via the Prometheus server.
B.Pull models eliminate the need for firewall configuration.
C.Pull models reduce network latency on the monitored targets.
D.Push models require a Prometheus Pushgateway for every single target.
AnswerA

The Prometheus server discovers targets through service discovery, then scrapes each instance and marks it down when unreachable. This suits ephemeral, auto-scaling microservices because target health and liveness are managed centrally without instances needing to know the server's address.

Why this answer

Prometheus's pull model lets the server discover targets dynamically (via Kubernetes SD, Consul, EC2 SD, etc.) and scrape them on a schedule, so ephemeral pods that appear and disappear are picked up automatically. It also gives the server a built-in health signal: if a target fails to respond to a scrape, Prometheus marks it down via the 'up' metric, providing liveness monitoring for free.

Exam trap

The trap is conflating 'pull' with 'no firewall needed' or 'lower latency,' when the real advantage is service discovery plus free up/down health signaling for ephemeral targets.

How to eliminate wrong answers

Option B is wrong because pull does not eliminate firewall configuration — the Prometheus server still needs network reachability to each target's /metrics endpoint, which often requires firewall or security-group rules. Option C is wrong because pull does not inherently reduce network latency on targets; latency is a function of network topology, not scrape direction. Option D is wrong because Pushgateway is only needed for short-lived batch jobs that cannot be scraped, not for every target — long-running services are scraped directly.

108
MCQhard

When a Prometheus server is restarted, how does it recover the in-memory data?

A.It only keeps the last 5 minutes
B.It reads the WAL
C.It queries the remote store
D.It re-scrapes all targets
AnswerB

The WAL stores data that hasn't been flushed to disk blocks yet.

Why this answer

It replays the Write-Ahead Log (WAL) to reconstruct the in-memory head block.

109
MCQmedium

You are instrumenting a Go application. What is the standard way to register a metric?

A.prometheus.MustRegister()
B.prometheus.Enable()
C.prometheus.Set()
D.prometheus.Add()
AnswerA

`prometheus.MustRegister()` adds a collector to the default registry, which the `/metrics` endpoint exposes automatically. It panics on duplicate registration, surfacing programming errors immediately rather than silently dropping the metric. This satisfies the stem's requirement for the standard registration mechanism in the Go client library.

Why this answer

The prometheus.MustRegister() function is the standard way to register custom metrics with the default registry.

110
MCQhard

When evaluating the 'Traffic' golden signal, what is the best metric to watch for a web service?

A.CPU usage percentage.
B.Requests per second.
C.HTTP error count.
D.Response latency.
AnswerB

Requests per second measures demand volume hitting the web service, making it the most direct indicator of the Traffic golden signal. It reveals load changes and saturation trends that latency or error-rate metrics alone would not expose for a request-driven service.

Why this answer

Request rate (requests per second) is the standard way to measure traffic volume.

111
MCQhard

You need to send critical alerts to a specific Slack channel while warning alerts go to email. Where should this routing logic be defined?

A.In the Alertmanager 'receivers' configuration
B.In the Grafana 'Alerting' UI
C.In the Alertmanager 'route' configuration
D.In the Prometheus 'alerting' rule file
AnswerC

Alertmanager's route configuration matches alerts by label and directs them to named receivers, so severity-based routing to Slack versus email belongs there. Prometheus rule files only define firing conditions; they cannot perform receiver routing, making Alertmanager the correct location.

Why this answer

The Alertmanager 'route' configuration is where routing logic is defined. It uses a tree of routes with matchers (e.g., severity='critical') to direct alerts to specific receivers (e.g., Slack for critical, email for warning). This is the core mechanism for conditional alert routing in Prometheus-based monitoring.

Exam trap

PCA often tests the distinction between defining receivers (destinations) and defining routes (routing logic), so candidates may mistakenly choose 'receivers' when asked where routing logic is defined.

How to eliminate wrong answers

Option A is wrong because 'receivers' only define the destination details (like Slack webhook URL or email SMTP settings) but do not contain the logic to decide which alerts go where. Option B is wrong because Grafana's Alerting UI is for Grafana-managed alerts, not for routing Prometheus Alertmanager alerts; it cannot control Alertmanager's routing. Option D is wrong because Prometheus alerting rules only generate alerts and send them to Alertmanager; they do not perform routing to different receivers.

112
MCQmedium

When evaluating a PromQL query involving arithmetic operators, such as 'vector1 + vector2 * vector3', which operator has the highest precedence?

A.Both have equal precedence and are evaluated left-to-right.
B.+ (Addition)
C.* (Multiplication)
D.Precedence is determined by the order of labels.
AnswerC

Multiplication binds tighter than addition in PromQL, so in `vector1 + vector2 * vector3` the `*` operation is evaluated first, then the result is added to `vector1`. PromQL follows standard arithmetic precedence, giving `*` and `/` higher precedence than `+` and `-`, satisfying the stem's precedence constraint.

Why this answer

In PromQL, arithmetic operators follow standard mathematical precedence: multiplication (*), division (/), and modulo (%) bind tighter than addition (+) and subtraction (-). Therefore in 'vector1 + vector2 * vector3', the multiplication of vector2 and vector3 is evaluated first, and the result is then added to vector1. This mirrors conventional arithmetic rules rather than left-to-right evaluation.

Exam trap

The trap here is assuming PromQL evaluates strictly left-to-right like a simple calculator; candidates forget that * and / outrank + and - just as in standard arithmetic.

How to eliminate wrong answers

Option A is wrong because PromQL does not evaluate all arithmetic operators left-to-right — it applies precedence levels, so * is not equal to +. Option B is wrong because + has lower precedence than *, so it is not evaluated first. Option D is wrong because label ordering has no bearing on operator precedence; precedence is a fixed property of the operator type, not the data.

113
Multi-Selectmedium

Which TWO of the following are common reasons to use the Pushgateway?

Select 2 answers
A.For batch jobs that run for seconds
B.To monitor long-running servers
C.To act as a reverse proxy
D.When metrics need to be stored in SQL
E.When the application is inaccessible to the Prometheus server
AnswersA, E

Short-lived batch jobs finish before Prometheus can scrape them, so their final metrics would be lost. Pushing those metrics to the Pushgateway preserves them for the Prometheus server to scrape afterwards, satisfying the ephemeral-job constraint.

Why this answer

Option A is correct because short-lived batch jobs that run only for seconds may finish before Prometheus can scrape them, so they push their final metrics to the Pushgateway where Prometheus can collect them later. Option E is correct because when the application or its metrics endpoint cannot be reached directly by the Prometheus server—due to network segmentation, firewalls, or NAT—the application can push metrics to a Pushgateway that Prometheus is able to scrape. Option B is wrong because long-running servers are the standard use case for direct Prometheus scraping, not the Pushgateway.

Option C is wrong because the Pushgateway is a metrics cache, not a reverse proxy for arbitrary traffic. Option D is wrong because Prometheus and the Pushgateway store metrics in their own time-series format, not in SQL databases.

114
MCQmedium

What is the benefit of using recording rules?

A.They enable alert notifications
B.They improve query performance
C.They bypass TSDB
D.They reduce storage usage
AnswerB

Recording rules precompute expensive or frequently used PromQL expressions and store the results as new time series. Dashboards and alerts then query those precalculated series instead of re-evaluating heavy aggregations across raw data at request time, cutting query latency and load on Prometheus.

Why this answer

Recording rules precompute expensive or frequently-used PromQL expressions and save the result as a new time series, so subsequent queries read the precomputed series instead of re-evaluating the full expression over raw data. This dramatically improves query performance, especially for dashboards and alerts that run the same heavy aggregation repeatedly. They are defined in rule files and evaluated at a configurable `interval`.

Exam trap

The trap is confusing recording rules with alerting rules — both live in rule files and use PromQL, but only alerting rules send notifications, and only recording rules are about query performance.

How to eliminate wrong answers

Option A is wrong because alert notifications come from alerting rules, not recording rules — alerting rules evaluate an expression and fire alerts to Alertmanager, while recording rules only produce new time series. Option C is wrong because recording rules write their output into the TSDB like any other series; they do not bypass it. Option D is wrong because recording rules actually increase storage usage — they add new series on top of the raw data they were derived from; they trade storage for query speed, not the other way around.

115
MCQhard

Your Prometheus server is hitting high memory usage due to high cardinality. Which action is most effective at reducing memory pressure?

A.Increase scrape_interval
B.Drop high-cardinality labels using relabel_configs
C.Use more exporters
D.Enable remote write
AnswerB

Memory scales with the number of distinct label-value series, so cardinality is the constraint. relabel_configs can drop or rewrite labels before ingestion, collapsing many series into fewer and directly cutting the stored time series that drive memory usage.

Why this answer

Reducing label cardinality (e.g., removing unique user IDs) is the primary way to reduce TSDB index size and memory usage.

116
MCQhard

What is the purpose of 'tombstones' in the TSDB?

A.To increase query speed
B.To compress data
C.To mark series for deletion
D.To store WAL snapshots
AnswerC

Tombstones record deleted time ranges within a series, letting Prometheus's TSDB skip those blocks during queries without immediately rewriting data on disk. This satisfies the stem's deletion-marking purpose: the series persists physically, but tombstoned intervals are excluded from reads until compaction removes them.

Why this answer

Tombstones track data points that have been deleted, allowing them to be ignored during queries until they are compacted.

117
Multi-Selecthard

Which THREE of the following are common sources of high cardinality?

Select 3 answers
A.Dynamic URL parameters
B.Unique user IDs
C.Static host names
D.Binary flags
E.Timestamps in labels
AnswersA, B, E

Each distinct dynamic URL parameter value creates its own label set, so cardinality scales with the number of unique parameter combinations. This satisfies the stem's requirement for a common high-cardinality source, since unbounded parameter variation multiplies time series far beyond a fixed label set.

Why this answer

Dynamic URL parameters (A) are a classic high-cardinality source because each distinct parameter value (e.g., session tokens, query strings, or path segments) creates a new unique time series or metric label set. Unique user IDs (B) are also high cardinality since every user generates a distinct label value, causing the number of series to scale with the user base. Timestamps in labels (E) are high cardinality because a timestamp label takes a continuously increasing set of unique values, exploding the series count with every scrape or event.

Static host names (C) are low cardinality because the set of hosts is small and bounded, and binary flags (D) only ever take two values (true/false or 0/1), so neither meaningfully increases cardinality.

Exam trap

The trap is failing to recognize that 'unique' or 'unbounded' values (IDs, timestamps, dynamic paths) are the cardinality killers, while bounded sets (hostnames, booleans) are safe.

118
Multi-Selecteasy

Which TWO of the following label matching operators are supported in Prometheus label selectors? (Choose two)

Select 2 answers
A.= (exact equality)
B.=~ (regular expression match)
C.#= (wildcard match)
D.== (boolean equality comparison)
E.:= (assignment and match)
AnswersA, B

The = operator performs exact string equality against a label's value, matching only samples whose label equals the given string. It is one of Prometheus's core label matching operators, alongside !=, =~ and !~, satisfying the selector requirement.

Why this answer

Prometheus label selectors support the exact equality operator =, as in http_requests_total{job="api"}, which matches series whose label value is exactly the given string, so option A is correct. They also support the regular expression match operator =~, as in http_requests_total{job=~"api|web"}, which matches series whose label value matches the anchored RE2 regular expression, so option B is correct. The remaining operators are not part of PromQL selector syntax: #= is not a wildcard operator, == is a comparison operator used in expressions rather than label matching, and := is not a Prometheus label matching operator at all.

119
MCQeasy

Your team is defining Service Level Objectives (SLOs) for a web application. Which metric is most indicative of the 'Traffic' golden signal?

A.Number of requests per second
B.Database connection pool size
C.Total disk I/O wait
D.Number of active error logs
E.Average CPU utilization percentage
AnswerA

Traffic measures demand on the system, so requests per second directly quantifies the volume of incoming work. Latency, errors and saturation describe other golden signals, but only request rate satisfies the Traffic SLO requirement in the stem.

Why this answer

Traffic is a measure of demand on the system, typically represented by request rate per second.

120
MCQhard

How does the 'stale marker' work in Prometheus?

A.It prevents the graph from showing data after the target goes down.
B.It restarts the scrape job.
C.It sends an alert.
D.It deletes the metric data.
AnswerA

When a target disappears, Prometheus writes a stale marker into the TSDB, causing queries to stop returning that series' last sample immediately after the lookback delta. This prevents graphs from displaying flat-lined or misleading data once the target is genuinely down.

Why this answer

When a target stops responding, Prometheus writes a stale marker to the TSDB so that graphs stop at the last known value rather than showing an infinite line or incorrect data.

121
MCQmedium

Which tool would you pair with Prometheus to visualize the collected data?

A.Grafana
B.Kibana
C.PromQL
D.Alertmanager
AnswerA

Grafana queries Prometheus as a data source and renders its time series as dashboards, graphs and alerts. Prometheus itself offers only a basic expression browser, so pairing it with Grafana provides the visualisation layer the scenario requires for exploring collected metrics.

Why this answer

Grafana is the standard visualization tool paired with Prometheus. It connects to Prometheus as a data source and allows users to create dashboards, graphs, and alerts based on Prometheus metrics. Grafana's native support for PromQL and its rich visualization capabilities make it the go-to choice for visualizing Prometheus data.

Exam trap

PCA often tests the distinction between data collection, querying, visualization, and alerting tools; candidates might confuse PromQL as a visualization tool or Kibana as compatible with Prometheus, but the key is to identify Grafana as the dedicated visualization layer.

How to eliminate wrong answers

Option B is wrong because Kibana is designed for visualizing Elasticsearch data, not Prometheus metrics; it is part of the ELK stack and does not natively support PromQL. Option C is wrong because PromQL is Prometheus's query language, not a visualization tool; it is used to retrieve and manipulate data but does not provide dashboards or graphs. Option D is wrong because Alertmanager handles alerts sent by Prometheus, including deduplication, grouping, and routing, but it does not visualize data.

122
MCQeasy

What is the primary difference between a metric and a log?

A.Metrics are for debugging; logs are for alerting.
B.Logs are cheaper to store.
C.Logs are always real-time.
D.Metrics represent snapshots of state; logs represent discrete events.
AnswerD

Metrics are numeric samples recording state at a point in time, aggregated and cheap to store. Logs are timestamped records of discrete events with full context. This axis — sampled state versus discrete event — is the fundamental distinction between the two telemetry types.

Why this answer

Metrics are numeric time-series measurements (counters, gauges, histograms) sampled at intervals, so each data point is a snapshot of a value at a moment in time. Logs are timestamped, discrete event records — text or structured payloads emitted when something happens (a request, an error, a state change). This distinction drives everything downstream: metrics are aggregated and cheap to query at scale, while logs preserve per-event detail for forensics.

Exam trap

The trap here is the false dichotomy that metrics and logs serve mutually exclusive purposes (debugging vs. alerting) — candidates who memorise 'logs = debugging' pick A, missing that the real axis of difference is snapshot-of-state vs. discrete-event.

How to eliminate wrong answers

Option A is wrong because it inverts the actual roles — metrics are the primary alerting signal (threshold/rate-based alerts in Prometheus, CloudWatch, etc.), while logs are the go-to for debugging individual failures. Option B is wrong because logs are generally far more expensive to store and index than metrics; metrics are compact numeric samples, whereas logs carry full payloads and high cardinality. Option C is wrong because logs are not inherently real-time — they are written after an event occurs and may be batched, buffered, or shipped asynchronously, whereas metrics are typically scraped/pushed on a fixed interval.

123
MCQmedium

Which of the following best describes the function of the 'continue: true' setting within an Alertmanager route?

A.It allows an alert to continue matching against sibling routes
B.It enables alert silencing
C.It allows the Alertmanager to retry failed notifications
D.It causes the alert to stay active indefinitely
AnswerA

By default, an alert stops at the first matching route. Setting continue: true lets evaluation proceed to sibling routes at the same level, so the alert can match multiple routes and trigger their respective receivers.

Why this answer

Setting 'continue: true' allows an alert to match multiple routes, ensuring it can be sent to multiple destinations if desired.

124
Multi-Selectmedium

Which THREE of the following modifiers or keywords are used in PromQL binary vector matching? (Choose THREE)

Select 3 answers
A.group_left
B.keep_matching
C.on
D.ignoring
E.group_by
AnswersA, C, D

`group_left` is a many-to-one vector matching modifier, permitting each right-hand sample to pair with multiple left-hand samples while retaining left-side labels. PromQL binary vector matching requires it, alongside `on`/`ignoring` and `group_right`, to resolve cardinality mismatches between operands, satisfying the stem's request for valid matching keywords.

Why this answer

In PromQL binary vector matching, the on keyword (option C) restricts matching to the listed labels, while ignoring (option D) excludes the listed labels from the default matching set; both are valid matching modifiers. The group_left keyword (option A) is a valid many-to-one grouping modifier used with on/ignoring to allow multiple series on the left side to match a single series on the right. The other options are not PromQL keywords: keep_matching (B) does not exist, and group_by (E) is not a binary vector matching modifier (grouping in PromQL uses by/without in aggregations, not group_by).

125
MCQhard

A Prometheus alert expression uses rate(http_requests_total[5m]) > 10. During a service restart, counter resets occur. How does the rate() function account for these counter resets?

A.It treats the negative difference as an error and returns 0 for the entire range.
B.It adds a fixed offset value configured in Prometheus global settings.
C.It assumes the counter reset to zero and adds the new value to the previous value.
D.It drops the samples surrounding the reset, resulting in a null value for that evaluation.
AnswerC

Prometheus rate() detects a decrease between samples and treats it as a counter reset, assuming the counter restarted at zero. It then adds the post-reset value to the pre-reset value, so the restart's lost increments are not counted as a negative rate, preserving an accurate request rate.

Why this answer

The rate() function automatically detects decreases in counter values (resets) and adjusts the calculation assuming the counter restarted at zero.

126
MCQeasy

Which golden signal would you monitor to detect if a specific API endpoint is returning 404s?

A.Traffic
B.Saturation
C.Errors
D.Latency
AnswerC

Errors is the golden signal tracking failed requests, and HTTP 404 responses count as errors for a specific endpoint. Monitoring error rate per endpoint reveals whether clients are requesting nonexistent resources, satisfying the detection requirement.

Why this answer

Errors is the golden signal that measures the rate of requests that fail — including HTTP 5xx, 4xx, and application-level failures. A 404 response from an API endpoint is a client error (4xx) and falls under the Errors signal. Monitoring error rates per endpoint lets you detect misrouted requests, broken links, or misconfigured clients.

The four golden signals from Google SRE are Latency, Traffic, Errors, and Saturation.

Exam trap

PCA often tests the four golden signals by presenting a specific failure (like 404s) and expecting candidates to map it to Errors rather than Traffic or Latency, which sound plausible but measure different dimensions.

How to eliminate wrong answers

Option A is wrong because Traffic measures demand on the system (e.g., requests per second, network I/O) and does not distinguish successful from failed requests. Option B is wrong because Saturation measures how 'full' a resource is (CPU, memory, queue depth) — it indicates capacity pressure, not request failures. Option D is wrong because Latency measures the time to service a request; a 404 can be fast, so latency would not flag it.

127
MCQhard

In Alertmanager, what is the role of the 'continue' field in a route?

A.To keep the alert firing after resolution
B.To ignore duplicate alerts
C.To restart the Alertmanager process
D.To force the alert to be sent to multiple routes
AnswerD

By default a matching alert stops at the first route. Setting continue to true tells Alertmanager to keep evaluating sibling routes after a match, so the same alert is also delivered through those additional routes rather than being consumed by the first.

Why this answer

The 'continue' field in an Alertmanager route, when set to true, allows the alert to continue matching subsequent sibling routes. This means the alert can be sent to multiple receivers, effectively forcing it to be routed to multiple destinations.

Exam trap

PCA often tests the 'continue' field's role in routing, where candidates might confuse it with deduplication or resolution parameters, but it specifically enables multi-route matching.

How to eliminate wrong answers

Option A is wrong because 'continue' does not affect alert firing after resolution; that is controlled by 'resolve_timeout'. Option B is wrong because ignoring duplicate alerts is handled by deduplication in Alertmanager, not by 'continue'. Option C is wrong because 'continue' has nothing to do with restarting the Alertmanager process.

128
MCQeasy

A team is transitioning from a traditional logging system to a metrics-based monitoring approach. Which category of observability data should the team prioritize to specifically identify the 'Latency' golden signal?

A.Infrastructure events
B.Structured application logs
C.Time-series metrics
D.Distributed traces
AnswerC

Latency is a duration measured repeatedly over time, so time-series metrics capture request durations as timestamped samples, enabling percentile and histogram analysis. This satisfies the stem's requirement, unlike logs, which record discrete events without native aggregation.

Why this answer

The 'Latency' golden signal is one of the four golden signals (latency, traffic, errors, saturation) defined in Google's SRE book. Latency is fundamentally a time-based measurement—how long a request takes to complete. Time-series metrics are specifically designed to capture numeric values over time, making them the ideal data category for tracking latency percentiles (e.g., p50, p95, p99) and alerting on thresholds.

Metrics allow efficient aggregation and long-term trend analysis, which is essential for monitoring latency as a key performance indicator.

Exam trap

PCA often tests the distinction between the four golden signals and the data types used to measure them, and candidates frequently confuse distributed traces (which show per-request latency) with time-series metrics (which aggregate latency over time for monitoring).

How to eliminate wrong answers

Option A is wrong because infrastructure events (e.g., server reboots, network interface changes) provide discrete state changes, not continuous latency measurements. Option B is wrong because structured application logs record discrete events with context, but they are not optimized for numeric time-series analysis and would require parsing to extract latency values, making aggregation and alerting inefficient. Option D is wrong because distributed traces capture the full call graph and timing of individual requests, which is powerful for debugging but not for continuous monitoring of latency as a golden signal; traces are typically sampled and not aggregated into time-series metrics for alerting.

129
Multi-Selectmedium

Which TWO of the following are true about the Blackbox exporter?

Select 2 answers
A.It supports HTTP, TCP, and DNS
B.It is the only exporter for databases
C.It requires a target list in the config
D.It automatically instruments application code
E.It is a passive metric collector
AnswersA, C

The Blackbox exporter performs active probing from outside the target, and its probe modules support HTTP, TCP, DNS, ICMP and gRPC checks. Supporting HTTP, TCP and DNS satisfies the multi-protocol probing capability the question asks about.

Why this answer

Option A is correct because the Blackbox exporter performs active probes over protocols such as HTTP/HTTPS, TCP, ICMP, and DNS, exposing results like probe_success and probe_duration_seconds. Option C is correct because the Blackbox exporter is driven by a target list defined in its configuration (e.g., under modules and targets in blackbox.yml or via relabeling in Prometheus), since it needs to know which endpoints to probe. Option B is wrong because the Blackbox exporter is not a database exporter; database metrics are typically collected by dedicated exporters such as mysqld_exporter or postgres_exporter.

Option D is wrong because the Blackbox exporter does not instrument application code; that is the role of client libraries or agents like the Prometheus client libraries. Option E is wrong because the Blackbox exporter is an active prober that initiates connections, not a passive collector that only scrapes already-exposed metrics.

130
MCQeasy

What does the 'firing' state mean for an alert?

A.The alert is being silenced
B.The alert is pending
C.The alert condition is currently true
D.The alert has been resolved
AnswerC

Firing is the active state an alert enters once its PromQL expression evaluates true for the configured 'for' duration, meaning the condition currently holds. It contrasts with inactive and pending, so this option correctly describes the live breach the rule detects.

Why this answer

An alert enters the 'firing' state when its condition expression evaluates to true for the specified 'for' duration.

131
MCQeasy

What is the default value for the scrape interval?

A.1m
B.10s
C.30s
D.5m
AnswerA

Prometheus defaults its scrape interval to one minute when no explicit value is set, so a target without a custom `scrape_interval` is polled every 60 seconds. This satisfies the stem's request for the default, distinguishing it from shorter intervals such as 15s or 30s that must be configured manually.

Why this answer

The default scrape interval in Prometheus is 1 minute.

132
MCQmedium

You need to monitor the availability of a specific web endpoint from external locations using blackbox_exporter. What is the primary purpose of the 'module' configuration in blackbox_exporter?

A.To specify the IP address of the target server.
B.To manage the authentication credentials for the exporter process.
C.To define the protocol-specific behavior and parameters for the probe.
D.To automatically register the exporter with the Prometheus server.
AnswerC

The module block selects the probe type—HTTP, TCP, ICMP or DNS—and its parameters such as preferred IP protocol, timeouts and valid status codes. It therefore determines the protocol-specific behaviour the blackbox_exporter applies when testing the web endpoint.

Why this answer

In blackbox_exporter, a module defines the protocol-specific behavior and parameters for a probe, such as HTTP, TCP, ICMP, or DNS. It specifies details like the HTTP method, headers, expected status codes, timeouts, and TLS settings. This allows the exporter to perform customized checks for different types of endpoints.

Exam trap

PCA often tests blackbox_exporter configuration, and candidates may confuse the module with target specification or authentication, but the module defines the probe's behavior, not the target.

How to eliminate wrong answers

Option A is wrong because the target IP address is specified in the Prometheus scrape configuration or as a parameter to the probe, not in the module. Option B is wrong because authentication credentials are typically configured within the module (e.g., HTTP basic auth), but the primary purpose of the module is broader than just managing credentials. Option D is wrong because automatic registration with Prometheus is not a function of the module; Prometheus discovers targets via service discovery or static configs.

133
Multi-Selecteasy

Which TWO of the following are valid components of an Alertmanager configuration file?

Select 2 answers
A.receivers
B.storage_path
C.global_variables
D.scrape_configs
E.route
AnswersA, E

Receivers is a top-level Alertmanager configuration block listing named notification integrations, such as email, Slack or PagerDuty, each referenced by routes. Without at least one receiver defined, Alertmanager cannot dispatch any notification, making it a required valid component.

Why this answer

Option A, receivers, is correct because the Alertmanager configuration file uses a top-level receivers: block to define notification integrations (for example email, Slack, PagerDuty, or webhook) that alerts are sent to. Option E, route, is correct because the top-level route: block defines the routing tree that matches incoming alerts and dispatches them to the appropriate receiver, including child routes and grouping/matching settings. Option B, storage_path, is not a valid Alertmanager configuration key; the data directory is set via the --storage.path command-line flag, not a config field.

Option C, global_variables, is not a valid key; Alertmanager uses a global: block for settings such as SMTP and Slack defaults. Option D, scrape_configs, belongs to the Prometheus server configuration (defining scrape targets), not to Alertmanager.

134
Multi-Selectmedium

Which TWO are true about the 'Summary' metric type?

Select 2 answers
A.They only support counts.
B.They are easily aggregatable across instances.
C.They provide client-side quantiles.
D.They have a fixed overhead.
E.They are identical to Histograms.
AnswersC, D

Client-side quantiles are computed within the instrumented application before export, so the Summary metric type satisfies the stem's requirement for locally calculated quantiles rather than server-side aggregation. This distinguishes it from histogram-based types, where quantiles are derived later from bucketed data in the backend.

Why this answer

Option C is correct because a Summary metric type computes quantiles (e.g., 0.5, 0.9, 0.99) on the client side, meaning the application itself calculates the quantile values before exposing them, unlike Histograms which expose buckets for server-side quantile estimation. Option D is correct because Summaries have a fixed overhead: the number of quantiles and their sliding time window are configured in advance, so the memory and CPU cost per Summary is predetermined and does not grow with the number of observed values or label combinations. Option A is wrong because Summaries support observations of values (they track sum, count, and quantiles), not only counts.

Option B is wrong because client-side quantiles from Summaries cannot be meaningfully aggregated across instances — you cannot average or sum quantiles to get a correct global quantile. Option E is wrong because Summaries and Histograms differ fundamentally: Summaries compute quantiles client-side with fixed overhead, while Histograms expose configurable buckets and allow server-side aggregation and quantile calculation.

135
Multi-Selectmedium

Which TWO of the following are core responsibilities of the Prometheus server?

Select 2 answers
A.Sending SMS alerts
B.Hosting the dashboard UI
C.Evaluating rules
D.Managing user auth
E.Scraping metrics
AnswersC, E

Evaluating rules is a core Prometheus server responsibility: it periodically runs the alerting and recording rules loaded from rule_files, producing alerts and precomputed series. This sits alongside scraping and storing time series in the server's own duties.

Why this answer

Option E is correct because the Prometheus server's primary function is to actively scrape (pull) time-series metrics from instrumented targets over HTTP at configured intervals, storing them in its local TSDB. Option C is correct because the Prometheus server evaluates recording rules and alerting rules against the scraped data; recording rules precompute new time series, and alerting rules generate alerts that are pushed to Alertmanager. Option A is not a Prometheus responsibility—Prometheus only forwards firing alerts to Alertmanager, which handles notification routing and integrations such as SMS or email.

Option B is incorrect because the Prometheus server exposes only a basic expression browser, while rich dashboards are provided by external tools like Grafana. Option D is incorrect because Prometheus has no built-in user authentication or authorization; access control is typically handled by a reverse proxy or an identity-aware proxy in front of it.

136
Multi-Selectmedium

Which TWO of these are true about the 'Pull' model?

Select 2 answers
A.The load on the server is unpredictable.
B.Targets must run a push-client.
C.Prometheus initiates the scrape request.
D.Prometheus can detect when a target is down.
E.It is limited to local metrics.
AnswersC, D

In the pull model Prometheus actively initiates each scrape over HTTP against configured targets, rather than passively receiving pushed data. This satisfies the stem's requirement by naming the direction of initiation, the defining axis separating pull from push architectures.

Why this answer

Option C is correct because in the Pull model Prometheus itself initiates the HTTP scrape request to each target's /metrics endpoint on a schedule, rather than waiting for targets to send data. Option D is correct because, since Prometheus controls the scrape cycle, it can evaluate the `up` metric after each scrape and mark a target as down when the scrape fails or times out, enabling alerting on target availability. Option A is not correct because the pull model's load is predictable and driven by Prometheus's configured scrape intervals and target list, not by unpredictable target behavior.

Option B is not correct because targets only need to expose an HTTP metrics endpoint; a push-client is required in push-based models, not in the pull model. Option E is not correct because Prometheus can scrape remote targets over the network, not just local metrics.

137
Multi-Selectmedium

Which THREE aggregation operators in PromQL support the 'by' and 'without' clause modifiers? (Choose three)

Select 3 answers
A.sum
B.histogram_quantile
C.avg
D.label_replace
E.count
AnswersA, C, E

`sum` aggregates sample values across matching series, and both `by` and `without` modifiers are valid for it, letting you group results by specified labels or strip them from the output. This satisfies the stem's requirement for operators supporting both clause modifiers.

Why this answer

The three correct answers are A (sum), C (avg), and E (count). These are all PromQL aggregation operators, and every aggregation operator in PromQL — including sum, avg, count, min, max, stddev, stdvar, topk, bottomk, quantile, count_values, and group — accepts the by and without clause modifiers to control how the input vector is grouped before aggregation. For example, sum by (job) (http_requests_total) aggregates per job, while sum without (instance) (http_requests_total) aggregates across all labels except instance.

Option B (histogram_quantile) is a function, not an aggregation operator, and it does not take by/without clauses; it operates on buckets produced by an aggregation such as sum by (le) (rate(...)). Option D (label_replace) is a label-manipulation function that rewrites label values and likewise does not support by/without grouping modifiers.

138
MCQmedium

What is the purpose of the 'instance' label in Prometheus?

A.To filter alerts
B.To identify the user
C.To identify the target
D.To identify the job
AnswerC

The instance label records the specific target endpoint scraped, typically host:port, distinguishing multiple replicas or jobs sharing the same metric names. This satisfies the need to identify which individual target produced a given sample during querying and alerting.

Why this answer

It is an automatically added label that identifies the target (host:port) that the metric was scraped from.

139
MCQeasy

Which PromQL function is specifically designed to calculate the per-second average rate of increase of a time series over a given range vector?

A.deriv()
B.irate()
C.increase()
D.rate()
AnswerD

rate() computes the per-second average rate of increase of a counter time series across the range vector, handling counter resets automatically. This satisfies the constraint of calculating per-second average increase, unlike irate() which uses only the last two samples.

Why this answer

The rate() function in PromQL is specifically designed to calculate the per-second average rate of increase of a time series over a given range vector. It takes a range vector (e.g., http_requests_total[5m]) and returns the average per-second growth rate, handling counter resets automatically. This is the canonical function for computing rates of counters.

Exam trap

PCA often tests the confusion between rate(), irate(), and increase() — candidates may pick increase() thinking it gives a per-second rate, but it returns the total increase over the range.

How to eliminate wrong answers

Option A is wrong because deriv() calculates the per-second derivative of a gauge, not the rate of increase of a counter — it is used for gauges. Option B is wrong because irate() calculates the instantaneous rate based on the last two samples, not the average over the whole range. Option C is wrong because increase() returns the total increase over the range, not the per-second rate — it is essentially rate() multiplied by the range duration in seconds.

140
MCQeasy

Where do you define the scrape interval for a specific target?

A.global section
B.remote_write section
C.alerting section
D.scrape_configs section
AnswerD

Scrape intervals are set per job within `scrape_configs`, where each job's `scrape_interval` overrides the global default. This satisfies the stem's requirement to define the interval for a specific target, since targets are grouped under a job and inherit that job's interval unless individually relabelled.

Why this answer

The scrape_interval can be defined within the scrape_config for that specific job.

141
Multi-Selectmedium

Which THREE items are standard techniques to reduce metric cardinality?

Select 3 answers
A.Aggregating raw metrics into broader categories.
B.Increasing the scrape interval.
C.Dropping unused labels via relabeling.
D.Using histograms with fewer buckets.
E.Adding unique IDs to every label.
AnswersA, C, D

Aggregating raw metrics into broader categories directly reduces cardinality by collapsing many distinct label combinations into fewer series. For example, grouping individual HTTP status codes into 2xx, 4xx and 5xx classes cuts the number of unique time series Prometheus must track, satisfying the stem's requirement for a standard cardinality-reduction technique.

Why this answer

Option A is correct because aggregating raw metrics into broader categories (for example, rolling per-endpoint series up to a per-service or per-method level) collapses many distinct label combinations into fewer time series, directly lowering cardinality. Option C is correct because dropping unused labels via relabeling (e.g., Prometheus metric_relabel_configs with action: labeldrop) removes high-variation or unnecessary label dimensions before ingestion, which is a standard cardinality-reduction technique. Option D is correct because histograms with fewer buckets reduce the number of derived series per histogram, since each bucket becomes its own time series with a le label, so cutting buckets directly cuts cardinality.

Option B does not belong because increasing the scrape interval only changes sampling frequency, not the number of distinct label sets, so cardinality is unchanged. Option E does not belong because adding unique IDs to every label does the opposite: it creates a unique series per ID and explodes cardinality.

142
MCQhard

When using 'irate', what is the impact of choosing a range vector that is too small (e.g., [10s])?

A.It captures high-frequency spikes but can be volatile.
B.It returns an error if no data points are found.
C.The result becomes a scalar.
D.The value is capped at 1.
AnswerA

A short range vector such as [10s] samples only the last two scrape points, so irate divides the freshest delta by that tiny interval. This captures high-frequency spikes but produces volatile, noisy results, satisfying the stem's stated impact of an undersized range.

Why this answer

Using a very small range vector with irate, such as [10s], means irate calculates the per-second rate based on only the last two data points within that short window. This can capture rapid changes but makes the result highly sensitive to scrape timing and outliers, leading to volatile output.

Exam trap

PCA often tests the trade-off between sensitivity and volatility when using irate with small ranges, and candidates may incorrectly assume it errors or caps values.

How to eliminate wrong answers

Option B is wrong because irate does not return an error if no data points are found; it simply returns no data for that timestamp. Option C is wrong because irate returns an instant vector, not a scalar. Option D is wrong because the value is not capped at 1; irate can return any positive value.

143
MCQhard

You need to measure the P99 latency of your service. Which PromQL function do you use on a Histogram?

A.histogram_quantile()
B.avg()
C.sum()
D.rate()
AnswerA

histogram_quantile() calculates a quantile from histogram buckets, interpolating within the bucket containing the requested rank. Applied to a histogram's le-labelled bucket counters with rate(), it returns the P99 latency estimate, which no counter or summary function provides directly.

Why this answer

histogram_quantile() is the correct PromQL function to compute quantiles (like P99) from a histogram metric. It takes a φ (phi) value between 0 and 1 and a histogram bucket series, then interpolates the quantile from the cumulative bucket counts. For P99, you would use histogram_quantile(0.99, ...).

This function is specifically designed for Prometheus histograms, which expose _bucket time series with an le label.

Exam trap

PCA often tests the confusion between aggregation functions like avg() and sum() versus quantile estimation, and candidates may mistakenly think rate() can be used directly on histograms to get percentiles, ignoring that histogram_quantile() is the only function designed for this purpose.

How to eliminate wrong answers

Option B is wrong because avg() computes the arithmetic mean of a set of instant vectors, which gives the average value, not a percentile; it cannot derive P99 from histogram buckets. Option C is wrong because sum() aggregates values by addition, which is used for total counts or sums, not for quantile estimation. Option D is wrong because rate() calculates the per-second average rate of increase for counters, which is useful for request rates but does not compute percentiles from histograms.

144
MCQmedium

Which TSDB component is responsible for ensuring data durability if the server crashes?

A.Tombstone file
B.WAL (Write-Ahead Log)
C.Head block
D.Index file
AnswerB

The write-ahead log persists incoming samples to disk before they reach in-memory blocks, so a crash can be recovered by replaying it. This satisfies the durability requirement, unlike the head block, which is volatile until flushed.

Why this answer

The Write-Ahead Log (WAL) is a crucial component in Prometheus's TSDB that ensures data durability. Before data is written to the in-memory Head block, it is first appended to the WAL on disk. If the server crashes, the WAL can be replayed to recover any data that was not yet persisted to disk.

Exam trap

PCA often tests TSDB internals, and candidates may confuse the WAL with other components like the Head block, not realizing that the WAL is the primary durability mechanism.

How to eliminate wrong answers

Option A is wrong because tombstone files record deletions, not durability. Option C is wrong because the Head block is in-memory and not durable until persisted. Option D is wrong because the index file provides indexing for queries, not crash recovery.

145
MCQhard

When evaluating a rule with offset, such as http_requests_total offset 1h, what exact time does Prometheus query?

A.It fetches data starting 1 hour in the future.
B.It calculates the moving average over the past 1 hour.
C.It delays rule evaluation by 1 hour to wait for late-arriving data.
D.It evaluates the query at the evaluation timestamp minus 1 hour.
AnswerD

The offset modifier shifts the entire query evaluation back by the specified duration, so `http_requests_total offset 1h` returns the sample value as it existed exactly one hour before the current evaluation timestamp. This satisfies the stem's requirement for the precise time Prometheus queries when an offset is applied.

Why this answer

The offset modifier shifts the evaluation time backward by the specified duration relative to the evaluation timestamp.

146
MCQmedium

You have a Prometheus alerting rule that triggers too frequently during flapping states. Which feature should you use to prevent this without silencing the alert entirely?

A.The 'resolve_timeout' parameter
B.The 'for' field
C.The 'group_wait' parameter
D.The 'inhibit_rules' block
AnswerB

The 'for' field requires the alert's condition to remain true for a specified duration before firing, so brief flapping spikes are ignored while sustained problems still alert. This suppresses transient noise without silencing the rule entirely, unlike inhibition or muting.

Why this answer

The 'for' field in a Prometheus alerting rule specifies how long the condition must be true before the alert fires. By setting a duration (e.g., '5m'), it prevents alerts from triggering during brief flapping states, as the condition must persist for that period. This reduces noise without silencing the alert entirely.

Exam trap

PCA often tests the distinction between Prometheus alerting rule parameters (like 'for') and Alertmanager configuration parameters (like 'group_wait' or 'resolve_timeout'), where candidates might confuse the two.

How to eliminate wrong answers

Option A is wrong because 'resolve_timeout' is an Alertmanager parameter that defines how long to wait before marking an alert as resolved after the condition is no longer true; it does not prevent frequent firing. Option C is wrong because 'group_wait' is an Alertmanager parameter that controls how long to wait before sending a notification group; it does not affect alert evaluation frequency. Option D is wrong because 'inhibit_rules' suppress alerts based on other alerts, which is a form of silencing, not a way to prevent flapping.

147
Multi-Selectmedium

Which TWO of the following are valid ways to modify or add labels to time series in PromQL? (Choose two)

Select 2 answers
A.label_replace()
B.label_join()
C.label_update()
D.label_drop()
E.label_add()
AnswersA, B

label_replace() rewrites labels on time series using a regex with capture groups, letting you add or modify a destination label from a source label. It operates within PromQL queries, satisfying the requirement for a valid PromQL label-modification method.

Why this answer

label_replace() (A) is a valid PromQL function that creates or modifies a label on each time series by matching a regex against a source label and writing a replacement value into a destination label, so it can both add and modify labels. label_join() (B) is also a valid PromQL function that concatenates values from multiple source labels into a single destination label, effectively adding or overwriting that label on each series. The remaining options are not real PromQL functions: label_update() (C), label_drop() (D), and label_add() (E) do not exist in the PromQL function set, so they cannot be used to modify or add labels.

Exam trap

The trap is that candidates assume PromQL has a full set of label verbs like 'label_add'/'label_drop'/'label_update' — in reality only 'label_replace()' and 'label_join()' exist, and everything else must be composed from them or from aggregation modifiers.

148
MCQhard

You want to find the maximum value of a gauge metric across all instances over a 1-hour sliding window. Which function accomplishes this?

A.max(node_memory_usage_bytes[1h])
B.max_over_time(node_memory_usage_bytes[1h])
C.topk(1, node_memory_usage_bytes[1h])
D.max_with_range(node_memory_usage_bytes, 1h)
AnswerB

max_over_time evaluates the range vector over the trailing one-hour window and returns the highest sample per series, giving the peak gauge value across all instances. The [1h] duration supplies the sliding window the stem specifies.

Why this answer

The max_over_time() function evaluates the maximum value of all data points in a specified range vector for each time series.

149
Multi-Selecteasy

Which TWO of the following are examples of metric data?

Select 2 answers
A.A full database SQL query statement.
B.Current CPU usage percentage.
C.A line of text in an access log file.
D.Total number of completed HTTP requests.
E.The stack trace of an application error.
AnswersB, D

CPU usage percentage is a numeric measurement sampled over time, which is exactly what Prometheus stores as a time series. It satisfies the stem's requirement for metric data, unlike logs or traces, because its value is quantifiable and aggregatable.

Why this answer

Metric data consists of numeric measurements captured over time, typically aggregated as counters, gauges, or histograms. Option B (Current CPU usage percentage) is correct because it is a numeric gauge value representing resource utilization at a point in time, exactly the kind of time-series measurement monitoring systems collect. Option D (Total number of completed HTTP requests) is correct because it is a numeric counter that monotonically increases as requests are served, a canonical metric used for rate and throughput calculations.

Option A (a full database SQL query statement) is not metric data; it is a text/string artifact more suited to logs or traces. Option C (a line of text in an access log file) is log data, not a numeric measurement. Option E (the stack trace of an application error) is diagnostic trace/log data, not metric data.

150
MCQeasy

Which component is responsible for executing queries written in PromQL?

A.Exporter
B.Alertmanager
C.Prometheus Server
D.Grafana
AnswerC

Prometheus Server executes PromQL queries directly against its time-series database, retrieving and aggregating metric samples on demand. This satisfies the stem's requirement precisely: PromQL is Prometheus's native query language, evaluated by the server's query engine rather than by exporters, Alertmanager, or client libraries.

Why this answer

The Prometheus server itself contains the query engine that processes PromQL expressions.

Page 1

Page 2 of 4

Page 3

All pages