|
| 1 | +.. _LADT - Overview: |
| 2 | + |
| 3 | +F5 LADT Overview |
| 4 | +================ |
| 5 | + |
| 6 | +In this lab, we'll run through an overview of the **F5 Local API Discovery Tool**. At a high level, the **F5 LADT** is: |
| 7 | + |
| 8 | +*The AST Local API Discovery Tool (LADT) is a fork of the Application Study Tool focused on analyzing data about customer APIs based on data from classic F5 BIG-IP logs.* |
| 9 | + |
| 10 | +*The LADT receives per-http-request data from F5 BIG-IP devices and stores relevant fields for periodic batch analysis. Output of the analysis is a list of likely API endpoints, whether or not they are authenticated, and the number of requests processed by each endpoint. API detection logic is based on a subset of official F5 product offerings, with some advanced functionality (e.g. schema discovery and Machine Learning analysis) excluded for performance reasons.* |
| 11 | + |
| 12 | +Example API Detection Output |
| 13 | +---------------------------- |
| 14 | + |
| 15 | +.. image:: images/api-detection-screenshot.png |
| 16 | + :width: 800 |
| 17 | + |
| 18 | +System Overview |
| 19 | +--------------- |
| 20 | + |
| 21 | +The F5 LADT relies on a specially-crafted iRule to export per-request metadata to the analysis system, running on-prem. The analysis system consists of: |
| 22 | + |
| 23 | +- Opentelemetry Collector: For receiving incoming logs, processing, and forwarding them to storage system |
| 24 | +- Clickhouse Database: For storing log data and running analysis queries |
| 25 | +- Analysis Job: Runs periodically to generate results |
| 26 | +- Grafana: For visualizing results, and system component states |
| 27 | + |
| 28 | +.. image:: images/system-overview.png |
| 29 | + :width: 800 |
| 30 | + |
| 31 | +System Prerequisites and Recommendations |
| 32 | +---------------------------------------- |
| 33 | + |
| 34 | +- Linux system with docker (or compatible) - Installation Instructions |
| 35 | +- F5 BIG-IP with logging iRule (contact your F5 Team for access) |
| 36 | +- Network connectivity (default TCP port 6514) between the BigIP and instance running LADT |
| 37 | + |
| 38 | +Minimal system specs for running the Local API Discovery Tool will depend heavily on expected traffic load. |
| 39 | + |
| 40 | +The following performance characteristics were observed with an Intel(R) Xeon(R) Gold 6138 CPU @ 2.00GHz running localized testing |
| 41 | +(single TCP+TLS connection meant to simulate a stream of data from a single BigIP Device). Actual message throughput |
| 42 | +under real world network conditions would likely be quite a bit lower. |
| 43 | + |
| 44 | +.. list-table:: Performance Characteristics |
| 45 | + :widths: 15 25 25 25 25 |
| 46 | + :header-rows: 1 |
| 47 | + |
| 48 | + * - Msg/Sec |
| 49 | + - Collector CPU Util |
| 50 | + - Clickhouse CPU Util |
| 51 | + - Collector Mem Util |
| 52 | + - Clickhouse Mem Util |
| 53 | + * - 0 |
| 54 | + - 0.5% |
| 55 | + - 0.8% |
| 56 | + - 40MiB |
| 57 | + - 546MiB |
| 58 | + * - 1 |
| 59 | + - 0.7% |
| 60 | + - 1.3% |
| 61 | + - 41.5MiB |
| 62 | + - 629MiB |
| 63 | + * - 10 |
| 64 | + - 0.8% |
| 65 | + - 1.6% |
| 66 | + - 58MiB |
| 67 | + - 629MiB |
| 68 | + * - 100 |
| 69 | + - 1.7% |
| 70 | + - 1.8% |
| 71 | + - 66MiB |
| 72 | + - 646MiB |
| 73 | + * - 1000 |
| 74 | + - 8% |
| 75 | + - 2.8% |
| 76 | + - 115MiB |
| 77 | + - 650MiB |
| 78 | + * - 10000 |
| 79 | + - 59.3% |
| 80 | + - 40% |
| 81 | + - 176MiB |
| 82 | + - 698MiB |
| 83 | + * - 20000 |
| 84 | + - 133% |
| 85 | + - 44% |
| 86 | + - 216MiB |
| 87 | + - 750MiB |
| 88 | + * - 30000 |
| 89 | + - 180% |
| 90 | + - 47% |
| 91 | + - 216MiB |
| 92 | + - 798MiB |
| 93 | + * - 40000 |
| 94 | + - 235% |
| 95 | + - 70% |
| 96 | + - 225MiB |
| 97 | + - 948MiB |
| 98 | + * - 54000 |
| 99 | + - 298% |
| 100 | + - 106% |
| 101 | + - 245MiB |
| 102 | + - 1000MiB |
| 103 | + |
| 104 | +The analysis script adds an additional ~10% CPU and 250MiB of load to the clickhouse instance while performing analysis. |
| 105 | + |
| 106 | +.. list-table:: Analysis Characteristics |
| 107 | + :widths: 25 25 |
| 108 | + :header-rows: 1 |
| 109 | + |
| 110 | + * - Analyzed Messages |
| 111 | + - Analysis Duration Sec |
| 112 | + * - 1000 |
| 113 | + - 113ms |
| 114 | + * - 10000 |
| 115 | + - 0.9s |
| 116 | + * - 10000 |
| 117 | + - 6.67s |
| 118 | + * - 20000 |
| 119 | + - 14.7s |
| 120 | + * - 1.04M |
| 121 | + - 1.12min |
| 122 | + * - 2.2M |
| 123 | + - 2.51min |
| 124 | + * - 10M |
| 125 | + - 4.06min |
| 126 | + |
| 127 | +Disk space usage likewise depends on volume, but clickhouse provides a good amount of compression (here 758 million entries are stored in ~210MiB). |
| 128 | + |
| 129 | +.. list-table:: Disk Space Usage |
| 130 | + :widths: 15 15 15 15 15 15 |
| 131 | + :header-rows: 1 |
| 132 | + |
| 133 | + * - Rows |
| 134 | + - Disk Size |
| 135 | + - Bytes Size |
| 136 | + - Compressed Size |
| 137 | + - Uncompressed Size |
| 138 | + - Ratio |
| 139 | + * - 758799480 |
| 140 | + - 210.24MiB |
| 141 | + - 220452423 |
| 142 | + - 209.25 MiB |
| 143 | + - 21.16 GiB |
| 144 | + - 0.00965486284484136 |
| 145 | + |
| 146 | +.. note:: As previously mentioned, we won't get digging into the installation details or process within this lab module. |
| 147 | + |
| 148 | + If you're interested in going down that path and learning more, please visit the `F5 LADT GitHub Repo's Installation section <https://github.com/f5devcentral/ast-api-discovery/blob/main/README.md#installation>`_ |
| 149 | + |
| 150 | +Select **Next** below for to learn how to access the F5 LADT Grafana instance in the UDF lab environment. |
0 commit comments