What is a health check in the context of a web service?
A health check is a simple test that tells if a web service or application is running properly and ready to handle requests.
Click to reveal answer
beginner
Why is monitoring important for applications?
Monitoring helps track the performance and availability of applications so problems can be found and fixed quickly before users notice.
Click to reveal answer
beginner
Which HTTP status code usually means a service is healthy in a health check endpoint?
HTTP status code 200 means the service is healthy and responding correctly.
Click to reveal answer
intermediate
What is the difference between liveness and readiness probes?
Liveness probes check if the app is alive or stuck. Readiness probes check if the app is ready to accept traffic.
Click to reveal answer
beginner
How can Deno be used to create a simple health check endpoint?
Deno can create an HTTP server that listens on a route like '/health' and returns status 200 with a message like 'OK' to show the app is healthy.
Click to reveal answer
What HTTP status code should a health check endpoint return when the service is healthy?
A500
B200
C404
D302
✗ Incorrect
A 200 status code means the service is healthy and responding correctly.
Which of these is NOT a purpose of monitoring?
AAlerting on failures
BDetecting application errors
CMeasuring performance
DTracking user login credentials
✗ Incorrect
Monitoring does not track user login credentials; it focuses on app health and performance.
In Deno, which module helps create an HTTP server for health checks?
Astd/http/server.ts
Bfs/mod.ts
Cpath/mod.ts
Dcrypto/mod.ts
✗ Incorrect
The std/http/server.ts module is used to create HTTP servers in Deno.
What does a readiness probe check?
AIf the app is alive
BIf the app is logging errors
CIf the app is ready to accept traffic
DIf the app has enough memory
✗ Incorrect
Readiness probes check if the app is ready to accept traffic.
Which of these is a common way to monitor an application?
AUsing health check endpoints
BDeleting logs regularly
CIgnoring error messages
DDisabling alerts
✗ Incorrect
Health check endpoints are commonly used to monitor application health.
Explain how you would implement a simple health check endpoint in Deno.
Think about how to respond to a request with a success status.
You got /4 concepts.
Describe the difference between liveness and readiness probes and why both are useful.
Consider what each probe tells the system about the app's state.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of a health check endpoint in a Deno application?
easy
A. To verify if the application is running and responsive
B. To deploy the application to production
C. To increase the application's memory usage
D. To compile the Deno code into machine code
Solution
Step 1: Understand health check concept
A health check endpoint is designed to confirm that the app is alive and responding to requests.
Step 2: Identify the correct purpose
Options B, C, and D describe unrelated tasks like deployment, resource usage, or compilation, which are not health checks.
Final Answer:
To verify if the application is running and responsive -> Option A
Quick Check:
Health check = Verify app responsiveness [OK]
Hint: Health checks confirm app is alive and responding [OK]
Common Mistakes:
Confusing health checks with deployment steps
Thinking health checks improve performance directly
Mixing health checks with code compilation
2. Which of the following is the correct way to create a simple health check HTTP endpoint in Deno?
easy
A. import { serve } from "https://deno.land/std/http/server.ts";
serve(req => console.log(req), { port: 8000 });
B. import { listenAndServe } from "https://deno.land/std/http/server.ts";
listenAndServe(8000, () => console.log("OK"));
C. import { serve } from "https://deno.land/std/http/server.ts";
serve(() => console.log("OK"), { port: 8000 });
D. import { serve } from "https://deno.land/std/http/server.ts";
serve(req => new Response("OK"), { port: 8000 });
Solution
Step 1: Check correct import and usage
import { serve } from "https://deno.land/std/http/server.ts";
serve(req => new Response("OK"), { port: 8000 }); correctly imports 'serve' and returns a Response with "OK" for each request, which is a valid health check endpoint.
Step 2: Identify incorrect usage in other options
import { listenAndServe } from "https://deno.land/std/http/server.ts";
listenAndServe(8000, () => console.log("OK")); uses deprecated 'listenAndServe' and does not respond to requests properly. Options A and C use console.log instead of returning a Response, so they won't respond correctly.
Final Answer:
import { serve } from "https://deno.land/std/http/server.ts";
serve(req => new Response("OK"), { port: 8000 }); -> Option D
Quick Check:
serve + Response("OK") = Correct health endpoint [OK]
Hint: Use serve with a Response object to reply to requests [OK]
Common Mistakes:
Using console.log instead of returning Response
Using deprecated functions like listenAndServe
Not returning a response to HTTP requests
3. Given this Deno code snippet for a health check endpoint, what will be the output when accessed via HTTP?
import { serve } from "https://deno.land/std/http/server.ts";
serve(req => {
if (new URL(req.url).pathname === "/health") {
return new Response("Healthy", { status: 200 });
} else {
return new Response("Not Found", { status: 404 });
}
}, { port: 8080 });
medium
A. Response with body 'Healthy' and status 404 when URL is '/health'
B. Response with body 'Healthy' and status 200 when URL is '/health'
C. Response with body 'Not Found' and status 200 for all URLs
D. Server crashes due to syntax error
Solution
Step 1: Analyze request URL condition
The code checks if the request URL is exactly '/health'. If yes, it returns a 200 status with "Healthy".
Step 2: Understand else branch
If the URL is anything else, it returns a 404 status with "Not Found".
Final Answer:
Response with body 'Healthy' and status 200 when URL is '/health' -> Option B
Quick Check:
URL '/health' = 200 Healthy [OK]
Hint: Check URL condition to predict response status and body [OK]
Common Mistakes:
Confusing status codes for different URLs
Assuming server crashes without syntax errors
Mixing response body and status code
4. You wrote this Deno health check server code but it does not respond to requests properly. What is the error?
A. The serve function requires a port number as a string
B. The import statement is incorrect
C. The handler does not return a Response object
D. console.log is not allowed inside serve
Solution
Step 1: Check handler function
The handler function only logs to console but does not return any Response, so HTTP requests get no valid reply.
Step 2: Verify other parts
The import is correct, serve accepts an options object for port, and console.log is allowed. The main issue is missing Response return.
Final Answer:
The handler does not return a Response object -> Option C
Quick Check:
Handler must return Response [OK]
Hint: Always return a Response object in serve handler [OK]
Common Mistakes:
Forgetting to return Response in handler
Thinking console.log sends HTTP response
Misunderstanding serve function parameters
5. You want to monitor your Deno app's health and expose metrics like uptime and request count. Which approach best combines health checks and monitoring in one server?
hard
A. Create two endpoints: '/health' returns 200 OK; '/metrics' returns JSON with uptime and request count
B. Use only '/health' endpoint returning plain text 'OK' without metrics
C. Create a single endpoint that returns HTML with uptime but no status code
D. Run two separate Deno servers, one for health and one for metrics, on different ports
Solution
Step 1: Understand combined health and monitoring needs
Health checks confirm app is alive; monitoring provides metrics like uptime and request count.
Step 2: Evaluate options for best practice
Create two endpoints: '/health' returns 200 OK; '/metrics' returns JSON with uptime and request count cleanly separates concerns with '/health' for status and '/metrics' for detailed data, both accessible on one server.
Step 3: Reject less effective options
Use only '/health' endpoint returning plain text 'OK' without metrics lacks metrics, C lacks proper status code, D adds complexity by running two servers unnecessarily.
Final Answer:
Create two endpoints: '/health' returns 200 OK; '/metrics' returns JSON with uptime and request count -> Option A
Quick Check:
Separate endpoints for health and metrics = Best practice [OK]
Hint: Use separate endpoints for health and metrics on same server [OK]
Common Mistakes:
Mixing metrics and health in one endpoint without status code
Ignoring metrics in health checks
Running multiple servers unnecessarily
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.