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

Add observability stack #124

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

Add observability stack #124

wants to merge 6 commits into from

Conversation

ssoriche
Copy link
Contributor

Observability stack for MetaCPAN

This PR uses upstream projects to provide observability for MetaCPAN. With
these tools, we can monitor the health of the application and the
infrastructure it runs on. This is the initial implementation that provides
basic monitoring and log collection.

  • feat(thanos): Add thanos for metrics storage
  • feat(prometheus): Add prometheus for metrics collection
  • feat(loki): Add Loki project for logs
  • conf(grafana): Add loki datasource
  • feat(vector-agent): Add log ingester
  • conf(kube-prometheus): Add application dashboard

Initial commit of Thanos that stores metrics results in object storage
allowing for better querying, metric compaction, and smaller prometheus
instances.

The installation uses the kube-thanos project
(https://github.com/thanos-io/kube-thanos), manifests generation uses
the `Makefile`, with application using kustomize.

As the upstream project using jsonnet for configuration, most
configuration options are in the settings.jsonnet file. Changes to the
settings, requires rerunning the `make manifests` to create the new
manifests. Commit the results to the metacpan-k8s repository.
Initial commit of prometheus that collects and displays metrics, stores
them in Thanos, and includes dashboards in Grafana.

The installation uses the kube-prometheus project
(https://github.com/prometheus-operator/kube-prometheus), manifests
generation uses the `Makefile`, with application using kustomize.

As the upstream project using jsonnet for configuration, most
configuration options are in the settings.jsonnet file. Changes to the
settings, requires rerunning the `make manifests` to create the new
manifests. Commit the results to the metacpan-k8s repository.
Initial commit of Loki that collects log data and stores them in an
object store, for display/querying in Grafana.

The installation uses the Loki project
(https://github.com/grafana/loki), manifests generation uses the
`Makefile`, with application using kustomize.

As the upstream project using helm for configuration, most
configuration options are in the values.yaml file. Changes to the
settings, requires rerunning the `make manifests` to create the new
manifests. Commit the results to the metacpan-k8s repository.
Adding this configuration enables grafana to query loki to display logs.
Initial commit of Vector Agent that collects logs from running pods and
forwards them to Loki.

The installation uses the Vector project
(https://github.com/vectordotdev/vector), manifests generation uses the
`Makefile`, with application using kustomize.

As the upstream project using helm for configuration, most
configuration options are in the values.yaml file. Changes to the
settings, requires rerunning the `make manifests` to create the new
manifests. Commit the results to the metacpan-k8s repository.
Custom dashboard consolidating the kubernetes metrics for a given
application and its logs.
Copy link
Member

@ranguard ranguard left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not that I really know how to review this - but looks plausable :)

Tiny questions on secrets (though we are also looking at 1passwd) and where the S3 bucket actually is... e.g is it a real AWS one, or a DO Object store with compat api

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