Skip to content
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

feat: new logging type customOutputs #229

Merged
merged 4 commits into from
Jul 31, 2024

Conversation

ralgozino
Copy link
Member

@ralgozino ralgozino commented Jul 3, 2024

Important

This PR is branched from the #228 one because there were changes to the same files, so I branched from there to avoid conflicts.
You will see changes from the PR #228 included in this one until the PR #228 is merged.

Intro

This is a set of changes that introduce a new customOutputs logging type that allows configuring the Logging stack to ship the logs to a custom (remote or not) server instead of sending them to a local OpenSearch or Loki deployment.

This new type still has the advantages of a out-of-the box integration with the rest of the distribution and sane defaults, so all logs will be scraped as before with the same logical separation (infra, ingress, kubernets, etcd, etc., i.e. Flows). The user needs to specify the Output and ClusterOutputs specs via new configuration options in the furyctl.yaml file and the rest will be taken care of.

Changes in this PR

  • added a new customOutputs logging type to the schema
  • added a new spec.distribution.modules.logging.customOutputs section for the needed fields (one for each Output and ClusterOutput spec) to configure the new type.
  • added new constraints to the schema for the new options
  • updated the kustomize base for the logging module to include the changes needed for the new type
  • added migrations for the new logging type (changing types {loki, opensearch, none} <-> customOutputs).
  • updated the schema documentation

fixes https://github.com/sighupio/product-management/issues/496

…monitoring type

This is a set of changes that allow the monitoring stack to be configured to send metrics to a remote Prometheus receiver, both with our current Prometheus monitoring type and with a new PrometheusAgent type that deploys a more minimal Prometheus intallation only for scraping and sending metrics.

- Add `remoteWrite` section to prometheus' configuration in the scheam, so Prometheus can be set up to send metrics to a remote receiver.
- Add prometheusAgent as monitoring type, as an alternative to prometheus+remoteWrite, allowing to have a "minimal" monitoring stack capable of sending metrics to a remote Prometheus receiver. Notice that this mode does not allow for querying the local Prometheus instance (so no local Grafana dashboards) or having local alerting set up.
- Add migrations for switching between Prometheus and Prometheus Agent, and to and from `none`.
- Update documentation with the new features
add a new customOutputs logging type that allows to choose where to ship
the logs via setting the .spec field of the Output and ClusterOutput
objects instead of harcoding them to Loki or OpenSearch.

- added new type to the schema
- added new customOutputs field to the spec.distribution.modules.logging
field with options to configure the outputs
- added new constraints to the schema
- updated the schema docs
- updated kustomize base for logging
- added migrations for the new logging type
@ralgozino ralgozino requested a review from nutellinoit July 3, 2024 13:06
@ralgozino ralgozino self-assigned this Jul 3, 2024
@nutellinoit nutellinoit changed the base branch from main to feat/v1.29.2 July 31, 2024 07:55
@nutellinoit nutellinoit merged commit add2271 into feat/v1.29.2 Jul 31, 2024
1 check was pending
@ralgozino ralgozino deleted the feature-logging-customOutputs branch September 6, 2024 07:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants