Skip to content

Commit

Permalink
Merge pull request #20 from f5devcentral/development
Browse files Browse the repository at this point in the history
Development
  • Loading branch information
clhain authored Oct 10, 2024
2 parents 270df47 + a8dcf86 commit 3705c46
Show file tree
Hide file tree
Showing 21 changed files with 228 additions and 228 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ production levels of reliability. For production/operational use cases, you can
accounting for things like high availability, enhanced security via e.g. Grafana OIDC integration, and similar. Alternatively,
the Openetlemetry Collector can be configured to send data to existing production ops monitoring tools as desired.

![](./diagrams/ui.gif)
![](./pages/assets/ui.gif)

## Getting Started

Expand Down
6 changes: 6 additions & 0 deletions pages/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
_site
.sass-cache
.jekyll-cache
.jekyll-metadata
vendor
Gemfile.lock
38 changes: 38 additions & 0 deletions pages/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
source "https://rubygems.org"
# Hello! This is where you manage which Jekyll version is used to run.
# When you want to use a different version, change it below, save the
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
#
# bundle exec jekyll serve
#
# This will help ensure the proper Jekyll version is running.
# Happy Jekylling!
# gem "jekyll", "~> 4.3.4"
gem "github-pages", "~> 232", group: :jekyll_plugins
# This is the default theme for new Jekyll sites. You may change this to anything you like.
gem "minima", "~> 2.5"
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
# gem "github-pages", group: :jekyll_plugins
# If you have any plugins, put them here!
group :jekyll_plugins do
gem "jekyll-feed", "~> 0.12"
end

# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library.
platforms :mingw, :x64_mingw, :mswin, :jruby do
gem "tzinfo", ">= 1", "< 3"
gem "tzinfo-data"
end

# Performance-booster for watching directories on Windows
gem "wdm", "~> 0.1", :platforms => [:mingw, :x64_mingw, :mswin]

# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem
# do not have a Java counterpart.
gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby]

gem 'nokogiri'
gem 'rack', '~> 2.2.4'
gem 'rspec'
49 changes: 49 additions & 0 deletions pages/_config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Welcome to Jekyll!
#
# This config file is meant for settings that affect your whole blog, values
# which you are expected to set up once and rarely edit after that. If you find
# yourself editing this file very often, consider using Jekyll's data files
# feature for the data you need to update frequently.
#
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
#
# If you need help with YAML syntax, here are some quick references for you:
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
# https://learnxinyminutes.com/docs/yaml/
#
# Site settings
# These are used to personalize your new site. If you look in the HTML files,
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
# You can create any custom variable you would like, and they will be accessible
# in the templates via {{ site.myvariable }}.

title: Application Study Tool Docs


# Build settings
theme: minima
plugins:
- jekyll-feed

# Exclude from processing.
# The following items will not be processed, by default.
# Any item listed under the `exclude:` key here will be automatically added to
# the internal "default list".
#
# Excluded items can be processed by explicitly listing the directories or
# their entries' file path in the `include:` list.
#
# exclude:
# - .sass-cache/
# - .jekyll-cache/
# - gemfiles/
# - Gemfile
# - Gemfile.lock
# - node_modules/
# - vendor/bundle/
# - vendor/cache/
# - vendor/gems/
# - vendor/ruby/

markdown: kramdown
Binary file added pages/assets/BigIP-Device-Pools.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pages/assets/BigIP-Device-TopN.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pages/assets/BigIP-Device-Virtual-Server.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pages/assets/BigIP-Device-WAF.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pages/assets/BigIP-Device-iRules.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pages/assets/BigIP-Device:Profile-HTTP.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pages/assets/BigIP-Fleet-Device-Utilization.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pages/assets/BigIP-Fleet-Inventory.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pages/assets/BigIP-Fleet-SSL-Certs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pages/assets/BigIP-Fleet-Virtual-Server.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pages/assets/BipIP-Device-Overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pages/assets/Collector-Stats.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pages/assets/ui.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 6 additions & 16 deletions pages/config_management.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ and [/services/otel_collector/receivers.yaml](/services/otel_collector/receivers
3. Manual maintenance of the Otel Collector Config files in
[/services/otel_collector/defaults](/services/otel_collector/defaults)

## Using config_helper.py (Recommended For Most Users)
### Using config_helper.py (Recommended For Most Users)
With the included python script in [/src/config_helper.py](/src/config_helper.py), AST collector
configuration is managed through 2 primary files:

Expand Down Expand Up @@ -144,21 +144,11 @@ bigip/1:
username: SOME_OVERRIDE_ACCOUNT_NAME
```
#### Run The Configuration Helper
The config helper script can be run natively or via docker from the project root directory
to merge the default and device level configs into the final OTEL Collector config as follows:
```shell
# Run the configuration generator from the project root directory
docker run --rm -it -w /app -v ${PWD}:/app --entrypoint /app/src/bin/init_entrypoint.sh python:3.12.6-slim-bookworm --generate-config
```

This will write 2 new files in the services/otel_collector directory:

* `receivers.yaml` - The final list of scraper configs and their settings.
* `pipelines.yaml` - The final pipeline configs that map receievers to output destinations
(prometheus).
When the OTEL container is run, the default configs in
[/services/otel_collector/defaults/](/services/otel_collector/defaults/) merge these files into
the final configuration the OTEL Collector needs to run correctly.
## Manual Maintenance Of Receiver and Pipeline Files
### Manual Maintenance Of Receiver and Pipeline Files
The files mentioned above can be managed directly by users if they want to skip the config_helper
script in favor of their own automation / templating. In this case, you just need to update the files:
Expand Down Expand Up @@ -192,7 +182,7 @@ Any of these files can be modified directly to update settings as desired (e.g.
logging levels).


## Manual Maintenance Of The OTEL Collector Config
### Manual Maintenance Of The OTEL Collector Config
You can also forgo all of the above config structure in favor of your own management scheme. If you're
running with the base docker-compose file, you may need to modify the commands section to point at your
own config files:
Expand Down
99 changes: 99 additions & 0 deletions pages/dashboard.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# Dashboards

We provide a variety of dashboards to help monitor your BigIP devices, these dashboards are built in Grafana which makes it super flexible to apply changes. Below you will find all the dashboards you will get access to when you deploy the application.

## Table of Contents
- [Fleet](#fleet-dashboards)
- [Inventory](#inventory)
- [Device Utilization](#device-utilization)
- [Virtual Servers](#virtual-servers)
- [SSL Certs](#ssl-certs)
- [Device](#device-dashboards)
- [Overview](#overview)
- [Top N](#top-n)
- [Pools](#pools)
- [Virtual Servers](#virtual-servers-1)
- [iRules](#irules)
- [WAF](.dashboard.)
- [Profile](#profile-dashboards)
- [HTTP](#http)
- [Stats](#collector-stats)

## Accessing the dashboards

#### View The Dashboards
Once you have deployed the application, you can access the dashboards at `http://<hostname>:3000`, the default Grafana user/pass is `admin/admin`.

* Grafana Instance with pre-configured dashboards for quick insights at the device and "fleet" levels.

#### Changing the Grafana Credentials

You can update the Grafana user/pass by changing the values of the `GF_SECURITY_ADMIN_USER` and `GF_SECURITY_ADMIN_PASSWORD` `.env` variables


### Fleet Dashboards

The fleet dashboards provide top level information of your environment

#### Inventory
![](./assets/BigIP-Fleet-Inventory.png)
*The inventory dashboard allows you to view the differences between BigIP devices in your inventory.*

#### Device Utilization
![](./assets/BigIP-Fleet-Device-Utilization.png)
*This dashboard provides a quick view on how much usage your box is receiving. To view more information about the device take a look at the [device overview dashboard](#overview).*

#### Virtual Servers
![](./assets/BigIP-Fleet-Virtual-Server.png)
*The Virtual Server dashboard provides an overview of all the virtual servers present in your inventory.*


#### SSL Certs
![](./assets/BigIP-Fleet-SSL-Certs.png)
*The SSL Certs view allows you to stay up to date on the status of your SSL certficates.*

### Device Dashboards

The device dashboards provide more grainular information about how the device is configured and how it is performing

#### Overview
![](./assets/BipIP-Device-Overview.png)
*This dashboard provides variety of metrics about the performance of the device.*
#### Top N
![](./assets/BigIP-Device-TopN.png)
*The Top N dashboard provides statistical highlights by presenting stats in a Top N, by default N is set to 10 this can be changed at top of the dashboard*
#### Pools
![](./assets/BigIP-Device-Pools.png)
*Here you can view stats pretaining to Pools and Pool members on a BigIP.*


#### Virtual Servers
![](./assets/BigIP-Device-Virtual-Server.png)
*Here you can view stats pretaining to all the virtual servers on a BigIP.*

#### iRules
![](./assets/BigIP-Device-iRules.png)
*This dashboard allows you to monitor iRule usage and performance.*

#### WAF

![](./assets/BigIP-Device-WAF.png)
*View the status of your WAF policies here.*



### Profile Dashboards

The profile dashboards dive into the different profiles configured on the devices and provide metrics about the traffic the profiles are receiving

#### HTTP

![](./assets/BigIP-Device:Profile-HTTP.png)
*This dashboard enables the user to monitor their HTTP profiles, view information pretaining to HTTP requests and responses*


### Collector Stats

You can view stats about the Collector from the scrape duration to API requests/responses

![](./assets/Collector-Stats.png)
30 changes: 29 additions & 1 deletion pages/index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
layout: home
---
<!-- Opening page that greets the user and help guide them to other pages -->
# Seven Layer Cake

### Overview
Expand All @@ -13,13 +17,37 @@ production levels of reliability. For production/operational use cases, you can
accounting for things like high availability, enhanced security via e.g. Grafana OIDC integration, and similar. Alternatively,
the Openetlemetry Collector can be configured to send data to existing production ops monitoring tools as desired.

![](../diagrams/ui.gif)
![](./assets/ui.gif)

### Table of Contents

- [Quick Start](./quickstart.md)
- [Installation](./quickstart.md#installation)
- [Configuration](./quickstart.md#configure-default-device-settings)
- [Dashboards](./dashboard.md)
- [Fleet](./dashboard.md#fleet-dashboards)
- [Inventory](./dashboard.md#inventory)
- [Device Utilization](./dashboard.md#device-utilization)
- [Virtual Servers](./dashboard.md#virtual-servers)
- [SSL Certs](./dashboard.md#ssl-certs)
- [Device](./dashboard.md#device-dashboards)
- [Overview](./dashboard.md#overview)
- [Top N](./dashboard.md#top-n)
- [Pools](./dashboard.md#pools)
- [Virtual Servers](./dashboard.md#virtual-servers-1)
- [iRules](./dashboard.md#irules)
- [WAF](.dashboard.)
- [Profile](./dashboard.md#profile-dashboards)
- [HTTP](./dashboard.md#http)
- [Stats](./dashboard.md#collector-stats)
- [Config Management Overview](./config_management.md)
- [Recommended Method](./config_management.md#using-config_helperpy-recommended-for-most-users)
- [Manual Maintenance](./config_management.md#manual-maintenance-of-receiver-and-pipeline-files)
- [Config Migration (From v0.5.0 and Earlier)](./config_migration.md)
- [Receiver Metrics Info](./receiver_metrics.md)
- [Receiver Readme](./receiver_readme.md)
- [Metric Obfuscation](./metric_obfuscation.md)
- [Example](./metric_obfuscation.md#masking-attributes-example)



Loading

0 comments on commit 3705c46

Please sign in to comment.