Bird
Raised Fist0
Dockerdevops~20 mins

Grafana dashboards for containers in Docker - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Grafana Dashboard Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
1:30remaining
What is the output of this Docker command for Grafana container logs?
You run the command docker logs grafana_container --tail 3. The last three log lines are:

t=2024-06-01T12:00:00Z lvl=info msg="Starting Grafana"
t=2024-06-01T12:00:01Z lvl=info msg="HTTP Server Listen"
t=2024-06-01T12:00:02Z lvl=warn msg="Data source not found"


What will be the exact output of the command?
Docker
docker logs grafana_container --tail 3
A
Starting Grafana
HTTP Server Listen
Data source not found
B
t=2024-06-01T12:00:00Z lvl=info msg="Starting Grafana"
t=2024-06-01T12:00:01Z lvl=info msg="HTTP Server Listen"
t=2024-06-01T12:00:02Z lvl=warn msg="Data source not found"
CError: No such container: grafana_container
D
t=2024-06-01T12:00:00Z lvl=info msg="Starting Grafana"
t=2024-06-01T12:00:01Z lvl=info msg="HTTP Server Listen"
Attempts:
2 left
💡 Hint
The --tail option limits the number of log lines shown, but the output includes full log lines.
❓ Configuration
intermediate
2:00remaining
Which Docker Compose snippet correctly sets up Grafana with Prometheus as a data source?
You want to run Grafana and Prometheus containers together. Grafana should connect to Prometheus at http://prometheus:9090. Which Docker Compose service configuration for Grafana is correct?
Docker
version: '3.8'
services:
  prometheus:
    image: prom/prometheus
    ports:
      - 9090:9090
  grafana:
    image: grafana/grafana
    ports:
      - 3000:3000
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin
    depends_on:
      - prometheus
    # Which environment variable below correctly sets Prometheus as data source URL?
A
environment:
  - GF_DATASOURCE_PROMETHEUS_URL=http://prometheus:9090
B
environment:
  - GF_SECURITY_ADMIN_USER=prometheus
C
environment:
  - GF_DATASOURCE_URL=http://prometheus:9090
D
environment:
  - GF_SERVER_HTTP_PORT=9090
Attempts:
2 left
💡 Hint
Grafana uses environment variables starting with GF_DATASOURCE_ to configure data sources.
🔀 Workflow
advanced
2:30remaining
What is the correct order to create a Grafana dashboard for Docker container metrics?
Arrange these steps in the correct order to set up a Grafana dashboard that shows Docker container CPU and memory usage:
A3,1,2,4
B2,1,3,4
C1,3,2,4
D1,2,3,4
Attempts:
2 left
💡 Hint
You need data collection before adding data source and dashboards.
❓ Troubleshoot
advanced
2:00remaining
Why does Grafana show 'Data source not found' error for Prometheus?
You have Grafana and Prometheus running in Docker containers. Grafana shows an error: Data source not found when trying to load Prometheus metrics. Which is the most likely cause?
AGrafana admin password is incorrect
BGrafana container port 3000 is not exposed
CPrometheus container is not running or unreachable from Grafana container
DPrometheus is running but has no metrics to serve
Attempts:
2 left
💡 Hint
Grafana needs network access to Prometheus to find the data source.
✅ Best Practice
expert
3:00remaining
Which practice is best for maintaining Grafana dashboards for multiple Docker environments?
You manage Grafana dashboards for several Docker environments (dev, staging, production). What is the best practice to keep dashboards consistent and easy to update?
AExport dashboards as JSON files and manage them with version control
BManually edit dashboards in Grafana UI for each environment
CUse different Grafana instances with separate dashboards for each environment
DStore dashboards only inside Docker container volumes without backups
Attempts:
2 left
💡 Hint
Think about automation and tracking changes.

Practice

(1/5)
1. What is the primary purpose of using Grafana dashboards for Docker containers?
easy
A. To write Dockerfiles automatically
B. To visually monitor container health and performance metrics
C. To build Docker images faster
D. To deploy containers without configuration

Solution

  1. Step 1: Understand Grafana's role

    Grafana is a tool designed to visualize data, especially metrics and logs.
  2. Step 2: Connect Grafana to container metrics

    When connected to data sources like Prometheus, Grafana shows container health and performance visually.
  3. Final Answer:

    To visually monitor container health and performance metrics -> Option B
  4. Quick Check:

    Grafana = Visual monitoring [OK]
Hint: Grafana = Visual dashboards for metrics [OK]
Common Mistakes:
  • Confusing Grafana with image building tools
  • Thinking Grafana deploys containers
  • Assuming Grafana writes Dockerfiles
2. Which Docker command correctly runs Grafana exposing it on port 3000?
easy
A. docker run -d -p 80:3000 grafana/grafana
B. docker run -d -p 8080:3000 grafana/grafana
C. docker run -d -p 3000:8080 grafana/grafana
D. docker run -d -p 3000:3000 grafana/grafana

Solution

  1. Step 1: Identify Grafana default port

    Grafana listens on port 3000 inside the container.
  2. Step 2: Map host port 3000 to container port 3000

    The correct syntax is -p hostPort:containerPort, so -p 3000:3000 exposes Grafana on host port 3000.
  3. Final Answer:

    docker run -d -p 3000:3000 grafana/grafana -> Option D
  4. Quick Check:

    Port mapping = host:container [OK]
Hint: Map host port 3000 to container port 3000 [OK]
Common Mistakes:
  • Swapping host and container ports
  • Using wrong ports like 8080 or 80
  • Not running container in detached mode
3. Given this Docker command, what will happen when you access http://localhost:3000?
docker run -d -p 3000:3000 grafana/grafana
medium
A. You will see the Docker container logs
B. You will get a 404 Not Found error
C. You will see the Grafana login page
D. The browser will fail to connect

Solution

  1. Step 1: Understand port mapping

    Port 3000 on localhost is forwarded to Grafana's port 3000 inside the container.
  2. Step 2: Accessing localhost:3000 loads Grafana UI

    Grafana serves its web interface on port 3000, so the login page appears.
  3. Final Answer:

    You will see the Grafana login page -> Option C
  4. Quick Check:

    Port 3000 mapped = Grafana UI loads [OK]
Hint: Port 3000 access shows Grafana login [OK]
Common Mistakes:
  • Expecting error pages instead of UI
  • Confusing logs with web interface
  • Assuming no connection due to missing config
4. You ran Grafana with docker run -d -p 3000:3000 grafana/grafana but cannot access the dashboard at http://localhost:3000. What is a likely cause?
medium
A. Grafana container is not running or crashed
B. You used the wrong image name
C. Port 3000 is not exposed inside the container
D. Docker daemon is not installed

Solution

  1. Step 1: Check container status

    If the container stopped or crashed, the port won't be accessible.
  2. Step 2: Verify container is running

    Use docker ps to confirm Grafana container is active.
  3. Final Answer:

    Grafana container is not running or crashed -> Option A
  4. Quick Check:

    Container running = Dashboard accessible [OK]
Hint: Check container status with docker ps [OK]
Common Mistakes:
  • Assuming wrong image name without checking
  • Thinking port exposure inside container is missing
  • Ignoring Docker daemon status
5. You want to monitor multiple Docker containers' CPU and memory usage in Grafana. Which setup step is essential before creating dashboards?
hard
A. Connect Grafana to a metrics data source like Prometheus collecting container stats
B. Install Grafana plugins inside each container
C. Run Grafana with extra CPU and memory limits
D. Expose all container ports to the host

Solution

  1. Step 1: Understand Grafana data source role

    Grafana itself does not collect metrics; it visualizes data from sources like Prometheus.
  2. Step 2: Set up Prometheus to scrape container metrics

    Prometheus collects CPU and memory stats from Docker containers and provides data to Grafana.
  3. Step 3: Connect Grafana to Prometheus

    Configure Grafana to use Prometheus as a data source to build dashboards.
  4. Final Answer:

    Connect Grafana to a metrics data source like Prometheus collecting container stats -> Option A
  5. Quick Check:

    Data source connection = Dashboard data [OK]
Hint: Grafana needs data source like Prometheus first [OK]
Common Mistakes:
  • Thinking Grafana collects metrics alone
  • Installing plugins inside containers unnecessarily
  • Exposing all ports without reason
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard