Bird
Raised Fist0
Kubernetesdevops~5 mins

Prometheus for metrics collection in Kubernetes - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What is Prometheus in the context of Kubernetes?
Prometheus is an open-source tool used to collect and store metrics from Kubernetes clusters. It helps monitor the health and performance of applications and infrastructure.
Click to reveal answer
beginner
How does Prometheus collect metrics from Kubernetes?
Prometheus collects metrics by scraping HTTP endpoints exposed by Kubernetes components and applications. These endpoints provide data in a format Prometheus understands.
Click to reveal answer
beginner
What is a 'scrape target' in Prometheus?
A scrape target is any endpoint that Prometheus regularly contacts to collect metrics. In Kubernetes, these targets are often pods or services exposing metrics endpoints.
Click to reveal answer
intermediate
What role does the Prometheus Operator play in Kubernetes?
The Prometheus Operator simplifies deploying and managing Prometheus instances in Kubernetes. It automates configuration and lifecycle management using Kubernetes custom resources.
Click to reveal answer
intermediate
Why is Prometheus considered a pull-based monitoring system?
Prometheus uses a pull model where it actively scrapes metrics from targets at regular intervals, unlike push models where targets send data to the monitoring system.
Click to reveal answer
What format does Prometheus expect metrics to be exposed in?
APlain text format with specific metric syntax
BJSON format
CXML format
DBinary format
Which Kubernetes resource does the Prometheus Operator use to manage Prometheus instances?
AConfigMaps
BCustom Resource Definitions (CRDs)
CSecrets
DPods
How does Prometheus discover targets in a Kubernetes cluster?
AManually listing IP addresses
BThrough log files
CUsing DNS only
DUsing Kubernetes service discovery APIs
What is the default data storage method used by Prometheus?
ARelational database
BCloud storage
CLocal disk storage
DIn-memory only
Which protocol does Prometheus use to scrape metrics endpoints?
AHTTP
BFTP
CSSH
DSMTP
Explain how Prometheus collects and stores metrics in a Kubernetes environment.
Think about how Prometheus finds targets and what it does with the data.
You got /4 concepts.
    Describe the benefits of using the Prometheus Operator in Kubernetes.
    Focus on how it helps manage Prometheus instances.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of Prometheus in a Kubernetes environment?
      easy
      A. To deploy applications automatically
      B. To collect and store metrics data for monitoring
      C. To manage Kubernetes cluster nodes
      D. To provide a user interface for Kubernetes

      Solution

      1. Step 1: Understand Prometheus role

        Prometheus is designed to collect numerical data called metrics from applications and systems.
      2. Step 2: Identify its main function in Kubernetes

        In Kubernetes, Prometheus collects metrics to monitor app health and performance.
      3. Final Answer:

        To collect and store metrics data for monitoring -> Option B
      4. Quick Check:

        Prometheus collects metrics = A [OK]
      Hint: Prometheus = metrics collection tool [OK]
      Common Mistakes:
      • Confusing Prometheus with deployment tools
      • Thinking Prometheus manages nodes
      • Assuming Prometheus is a UI tool
      2. Which Kubernetes resource is used to tell Prometheus which services to monitor?
      easy
      A. ServiceMonitor
      B. PodMonitor
      C. ConfigMap
      D. Ingress

      Solution

      1. Step 1: Identify Prometheus monitoring resources

        Prometheus uses special Kubernetes custom resources to know what to watch.
      2. Step 2: Recognize ServiceMonitor's role

        ServiceMonitor tells Prometheus which Kubernetes services to scrape metrics from.
      3. Final Answer:

        ServiceMonitor -> Option A
      4. Quick Check:

        ServiceMonitor selects services for Prometheus [OK]
      Hint: ServiceMonitor = tells Prometheus what to watch [OK]
      Common Mistakes:
      • Confusing PodMonitor with ServiceMonitor
      • Using ConfigMap for monitoring targets
      • Thinking Ingress controls Prometheus scraping
      3. Given this snippet of a ServiceMonitor YAML, what is the scrape interval Prometheus will use?
      apiVersion: monitoring.coreos.com/v1
      kind: ServiceMonitor
      metadata:
        name: example-monitor
      spec:
        endpoints:
        - port: web
          interval: 15s
        selector:
          matchLabels:
            app: example
      medium
      A. 5 seconds
      B. 30 seconds
      C. 15 seconds
      D. 1 minute

      Solution

      1. Step 1: Locate the interval field in YAML

        The interval is set under endpoints as 'interval: 15s'.
      2. Step 2: Understand interval meaning

        This means Prometheus scrapes metrics every 15 seconds from the specified port.
      3. Final Answer:

        15 seconds -> Option C
      4. Quick Check:

        interval: 15s means 15 seconds [OK]
      Hint: Check 'interval' value under endpoints [OK]
      Common Mistakes:
      • Ignoring the interval field and guessing default
      • Confusing seconds with minutes
      • Assuming interval is global, not per endpoint
      4. You created a ServiceMonitor but Prometheus is not scraping metrics from your service. Which of these is a likely cause?
      medium
      A. The ServiceMonitor selector labels do not match the service labels
      B. The Prometheus server is not running on the cluster
      C. The service port is not exposed in the ServiceMonitor endpoints
      D. All of the above

      Solution

      1. Step 1: Check label matching

        If ServiceMonitor selector labels don't match service labels, Prometheus won't find the service.
      2. Step 2: Verify Prometheus server status and endpoint config

        Prometheus must be running and the service port must be correctly specified in endpoints to scrape metrics.
      3. Final Answer:

        All of the above -> Option D
      4. Quick Check:

        Any mismatch or missing config stops scraping [OK]
      Hint: Check labels, server status, and endpoints all match [OK]
      Common Mistakes:
      • Only checking one cause and ignoring others
      • Assuming Prometheus always runs by default
      • Forgetting to expose correct port in ServiceMonitor
      5. You want Prometheus to scrape metrics from multiple services with different scrape intervals. How should you configure this in Kubernetes?
      hard
      A. Create separate ServiceMonitor resources for each service with their specific intervals
      B. Set a global scrape interval in Prometheus config and ignore ServiceMonitor intervals
      C. Create one ServiceMonitor with multiple endpoints, each having its own interval
      D. Use a ConfigMap to list all services and intervals for Prometheus

      Solution

      1. Step 1: Understand ServiceMonitor scope

        Each ServiceMonitor targets services with specific scrape configs; intervals are per endpoint.
      2. Step 2: Manage different intervals

        To have different intervals per service, create separate ServiceMonitors with their own intervals.
      3. Step 3: Why not other options?

        One ServiceMonitor with multiple endpoints cannot set different intervals per service easily; global config overrides intervals; ConfigMap does not control scraping targets.
      4. Final Answer:

        Create separate ServiceMonitor resources for each service with their specific intervals -> Option A
      5. Quick Check:

        Separate ServiceMonitors allow different intervals [OK]
      Hint: Use separate ServiceMonitors for different intervals [OK]
      Common Mistakes:
      • Trying to set different intervals in one ServiceMonitor
      • Ignoring ServiceMonitor intervals in favor of global config
      • Using ConfigMap incorrectly for scraping targets