KI für DevOps-Engineers – Teil 1: Die Grundlagen von DevOps-KI
DevOps ist ein entscheidender Erfolgsfaktor in der Softwareentwicklung, und wir sind definitiv alle auf die eine oder andere Weise auf KI gestoßen. Eine
In der sich ständig weiterentwickelnden Landschaft der Softwareentwicklung ist die Notwendigkeit der Observabilität von größter Bedeutung. Da Anwendungen und Infrastrukturen immer komplexer werden, ist die Fähigkeit, ihr Verhalten in Echtzeit zu verstehen, zu überwachen und Fehler zu beheben, eine grundlegende Anforderung. An dieser Stelle kommen Grafana Cloud und OpenTelemetry als dynamische Tools ins Spiel.
In diesem Blogbeitrag werden wir die leistungsstarke Synergie zwischen Grafana Cloud und OpenTelemetry untersuchen. Wir werden uns damit befassen, wie man Daten an Grafana Cloud sendet, um das bahnbrechende Potenzial von OpenTelemetry für Monitoring, Tracing und Logging zu nutzen.
Egal, ob Sie ein erfahrener Entwickler sind, der seinen Observabilitäts-Stack verbessern möchte, oder ein Neuling in der Welt des Monitoring, Tracing und Logging, dieser Blog-Beitrag soll Ihnen einen Startpunkt und ein praktisches Beispiel zur Nutzung von OpenTelemetry Daten in Grafana Cloud bieten.
Grafana Cloud ist eine umfassende Observabilitäts-Plattform, die es Unternehmen ermöglicht, tiefe Einblicke in ihre Anwendungen und Infrastruktur zu gewinnen. Sie ist aus dem Open-Source-Projekt Grafana hervorgegangen und erweitert die Fähigkeiten von Grafana, um eine einheitliche, cloudbasierte Lösung für die Überwachung, Visualisierung und Alarmierung zu bieten. Es bietet einen für immer kostenlosen Plan für den Einstieg in die Observabilität.
OpenTelemetry ist ein Open-Source-Projekt mit dem Ziel, die Erfassung von Observabilitätsdaten in Softwareanwendungen zu standardisieren und zu vereinfachen.Es stellt ein Framework und eine Reihe von APIs zur Verfügung, um Telemetriedaten zu instrumentieren, zu sammeln und zu übertragen, darunter Metriken, Traces und Logs. OpenTelemetry ist eine wichtige Komponente in modernen Observabilitäts- und Monitoring-Lösungen, die es Entwicklern ermöglicht, Einblicke in das Verhalten und die Leistung ihrer Anwendungen und Systeme zu gewinnen.
Um zu sehen, wie Grafana mit OpenTelemetry integriert, können wir die bereits instrumentierte Microservice-Demo-Anwendung verwenden, die von OpenTelemetry zur Verfügung gestellt wird und die von nun an als OTel-Demo bezeichnet wird.
Sobald Sie die Voraussetzungen erfüllt haben, können wir damit beginnen, das OpenTelemetry Helm Repo hinzuzufügen:
1helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
Bevor wir das Helm-Chart deployen können, müssen wir ein paar Dinge besorgen, die im Grafana Cloud Portal zu finden sind (um auf das Portal zuzugreifen, können Sie auf einen der Links oben auf der Landing Page von Grafana Cloud klicken).
Die folgenden URLs und Usernamen finden Sie auf der Details-Seite der entsprechenden Integration:
<PROMETHEUS-URL>
.<PROMETHEUS-USER-ID>
(z.B. 12345).<TEMPO-URL-WITHOUT-HTTPS>
ab, indem Sie den Hostnamen und den Port extrahieren (z. B. tempo-us-central1.grafana.net:443).<TEMPO-USER-ID>
.<LOKI-URL>
und hängen Sie /loki/api/v1/push
an (z.B. https://logs-prod-us-central1.grafana.net/loki/api/v1/push).<LOKI-USER-ID>
ein.<ACCESS-POLICY-TOKEN>
.Mit allen URLs, Usernamen und dem Token in unserem Besitz können wir eine maßgeschneiderte Datei values.yaml
für unser Helm Deployment erstellen und alles innerhalb von < >
durch die richtigen Werte ersetzen.
1default:
2 envOverrides:
3 - name: 'OTEL_COLLECTOR_NAME'
4 value: <KUBERNETES-NODE-NAME> # kubectl get nodes
5
6opentelemetry-collector:
7 mode: daemonset
8 presets:
9 logsCollection:
10 enabled: true
11 includeCollectorLogs: false
12 config:
13 extensions:
14 basicauth/traces:
15 client_auth:
16 username: <TEMPO-USER-ID>
17 password: <ACCESS-POLICY-TOKEN>
18 basicauth/metrics:
19 client_auth:
20 username: <PROMETHEUS-USER-ID>
21 password: <ACCESS-POLICY-TOKEN>
22 basicauth/logs:
23 client_auth:
24 username: <LOKI-USER-ID>
25 password: <ACCESS-POLICY-TOKEN>
26
27 exporters:
28 otlp:
29 endpoint: <TEMPO-URL-WITHOUT-HTTPS>
30 tls:
31 insecure: false
32 auth:
33 authenticator: basicauth/traces
34
35 prometheusremotewrite:
36 endpoint: <PROMETHEUS-URL>
37 auth:
38 authenticator: basicauth/metrics
39
40 loki:
41 endpoint: <LOKI-URL>
42 auth:
43 authenticator: basicauth/logs
44
45 processors:
46 spanmetrics:
47 metrics_exporter: prometheusremotewrite
48
49 service:
50 extensions: [ basicauth/traces, basicauth/metrics, basicauth/logs, health_check , memory_ballast ]
51 pipelines:
52 metrics:
53 exporters: [prometheusremotewrite]
54 logs:
55 receivers: [filelog]
56 exporters: [loki]
Wenn alles fertig ist, können wir unser Helm-Chart deployen:
1helm upgrade --install my-otel-demo open-telemetry/opentelemetry-demo --values values.yaml
Jetzt können wir den Explorer-Tap in Grafana Cloud verwenden, um unsere Logs, Traces und Metriken einzusehen und das Frontend der Demo-Anwendung, die wir gerade deployed haben, zugänglich zu machen:
1kubectl port-forward svc/my-otel-demo-frontendproxy 8080:8080
Wechseln Sie im Explorer zur Datenquelle Loki und untersuchen Sie die Logs:
Wechseln Sie auf dem Explorer zur Prometheus-Datenquelle und untersuchen Sie die Metriken:
Wechseln Sie im Explorer zur Datenquelle Tempo und untersuchen Sie die Traces:
In der rechten oberen Ecke von Grafana Cloud können wir das "+" Zeichen verwenden, um neue Dashboards hinzuzufügen. Wir können vordefinierte Dashboards wie das Dashboard "HTTP Metrics OpenTelemetry" importieren, indem wir die ID: 18860
verwenden.
In diesem Blogbeitrag haben wir die folgenden Themen behandelt:
Sie interessieren sich für unsere Trainings oder haben einfach eine Frage, die beantwortet werden muss? Sie können uns jederzeit kontaktieren! Wir werden unser Bestes tun, um alle Ihre Fragen zu beantworten.
Hier kontaktieren