Will operate in the EMDC level to extract metrics and efficiently organize them. Licensed under MIT license
Storage Components: Object Storage (MinIO), Timeseries DB (TimescaleDB), Graph Store (Neo4j)Metrics Catalogue: REST API that exposes stored information and data in all storagesPull-Push Metrics Pipelines: Confluent Kafka, Prometheus, Metrics ScrapperMetrics Consumer: Kafka Consumer which receives extracted metrics
Before starting the installation, please make sure that you have a storageclass and please change the hostPaths in Persistent Volume declarations. For instance you need to create a directory called pvs and for timescaledb create a folder inside the parent dir called timescale. After that copy paste the absolute path to your PV declaration. Example
apiVersion: v1
kind: PersistentVolume
metadata:
name: timescaledb-pv-volume
labels:
type: local
spec:
storageClassName: hostpath
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/Users/panagiotiskapsalis/PycharmProjects/MARTEL-PROJECTS/ACES Deployment/pvs/timescaledb"cd config/k8s/external/storage-componentscd neo4j/standalone
bash setup.shcd timescaledb
kubectl apply -f .kubectl port-forward svc/neo4j 7474:7474kubectl port-forward svc/timescaledb 5432:5432How to build Metrics catalogue dockerfilesee documentation herecd config/k8s/aces/metrics_cataloguekubectl apply -f .kubectl port-forward svc/metrics-catalogue 8000:8002- Init the Metrics Management System using the following CURL API
curl -X 'GET' \
'http://localhost:8000/init' \
-H 'accept: application/json'cd config/k8s/external/pull-push-pipeline
cd kafkakubectl apply -f .
cd prometheusbash setup.sh
cd prom-adapterkubectl apply -f .
In this step you need to wait for kafka being healthy and the same for prometheus port forward the services with the following commands:
kubectl port-forward svc/control-center 9021:9021kubectl port-forward svc/prometheus-server 9000:80kubectl port-forward svc/control-center 9021:9021Commands to execute for the Kafka BrokerFirstly you need to connect to Kafka Broker pod for instance:
kubectl exec -it ${kafka_broker_pod_id} bashDescribe a consumer group
kafka-consumer-groups --bootstrap-server localhost:9092 --describe --group aces_metrics_consumerDescribe a topic
kafka-topics --bootstrap-server localhost:9092 --describe --topic metricsAlter a topic (change partitions)
kafka-topics --bootstrap-server localhost:9092 --alter --topic metrics --partitions 2List all topics
kafka-topics --list --bootstrap-server localhost:9092cd config/k8s/aces/metrics_consumerkubectl apply -f .