Bird
Raised Fist0
Kubernetesdevops~20 mins

Alerting with Prometheus Alertmanager in Kubernetes - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Alertmanager Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
Prometheus Alertmanager Configuration Reload
You updated the Alertmanager configuration file alertmanager.yml in your Kubernetes cluster. Which command will correctly reload the Alertmanager configuration without restarting the pod?
Akubectl exec -n monitoring alertmanager-0 -- kill -SIGTERM 1
Bkubectl rollout restart deployment alertmanager -n monitoring
Ckubectl exec -n monitoring alertmanager-0 -- kill -HUP 1
Dkubectl delete pod -n monitoring alertmanager-0
Attempts:
2 left
💡 Hint
Sending the HUP signal to the Alertmanager process triggers a config reload.
🧠 Conceptual
intermediate
1:30remaining
Understanding Alertmanager Routing Tree
In Alertmanager, what is the purpose of the route section in the configuration file?
ATo define how alerts are grouped and sent to different receivers based on labels
BTo specify the storage backend for alert data
CTo configure Prometheus scrape intervals
DTo set the CPU and memory limits for Alertmanager pods
Attempts:
2 left
💡 Hint
Think about how alerts get matched and delivered.
Troubleshoot
advanced
2:00remaining
Alertmanager Not Sending Notifications
You notice that Alertmanager is not sending notifications to your Slack channel despite alerts firing. Which of the following is the most likely cause?
AThe Slack webhook URL is missing or incorrect in the receiver configuration
BPrometheus scrape interval is too low
CAlertmanager pod is running with insufficient CPU resources
DThe Kubernetes cluster has no internet access
Attempts:
2 left
💡 Hint
Check the receiver configuration for external service URLs.
🔀 Workflow
advanced
2:30remaining
Setting Up Alertmanager with Multiple Receivers
You want to send critical alerts to both email and PagerDuty, but non-critical alerts only to email. Which Alertmanager configuration snippet correctly implements this routing?
Kubernetes
route:
  receiver: 'email'
  routes:
  - match:
      severity: 'critical'
    receiver: 'pagerduty'
    continue: true
receivers:
  - name: 'email'
    email_configs:
    - to: 'team@example.com'
  - name: 'pagerduty'
    pagerduty_configs:
    - service_key: 'your-service-key'
AThe snippet sends non-critical alerts only to PagerDuty
BThe snippet sends only critical alerts to PagerDuty and ignores email
CThe snippet sends all alerts only to PagerDuty
DThe snippet sends all alerts to email and critical alerts also to PagerDuty
Attempts:
2 left
💡 Hint
The top-level receiver is the default for unmatched alerts.
Best Practice
expert
3:00remaining
Best Practice for Alertmanager High Availability
Which approach is best to ensure Alertmanager remains available and does not lose alerts during pod restarts or failures in a Kubernetes environment?
AUse a ConfigMap for Alertmanager config and restart pods on every config change without replicas
BRun multiple Alertmanager replicas with a shared persistent volume for configuration and use clustering
CRun a single Alertmanager pod with frequent restarts to refresh configuration
DDisable Alertmanager clustering and rely on Prometheus to resend alerts
Attempts:
2 left
💡 Hint
Think about avoiding single points of failure and data loss.

Practice

(1/5)
1. What is the main role of Prometheus Alertmanager in Kubernetes monitoring?
easy
A. To collect metrics from Kubernetes nodes
B. To send notifications when Prometheus detects alerts
C. To store logs from containers
D. To deploy applications automatically

Solution

  1. Step 1: Understand Prometheus and Alertmanager roles

    Prometheus collects metrics and detects alerts based on rules.
  2. Step 2: Identify Alertmanager's function

    Alertmanager receives alerts from Prometheus and sends notifications to users or systems.
  3. Final Answer:

    To send notifications when Prometheus detects alerts -> Option B
  4. Quick Check:

    Alertmanager = Notification sender [OK]
Hint: Alertmanager handles alert notifications, not metric collection [OK]
Common Mistakes:
  • Confusing Alertmanager with Prometheus server
  • Thinking Alertmanager collects metrics
  • Assuming Alertmanager deploys apps
2. Which of the following is the correct YAML snippet to define an email receiver named 'team-email' in Alertmanager?
easy
A. receivers: - name: team-email email_configs: - to: 'team@example.com'
B. receivers: - team-email: email: 'team@example.com'
C. receiver: name: team-email email: 'team@example.com'
D. receivers: - name: team-email slack_configs: - channel: '#alerts'

Solution

  1. Step 1: Review Alertmanager receiver syntax

    Receivers are defined under 'receivers' list with 'name' and config type like 'email_configs'.
  2. Step 2: Match correct YAML structure

    receivers: - name: team-email email_configs: - to: 'team@example.com' correctly uses 'receivers', 'name', and 'email_configs' with 'to' field.
  3. Final Answer:

    Correct YAML with 'receivers', 'name', and 'email_configs' -> Option A
  4. Quick Check:

    Receiver YAML uses 'name' and 'email_configs' [OK]
Hint: Receiver configs use 'name' and specific config like 'email_configs' [OK]
Common Mistakes:
  • Using 'receiver' instead of 'receivers'
  • Incorrect nesting of email fields
  • Confusing slack_configs with email_configs
3. Given this Alertmanager config snippet, what will happen when multiple alerts fire simultaneously?
route:
  group_by: ['alertname']
  receiver: 'team-email'
receivers:
  - name: 'team-email'
    email_configs:
      - to: 'team@example.com'
medium
A. Alerts with the same 'alertname' will be grouped into one notification
B. Each alert will send a separate email regardless of grouping
C. No alerts will be sent because 'group_wait' is missing
D. Alerts will be sent only to Slack, not email

Solution

  1. Step 1: Understand 'group_by' in Alertmanager route

    'group_by' groups alerts by specified labels; here, alerts with same 'alertname' are grouped.
  2. Step 2: Check receiver and notification method

    Receiver 'team-email' uses email_configs, so grouped alerts send one email per alertname.
  3. Final Answer:

    Alerts with the same 'alertname' will be grouped into one notification -> Option A
  4. Quick Check:

    'group_by' controls alert grouping [OK]
Hint: 'group_by' label controls alert grouping in notifications [OK]
Common Mistakes:
  • Assuming each alert sends separate email
  • Thinking 'group_wait' is required to send alerts
  • Confusing receiver type with Slack
4. You configured Alertmanager but no notifications are sent. Which of these is a likely cause based on this snippet?
receivers:
  - name: 'team-email'
    email_configs:
      - to: 'team@example.com'
route:
  receiver: 'team-email'
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 1h
medium
A. Alertmanager does not support email notifications
B. Incorrect 'group_by' label causes no alerts
C. Receiver name does not match route receiver
D. Missing SMTP server configuration in Alertmanager

Solution

  1. Step 1: Check email notification requirements

    Email notifications require SMTP server settings in Alertmanager config, not shown here.
  2. Step 2: Verify receiver and route match

    Receiver name 'team-email' matches route receiver, so routing is correct.
  3. Final Answer:

    Missing SMTP server configuration in Alertmanager -> Option D
  4. Quick Check:

    Email needs SMTP setup to send alerts [OK]
Hint: Email alerts need SMTP server configured in Alertmanager [OK]
Common Mistakes:
  • Assuming 'group_by' label stops alerts
  • Thinking receiver name mismatch causes no alerts here
  • Believing Alertmanager can't send emails
5. You want to avoid alert spam by grouping alerts by both 'alertname' and 'severity', and send notifications to Slack channel '#alerts'. Which Alertmanager route and receiver config is correct?
hard
A. route: group_by: ['severity'] receiver: 'email-team' receivers: - name: 'email-team' slack_configs: - channel: '#alerts'
B. route: group_by: ['alertname'] receiver: 'slack-notifications' receivers: - name: 'slack-notifications' email_configs: - to: '#alerts'
C. route: group_by: ['alertname', 'severity'] receiver: 'slack-notifications' receivers: - name: 'slack-notifications' slack_configs: - channel: '#alerts' send_resolved: true
D. route: group_by: ['alertname', 'severity'] receiver: 'email-team' receivers: - name: 'email-team' email_configs: - to: 'team@example.com'

Solution

  1. Step 1: Set grouping labels in route

    To group alerts by 'alertname' and 'severity', list both in 'group_by'.
  2. Step 2: Configure Slack receiver correctly

    Receiver named 'slack-notifications' uses 'slack_configs' with channel '#alerts' and 'send_resolved' true.
  3. Final Answer:

    Route groups by alertname and severity; receiver sends Slack messages to #alerts -> Option C
  4. Quick Check:

    Group by multiple labels and use correct receiver config [OK]
Hint: Group by multiple labels and match receiver type to notification [OK]
Common Mistakes:
  • Using email_configs for Slack notifications
  • Grouping by only one label when two needed
  • Mismatch between route receiver and receiver name