---
schema_version: "1"
id: 3d5c7839b69a91a5864286a3d1fcaf0a47ec45619301a8a20a4de884017c5388
title: API Functional Monitoring Overview
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/api-functional-monitoring/index.md
canonical_url: https://docs.mulesoft.com/api-functional-monitoring/
source_site: docs.mulesoft.com
content_type: documentation
content_hash: c57773a66e5d193b00f8b9a62f717c8da6f068fa67d7c9f59ea6ad25ae9e910b
description: MuleSoft Documentation Site
latest: true
---
---
product: API Functional Monitoring
---

# API Functional Monitoring Overview

> For the full documentation index, see: https://docs.mulesoft.com/llms.txt

API Functional Monitoring is a component of Anypoint Platform that enables you to ensure the quality
and reliability of public and private APIs that are being used in application networks.

Developers and operators can use API Functional Monitoring to perform consistent testing of the
functional behavior and performance of APIs throughout the API lifecycle, in testing and production
environments. You can:

- Monitor Public or Private APIs from the Anypoint Monitoring UI or by using the BAT command line
  interface (BAT CLI)

- View and report on the results of monitor executions

The Functional Monitoring page with a monitor selected is shown in the following image:

![AFM page showing a selected monitor’s details](/mulesoft/current/en-us/api-functional-monitoring/_images/afm-ui-test-versions-and-schedules-new.png)

<table><tbody><tr><td><i data-value="1"></i><b>1</b></td><td>Duration of the test for the selected monitor.</td></tr><tr><td><i data-value="2"></i><b>2</b></td><td>Daily average response time in milliseconds of all tests to all endpoints. The colors in each bar indicate the breakdown of the average time for each of the steps in a test. Hover over the bar to see the breakdown details.</td></tr><tr><td><i data-value="3"></i><b>3</b></td><td>Schedule information, including when the next run is scheduled, the schedule interval, and information about the location where the tests are scheduled to run.</td></tr><tr><td><i data-value="4"></i><b>4</b></td><td>Details about the previous execution, including the method executed and the assertions.</td></tr><tr><td><i data-value="5"></i><b>5</b></td><td>A summary list of the last few executions.</td></tr><tr><td><i data-value="6"></i><b>6</b></td><td>Option to add schedules to the selected monitor.</td></tr></tbody></table>

## Functional Monitoring Concepts

Following are the concepts you need to know to use API Functional Monitoring.

### Monitors

A monitor is a repeating schedule of one or more tests. Monitors are also called test suites.

### Tests

Tests run in monitors on a defined schedule. Test cases are defined using Behavior Driven
Development (BDD) language, a common, declarative, and easy-to-use behavior-description language.

### Behavior Driven Development (BDD) Language

The BDD language is used to write tests. It is based on DataWeave and follows the “given-when-then”
approach to describe behavior in terms of conditions and expected outcomes.

### Test Suites

See [Monitors](#afm-monitors).

### Schedules

Schedules are designated intervals and durations configured in monitors for test suites to run.

### Black Box Testing

Black box testing validates the overall behavior of an API and its live dependencies as a whole,
based entirely on inputs and outputs. These tests are done without knowing or altering the API
internals &mdash and without simulation or mocking.

### White Box Testing

White box testing validates the behavior of individual APIs against the understanding of how their
internals work. As part of this type of testing, you mock and simulate dependencies, such as
back-end systems and other APIs.

### Runtime Monitoring

Runtime monitoring ensures that deployed APIs operate within the expected performance level in
production environments. Runtime monitoring uses behavioral test cases with real inputs, expected
outputs, and live dependencies.

### Private APIs

Private APIs are APIs with endpoints that are accessible only within your network inside an Anypoint
VPC.

### Public APIs

Public APIs are APIs with endpoints that are exposed to the public internet. Tests of such endpoints
are run by workers that themselves run in public locations or private locations.

### Private Locations

A private location is a Mule application that runs in an environment in CloudHub 1.0 or Cloudhub
2.0. You can run tests against APIs that are accessible only within the private location. The
private location environment might have an Anypoint VPC associated with it. You can create multiple
private locations in a single instance of Anypoint VPC.

### Public Locations

A public location is a region, or resource pool, that is shared with other MuleSoft customers.
Examples of such regions are `us-east-1`, `us-east-2`, and `eu-central-1`.

## Next Steps

Continue to [Getting Started with API Functional Monitoring](https://docs.mulesoft.com/api-functional-monitoring/afm-getting-started).

## See Also

- [API Functional Monitoring in Anypoint Platform](https://docs.mulesoft.com/api-functional-monitoring/afm-in-anypoint-platform)

- [API Functional Monitoring with the BAT CLI](https://docs.mulesoft.com/api-functional-monitoring/bat-top)
