Developers often can’t control API downtime, but they can certainly monitor for it. Yet, sending periodic pings to a service is only one of many ways to use API monitoring. To avoid common API headaches, you can apply monitoring principles across the entire API lifecycle, starting before you’ve written a single line of code.
Design and Development: A Time to Prepare Your Tests
It may seem strange to monitor an API before it’s built. The early phase of the API lifecycle is a good time to plan for future monitoring. The tests you write at this point can also help ensure you deploy the same API you’ve designed.
If you’re following API design best practices you’ll thoughtfully plan endpoints and response data for your API. You might codify the choices you make in an API description, such as OpenAPI. During the design phase you can also define how each endpoint will be monitored. For example, what response code do you expect on success and what data will be present?
Once you set up API monitors for the work in progress, you can develop the API to match your design. As you build, run your monitors against your staging servers to ensure they pass before moving your project intro production.
Production: Know Your API Performance
Whether or not you create tests before launching your API, monitors are even more important for your production services. You can run periodic tests of the live API and review the analytics. Finally, you should trigger notifications or actions based upon anomalies in your API performance data.
Your most basic—and critical—failure is when your API is non-responsive. API monitoring will help you discover unreachable APIs, often before a consumer sends in a bug report. In these high priority situations, you’ll want to notify your operations team so they can investigate.
A simple uptime check can catch inadvertent downtime. However, more subtle issues are possible with APIs:
- Increased latency
- Non-200 response codes
- Improperly formatted data
- Authentication and authorization errors
Robust monitoring will allow you to find and respond to these issues with APIs, regardless of their stage in the lifecycle.
Maintenance: Monitor Your API Updates
APIs will rarely run indefinitely without change. Even the best design will need to be adapted in the future. During this maintenance and update of your API there is greater risk of breaking changes. Your monitors can help you catch these accidents before they’re made public.
Include API monitoring in your workflow whenever you make changes to your API. You can run your production tests against a development server to ensure the updated API is running as expected. Good monitors will catch updated fields, for example. You don’t want API consumers to expect one data type and suddenly receive another.
The maintenance stage is also a good time to update your monitors. You can add new tests for any added endpoints. At the same time, evaluate your coverage of existing endpoints to see whether there are uncovered scenarios to be added.
APIs provide a lot of surface area for errors. Include monitoring at every point in the API lifecycle, so you can catch mistakes while they’re still small.