Junior — Middle
Kako vršiš kontrolu i praćenje stanja servisa ili aplikacije tokom njenog rada?
sobes.tech АИ
Одговор од АИ
Za kontrolu i praćenje stanja usluge ili aplikacije u Go, obično se koriste različiti pristupi:
- Logovanje — zapisivanje važnih događaja i grešaka u log fajlove ili spoljašnje sisteme (npr. ELK, Graylog).
- Metrike — prikupljanje statistika (opterećenje CPU, memorija, broj zahteva, greške) pomoću biblioteka, na primer, Prometheus klijent.
- Tracing — praćenje lanaca poziva i kašnjenja pomoću OpenTelemetry ili Jaeger.
- Health Checks — krajnje tačke koje vraćaju stanje usluge (npr.
/healthz), kako bi sistemi orkestracije (Kubernetes) mogli proveriti funkcionalnost.
Primer jednostavnog health check-a u Go:
http.HandleFunc("/healthz", func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
w.Write([]byte("OK"))
})
log.Fatal(http.ListenAndServe(":8080", nil))
Kombinovanjem logova, metrika i health checks, može se efikasno kontrolisati stanje aplikacije tokom rada.