# Discovery

This plugin can be integrated with Pandora FMS *Discovery*.

To do this, the corresponding `.disco` package must be uploaded from the Pandora FMS library or from the console plugin system.

Once loaded, Azure Load Balancer resources can be monitored by creating *Discovery* tasks from the corresponding Cloud/Application Discovery section.

For each task, the following data will be requested in the **Azure Base** step:

- **Azure Subscription ID:** identifier of the Azure subscription where Load Balancers will be discovered.
- **Azure Tenant ID:** identifier of the Azure Active Directory tenant used by the Service Principal.
- **Azure Client ID:** application identifier of the Service Principal.
- **Azure Client Secret:** Service Principal secret.
- **Resource group:** optional filter to limit discovery to one resource group. If left empty, Load Balancers from the whole subscription are discovered.

In the **Azure Load Balancer Detailed** step, additional options can be configured:

- **Max threads:** maximum number of threads used to process the discovered Load Balancers.
- **Target agent:** target agent where all modules will be stored when agent creation per Load Balancer is not enabled.
- **Custom module prefix:** optional prefix for all generated module names.
- **Scan Load Balancers:** enables automatic Load Balancer discovery.
- **Create agent per Load Balancer:** if enabled, each Load Balancer generates its own agent. If disabled, all modules are sent to the agent indicated in **Target agent**.
- **Custom Load Balancer agent prefix:** optional prefix for agents created per Load Balancer. For example, `Azure LB ` will create agents such as `Azure LB my-load-balancer`.
- **Enable entities file re-scan interval:** enables periodic refresh of the temporary discovered entities file.
- **Re-scan entities file interval:** interval used to rebuild the entities cache when re-scan is enabled.
- **Metric time window:** time window used to query Azure Monitor metrics. It should normally match or be slightly higher than the task interval.
- **Availability metrics:** creates availability modules: `data path availability` and `health probe status`.
- **Traffic metrics:** creates traffic modules: `byte count`, `packet count`, and `SYN count`.
- **SNAT metrics:** creates SNAT modules: `allocated SNAT ports`, `used SNAT ports`, and `SNAT connection count`.
- **Backend pool host count:** creates the backend pool configured hosts count module.
- **Load Balancer count:** creates the discovered Load Balancer resource count module.
- **Azure Monitor metric interval:** Azure Monitor granularity in ISO-8601 format. Default is `PT1M`.
- **Azure API timeout:** timeout in seconds for each Azure call. If `0` or a negative value is configured, the plugin will use `30` seconds.
- **Azure API max retries:** maximum number of retries for temporary API errors, including HTTP 429 rate limiting.

Successfully completed tasks will have an execution summary with information similar to:

- **Total agents:** total number of agents generated by the task.
- **Targets up:** number of Load Balancers available or correctly discovered.
- **Targets down:** number of previously stored Load Balancers that no longer appear in the current discovery.
- **Load Balancers discovered:** number of Load Balancers discovered in the current execution.