Skip to content

Commit 150460f

Browse files
authored
Merge pull request #18 from f5devcentral/develop
LADT module inclusion
2 parents e05ad36 + 2c0a216 commit 150460f

12 files changed

+355
-0
lines changed

docs/class1/module3/lab3.rst

+4
Original file line numberDiff line numberDiff line change
@@ -143,3 +143,7 @@ Available Metrics include:
143143
.. note:: One of the *best* ways to ensure you're in the know as it relates to the **F5 AST** is by having a conversation with *your F5 account team* and voicing your interest, thoughts, and opinions.
144144

145145
Unsure who's on your account team? No problem. Head over to `Get F5 <https://www.f5.com/products/get-f5>`_ and submit an inquiry mentioning the **F5 Application Study Tool**.
146+
147+
But wait, THERE'S MORE! We've added a bonus section to the UDF lab environment and this guide: **the F5 Local API Discovery Tool**.
148+
149+
Select **Next** below for a preview of this extension to the **F5 AST!**
Loading
Loading
Loading
211 KB
Loading
Loading
Loading
120 KB
Loading
Loading

docs/class1/module4/lab1.rst

+150
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
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.

docs/class1/module4/lab2.rst

+181
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
.. _LADT - Grafana Instance Access:
2+
3+
Accessing the F5 LADT Instance Dashboards
4+
=========================================
5+
6+
We've pre-provisioned an instance of F5 LADT in the UDF lab environment. It's ready for you to dive in and take a look. Just follow the instructions below!
7+
8+
Accessing F5 LADT Grafana Instance
9+
----------------------------------
10+
11+
#. From within the UDF course deployment's **LADT** System, locate and select **ACCESS**, then **Grafana**.
12+
13+
.. image:: images/udf_ladt_grafana_access.png
14+
:width: 800
15+
16+
#. Once the new browser tab has loaded, you will be presented with the self-installed F5 LADT Grafana login. Enter the following credentials and select **Log in**.
17+
18+
Username
19+
20+
.. code-block:: console
21+
22+
admin
23+
24+
Password
25+
26+
.. code-block:: console
27+
28+
11F5Networks11
29+
30+
.. image:: ../module2/images/grafana_login.png
31+
:width: 800
32+
33+
#. You'll be presented with the Grafana homepage. From here, select the hamburger menu next to **Home** in the upper left corner, then **Dashboards**
34+
35+
.. image:: images/ladt_grafana_home.png
36+
:width: 800
37+
38+
#. Once the Dashboards page has loaded, you can either expand the list of dashboards by selecting the **>** symbol next to **Local API Discovery** or selecting the **Local API Discovery** folder itself.
39+
40+
.. image:: images/ladt_dashboards.png
41+
:width: 800
42+
43+
API Detection Dashboard
44+
-----------------------
45+
46+
The **API Detection Dashboard** has three sections, as outlined below. Contract the *System Overview* and *System State Detail* sections by selecting the **v** next to each section title, as we're more interested in the *Detection Results*.
47+
48+
* System Overview
49+
50+
* Clickhouse Service Status
51+
52+
* OTel Service Status
53+
54+
* Log Analyzer Status
55+
56+
* Last Analysis Time
57+
58+
* Logs Analyzed Last Time
59+
60+
* New Logs Since Last Analysis
61+
62+
* System State Detail
63+
64+
* Analysis Settings
65+
66+
* Logs Last Processed by Host
67+
68+
* Logs Received
69+
70+
* Logs Processed at Last Analysis
71+
72+
* Last Analysis Duration
73+
74+
* CPU Utilization
75+
76+
* Memory Usage
77+
78+
* Detection Results
79+
80+
* Application Name
81+
82+
* HTTP Method
83+
84+
* Path
85+
86+
* Authentication Detected
87+
88+
* Sensitive Headers Present
89+
90+
* Sensitive Body Present
91+
92+
* Sensitive Data Types
93+
94+
* # of Requests
95+
96+
.. image:: images/api_detection_dashboard.png
97+
:width: 800
98+
99+
As detailed above, **Detection Results** is where all of the API endpoints and their detected properties will be listed. Straight away, you will be able to get a view of the number of requests an API resource has seen for a given method and whether or not sensitive data or headers have been detected.
100+
101+
ClickHouse Dashboard
102+
--------------------
103+
104+
**ClickHouse** is the software used to store logs and perform analysis queries. Its dashboard has 12 sections, which are listed below. This is not necessarily an aspect of the tool we expect students and administrators to interact with on a regular basis. However, it's a good idea to understand the scope of which metrics are captured and represented here in the event troubleshooting is required.
105+
106+
* System Metrics
107+
108+
* Nodes
109+
110+
* Memory
111+
112+
* Connections
113+
114+
* Read backoff
115+
116+
* Slow reads
117+
118+
* Queries
119+
120+
* Insert
121+
122+
* Select
123+
124+
* IO
125+
126+
* Replicas
127+
128+
* Merge
129+
130+
* Cache
131+
132+
* Parts
133+
134+
* Distributed
135+
136+
* Background pool
137+
138+
* Zookeeper
139+
140+
.. note:: Many (if not all) of the metrics found within this dashboard may be foreign and daunting if you're not already familiar with **ClickHouse** and/or databases in general.
141+
142+
If you would like to get a better understanding of their role, contextual information is available via the *information icon* to the right of each metric label. Hover over the icon to view tooltip details.
143+
144+
.. attention:: References to *clickhouse:9126* indicate the default port upon which the **ClickHouse** runs: *9126*
145+
146+
.. image:: images/clickhouse_dashboard.png
147+
:width: 800
148+
149+
OpenTelemetry Collector Dashboard
150+
---------------------------------
151+
152+
The **OpenTelemetry Collector Dashboard** contains all information pertaining to the *OTel Collector* employed in receiving, processing, and forwarding incoming logs to the storage system (ClickHouse). This dashboard contains the following eight sections:
153+
154+
There's a section dedicated to *documentation*, should you have the desire to learn more about telemetry metrics collection!
155+
156+
* Receivers
157+
158+
* Processors
159+
160+
* Exporters
161+
162+
* Collector
163+
164+
* Signal Flows
165+
166+
* RPC server/client
167+
168+
* Kubernetes
169+
170+
* Documentation
171+
172+
.. note:: As mentioned within the **ClickHouse Dashboards** portion above, you may obtain a better understanding of OTel Collector metric roles via the *information icon* to the right of each metric label. Hover over the icon to view tooltip details.
173+
174+
.. image:: images/otel_collector_dashboard.png
175+
:width: 800
176+
177+
That's a wrap for the **F5 Application Study Tool Introduction** class, folks. Check back often for updates to the guide, as we have exciting plans for future labs!
178+
179+
Our **appreciation** for *your* **time** and **energy** goes *beyond what words can convey*.
180+
181+
.. attention:: We would like to encourage you to provide feedback through your account team and also the GitHub repos, should you encounter issues or have enhancement requests!

docs/class1/module4/module4.rst

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
.. _Exploring the F5 LADT:
2+
3+
Module 4: Exploring the F5 Local API Discovery Tool
4+
===================================================
5+
6+
Here we'll provide a sneak peak at an extension of the **F5 AST** called the **F5 Local API Discovery Tool (LADT)**. The **F5 LADT** is a new development which students can explore in the UDF lab environment, and even get their hands on from the official `F5 DevCentral LADT GitHub Repo! <https://github.com/f5devcentral/ast-api-discovery>`_
7+
8+
.. note:: At the time of this lab module's publication, the UDF lab environment is not geared toward students performing installation and configuration.
9+
10+
We will be amending the lab in order to mimick that of the F5 AST portions; allowing students to either interact with a pre-installed copy and/or run through the process of installing it themselves.
11+
12+
13+
14+
Please select **Next** and proceed to the :ref:`LADT - Overview`.
15+
16+
.. toctree::
17+
:maxdepth: 1
18+
:glob:
19+
20+
lab*

0 commit comments

Comments
 (0)