-
Couldn't load subscription status.
- Fork 5
chore(vlab): add lgtm observability node #1051
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds support for an LGTM (Loki, Grafana, Tempo, Prometheus) observability node to the vlab environment. This enables comprehensive monitoring and logging capabilities for fabric deployments.
Key changes:
- Introduces a new
VMTypeObservabilitynode type that runs the LGTM stack - Adds configuration support for LGTM components with version management
- Implements network configuration for observability nodes with external internet access
Reviewed Changes
Copilot reviewed 39 out of 40 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| pkg/hhfab/vlabconfig.go | Adds observability VM type, network configuration, and port forwarding for LGTM services |
| pkg/hhfab/vlabrunner.go | Integrates observability VMs into the VLAB lifecycle and build process |
| pkg/fab/comp/lgtm/lgtm.go | Core LGTM component implementation with Helm chart and image management |
| pkg/fab/versions.go | Adds version specifications for LGTM components |
| api/fabricator/v1beta1/fabricator_types.go | Defines LGTM configuration types and version structures |
| api/fabricator/v1beta1/fabnode_types.go | Adds observability node role and external interface support |
| pkg/controller/fabricator_ctrl.go | Integrates LGTM installation into the reconciliation loop |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
1f99449 to
b895d06
Compare
|
You can bring the VLAB+LGTM node locally with: Once VLAB is ready you can get to Grafana on host_ip:3000 and you will have logs/metrics from the VLAB readily available, including our dashboards You can even run the new observability tests with some small hacks in the local env: Basically you need to add these entries in And run this script |
Adds support for an LGTM (Loki, Grafana, Tempo, Prometheus) observability node to the VLAB. Usage: hhfab init --dev --obs Initializes fab.yaml with an Observability type node, adds loki and prometheus targets poiting to the LGTM stack --dev also creates a well known password for Grafana Signed-off-by: Pau Capdevila <[email protected]>
b895d06 to
33a471c
Compare
|
@Frostman , I'll keep this in draft but I think it's fully functional now. Many things can be improved for sure. The whole Idea is to have an observability capable all-in-one VLAB for testing/demos. Thanks for your consideration |
|
|
||
| func redactAlloyTarget(target *alloy.Target) { | ||
| if target.BasicAuth.Password != "" { | ||
| if target.BasicAuth != nil && target.BasicAuth.Password != "" { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you please make a separate PR with it so we can merge it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| @@ -0,0 +1,201 @@ | |||
| // Copyright 2025 Hedgehog | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wasn't digging into what's done here, why is it required?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I needed that in my first iteration, otherwise I was getting failed pods or similar. But I will check if I can streamline and get rid of it
No description provided.