# 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.

### Start
Once Grafana is running it is accessible under https://cnoe.localtest.me/grafana.
Many preconfigured dashboards can be used by klicking the menu option Dashboards.

### Adding your own dashboards
The application edfbuilder/kind/stacks/core/kube-prometheus.yaml is used to import new Loki dashboards.
Examples for imported dashboards can be found in the folder edfbuilder/kind/stacks/core/kube-prometheus/dashboards.

It is possible to add your own dashboards:
Dashboards must be in JSON format. To add your own dashboard create a new ConfigMap in YAML format using onw 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 preconfigured dashboards include several dahboards for Loki and a dashboard to showcase Nginx-Ingress metrics.

## Loki

Grafana Loki is a scalable open-source log aggregation system

### Loki Overview
The application Grafana Loki is started in edfbuilder/kind/stacks/core/loki.yaml. 
Loki is started in microservices mode and contains the components ingester, distributor, querier, and query-frontend.
The Helm values file edfbuilder/kind/stacks/core/loki/values.yaml contains configuration values.

## 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. 
The Helm values file edfbuilder/kind/stacks/core/promtail/values.yaml contains configuration values.
