Skip to content

Commit f3e4fd4

Browse files
author
Applciation Study Tool Builder
committed
Publish AST v0.3.0
1 parent 7b6bef1 commit f3e4fd4

File tree

6 files changed

+919
-895
lines changed

6 files changed

+919
-895
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

+5
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,8 @@ If the issue is in regards to missing data in dashboards, please also run the fo
3737
```
3838
curl 'localhost:9090/federate?match[]=%7B__name__%3D~"f5.%2A"%7D'
3939
```
40+
41+
Logs for the collector can be gathered with:
42+
```
43+
docker logs application-study-tool-otel-collector-1 --tail 1000
44+
```

README.md

+46-5
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,20 @@ docker (or compatible) - [Installation Instructions](https://docs.docker.com/eng
2525
Clone the repo or download source tarball from the [release](https://github.com/f5devcentral/application-study-tool/releases) section.
2626

2727
```shell
28+
# Clone the repo
2829
git clone https://github.com/f5devcentral/application-study-tool.git
2930
cd application-study-tool
31+
# Edit the following file with Grafana variables as required
32+
cp .env-example .env
33+
# Edit the following file with device secrets as required (see "Configure Device Secrets" below)
34+
cp .env.device-secrets-example .env.device-secrets
35+
# Edit the config file with device / connection info (see "Configure Devices To Scrape" below)
36+
vi ./config/big-ips.json
37+
# Start the tool
38+
docker-compose up
3039
```
3140

32-
#### Configure Devices To Scrape
41+
### Configure Devices To Scrape
3342
Application Study Tool includes an init container which builds an OpenTelemetry
3443
Collector Configuration file based on a provided list of BIG-IPs in JSON format.
3544

@@ -58,7 +67,7 @@ Edit config/big-ips.json to reflect your list of BIG-IPs and their access creden
5867
]
5968
```
6069

61-
#### Configure Device Secrets
70+
### Configure Device Secrets
6271
The application study tool default configuration relies on environment variables
6372
which contain device access credentials. There are a number of ways to manage and
6473
inject secrets into a container environment (modifications to the docker-compose file
@@ -75,7 +84,37 @@ BIGIP_PASSWORD_2=bar-foo123!
7584
The variable name (the part on the left of the equal sign) must match the configured
7685
value for the devices that use this password in config/big-ips.json.
7786

78-
#### Configure CA File
87+
#### Account Permissions
88+
The vast majority of telemetry data can be collected with read-only access to the BigIP. Some
89+
granular stats are only available as output to a iControl Rest 'bash' shell command, and these require
90+
read-write access. If a read-only account is used, the following metrics are unavailable:
91+
92+
```
93+
f5_virtual_server_profile_client_ssl_connection_count{}
94+
f5_virtual_server_profile_client_ssl_bytes_out_total{}
95+
f5_virtual_server_profile_http_responses_total{}
96+
f5_virtual_server_profile_http_requests_total{}
97+
f5_virtual_server_profile_client_ssl_records_out_total{}
98+
f5_plane_cpu_count{}
99+
f5_virtual_server_profile_client_ssl_insecure_handshake_rejects_total{}
100+
f5_virtual_server_profile_client_ssl_premature_disconnects_total{}
101+
f5_virtual_server_profile_client_ssl_renegotiations_total{}
102+
f5_virtual_server_profile_client_ssl_connection_max{}
103+
f5_virtual_server_profile_client_ssl_insecure_handshake_accepts_total{}
104+
f5_virtual_server_profile_client_ssl_bytes_in_total{}
105+
f5_virtual_server_profile_client_ssl_handshake_count{}
106+
f5_virtual_server_profile_client_ssl_records_in_total{}
107+
f5_virtual_server_profile_client_ssl_connection_total{}
108+
f5_policy_ip_intelligence_feed_list_count{}
109+
f5_policy_ip_intelligence_info{}
110+
f5_virtual_server_profile_client_ssl_secure_handshakes_total{}
111+
f5_policy_ip_intelligence_generation{}
112+
f5_plane_cpu_utilization_5s{}
113+
```
114+
115+
This will impact data output in several dashboards/panels (denoted with description fields indicating as such).
116+
117+
### Configure CA File
79118
AST expects a valid TLS cert bundle unless `tls_insecure_skip_verify` is
80119
set to true for each device. In order to mount and use your CA file, you must
81120
configure the docker-compose.yaml file in this directory, and set the `ca_file` parameter to the resulting path. Example:
@@ -110,7 +149,7 @@ The configuration paramteter `tls_insecure_skip_verify` defaults to false. Insta
110149
that the connection between the OTEL collector and the BIG-IP does not have secure
111150
TLS termination.
112151

113-
#### Configure Grafana
152+
### Configure Grafana
114153
The Grafana instance can be configured via environment variable using their standard
115154
[options](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#override-configuration-with-environment-variables).
116155

@@ -122,7 +161,9 @@ cp .env-example .env
122161
<edit .env with desired admin password and any other variables>
123162
```
124163

125-
#### Run Application Study Tool
164+
### Run Application Study Tool
165+
Once the above configurations have been made, the tool can be started with:
166+
126167
```
127168
docker compose up
128169
```

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v0.2.0
1+
v0.3.0

docker-compose.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ services:
4141
command: ["/bin/sh", "/app/init_entrypoint.sh"]
4242

4343
otel-collector:
44-
image: ghcr.io/f5devcentral/application-study-tool/otel_custom_collector:v0.2.0
44+
image: ghcr.io/f5devcentral/application-study-tool/otel_custom_collector:v0.3.0
4545
restart: unless-stopped
4646
volumes:
4747
- otel_collector:/etc/otel-collector-config

services/grafana/provisioning/dashboards/bigip/device/top-n.json

+9-32
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"editable": true,
1919
"fiscalYearStartMonth": 0,
2020
"graphTooltip": 0,
21-
"id": 16,
21+
"id": 9,
2222
"links": [],
2323
"panels": [
2424
{
@@ -252,6 +252,7 @@
252252
"type": "prometheus",
253253
"uid": "PBFA97CFB590B2093"
254254
},
255+
"description": "This panel requires data retrieved from a bash command. If the BigIP account used to scrape the device lacks this permission, it is expected to be blank.",
255256
"fieldConfig": {
256257
"defaults": {
257258
"color": {
@@ -355,6 +356,7 @@
355356
"type": "prometheus",
356357
"uid": "PBFA97CFB590B2093"
357358
},
359+
"description": "This panel requires data retrieved from a bash command. If the BigIP account used to scrape the device lacks this permission, it is expected to be blank.",
358360
"fieldConfig": {
359361
"defaults": {
360362
"color": {
@@ -623,32 +625,7 @@
623625
]
624626
}
625627
},
626-
"overrides": [
627-
{
628-
"__systemRef": "hideSeriesFrom",
629-
"matcher": {
630-
"id": "byNames",
631-
"options": {
632-
"mode": "exclude",
633-
"names": [
634-
"Pool: /Common/pool-1 Member: /Common/172.29.67.197:80"
635-
],
636-
"prefix": "All except:",
637-
"readOnly": true
638-
}
639-
},
640-
"properties": [
641-
{
642-
"id": "custom.hideFrom",
643-
"value": {
644-
"legend": false,
645-
"tooltip": false,
646-
"viz": true
647-
}
648-
}
649-
]
650-
}
651-
]
628+
"overrides": []
652629
},
653630
"gridPos": {
654631
"h": 8,
@@ -1322,6 +1299,7 @@
13221299
"type": "prometheus",
13231300
"uid": "PBFA97CFB590B2093"
13241301
},
1302+
"description": "This panel requires data retrieved from a bash command. If the BigIP account used to scrape the device lacks this permission, it is expected to be blank.",
13251303
"fieldConfig": {
13261304
"defaults": {
13271305
"color": {
@@ -2065,9 +2043,9 @@
20652043
"list": [
20662044
{
20672045
"current": {
2068-
"selected": false,
2069-
"text": "bigip/Edge1.f5kc.local",
2070-
"value": "bigip/Edge1.f5kc.local"
2046+
"selected": true,
2047+
"text": "bigip/Edge2.f5kc.local",
2048+
"value": "bigip/Edge2.f5kc.local"
20712049
},
20722050
"datasource": {
20732051
"type": "prometheus",
@@ -2118,11 +2096,10 @@
21182096
"from": "now-1h",
21192097
"to": "now"
21202098
},
2121-
"timeRangeUpdatedDuringEditOrView": false,
21222099
"timepicker": {},
21232100
"timezone": "browser",
21242101
"title": "Top N",
21252102
"uid": "edrjqc81ub85cc",
2126-
"version": 5,
2103+
"version": 3,
21272104
"weekStart": ""
21282105
}

0 commit comments

Comments
 (0)