# Telemetry technology stack

Various telemetry tools are included in the technology stack of this repository.

## kube-prometheus-stack: prometheus, grafana, dashboards

Kube-prometheus-stack contains Kubernetes manifests, Prometheus and Grafana, including preconfigured dashboards.

### Kube-prometheus-stack Overview
Grafana is an open-source monitoring solution that enables viusalization of metrics and logs.
Prometheus is an open-source monitoring and alerting system which collects metrics from services and allows the metrics to be shown in Grafana.

### Adding your own dashboards
Examples for additional preconfigured dashboards can be found in the folder [dashboards](https://forgejo.edf-bootstrap.cx.fg1.ffm.osc.live/DevFW-CICD/stacks/src/branch/development/template/stacks/monitoring/kube-prometheus/dashboards).

It is possible to add your own dashboards by putting them into the same folder.

- Dashboards must be in JSON format. To add your own dashboard create a new ConfigMap in YAML format using one of the examples as a blueprint.
- The new dashboard in JSON format has to be added as the value for data.k8s-dashboard-[...].json like in the examples.
(It is important to use a unique name for data.k8s-dashboard-[...].json for each dashboard.)

Currently the preconfigured dashboards include several examples for Loki and Nginx-Ingress metrics.

## Loki
Grafana Loki is a scalable open-source log aggregation system.

### Loki Overview
Loki is started in microservices mode and contains the components ingester, distributor, querier, and query-frontend.
It can be configured by it's helm values file.

## promtail
Grafana Promtail is an agent that ships logs to a Grafan Loki instance (log-shipper).

The application Grafana Promtail is started in edfbuilder/kind/stacks/core/promtail.yaml. 
It can also be configured by it's helm values file.
