Attention Iron Bank Customers: On March 27, 2025, we are moving SBOM artifacts from the Anchore Scan job to the Build job to streamline the container hardening pipeline. If you currently download SBOMs from the Anchore Scan job, you can still get them from the Build job and from other sources, including IBFE and image attestations.
Project 'platform-one/big-bang/bigbang' was moved to 'big-bang/bigbang'. Please update any links and bookmarks that may still have the old path.
The current BB logging functionality is done with Elasticsearch, Fluentbit, and Kibana (EFK). This stack is very resource heavy, thus making it suboptimal (if not outright impossible) to use for resource-constrained environments, particularly in certain edge deployments. Promtail, Loki, and Grafana (PLG) is an alternative stack which uses significantly less resources thus making it more optimal for deployments into these types of environments.
Proposed Solution
This proposal is for the creation of a new Big Bang core logging module using the PLG stack and providing it as an alternative to the current EFK logging stack. This issue will not be responsible for changing the Jaeger/elasticsearch relationship and should focus solely on changing the logging solution.
Grafana and Fluent Bit are already part of Big Bang Core. Fluent Bit has its own Helm chart and Grafana is part of the monitoring stack with Prometheus. We would want to disable these items in Loki's Helm and have Loki connect to them as deployed in Big Bang. That allows us to switch from ELK to PLG seamlessly.
If a customer or BB has a Kibana dashboard, is there an easy transition to a Grafana dashboard or will this require a rebuild?
Will Loki work with Istio sidecar injection?
Michael McLeroychanged title from Logging package using PLG stack to Logging package using PLG stack (Loki)
changed title from Logging package using PLG stack to Logging package using PLG stack (Loki)
When switching out the logging stack to remove the need for Elasticsearch, we also need to consider the Jaeger backend of Elasticsearch. https://www.jaegertracing.io/docs/1.25/deployment/#storage-backends identifies Elastic, Cassandra, kafka as acceptable backends. The in-memory backend wouldn't work for long term storage of traces, and badger only works with all-in-one, which probably shouldn't be used for production workloads that need traces.
The alternative would be to use tempo, a tracing engine that works with the grafana stack and is queriable by Grafana. This would result in the following:
So if Jaeger is deployed, we need elasticsearchkibana and the eck operator, so the proposed solution would be to remove jaeger all to gether as a core BB product and create the two scenarios:
@runyontr appreciate the write up, going to add a few follow-up questions:
Grafana is currently bundled in with the monitoring package, will it always be safe to assume in any given cluster that it will be deployed as part of that, or would it make sense to split Grafana out into it's own separate package?
Should Loki and Promtail (and maybe even Tempo) be bundled together or separately? It is possible to use fluentbit as a log shipper, should we support that scenario or just prescribe Promtail when using Loki?