30 lines
977 B
Go
30 lines
977 B
Go
package main
|
|
|
|
import (
|
|
"exporter/internal/app"
|
|
"log"
|
|
"net/http"
|
|
"os"
|
|
|
|
"github.com/prometheus/client_golang/prometheus/promhttp"
|
|
)
|
|
|
|
func main() {
|
|
log.SetOutput(os.Stdout) // Логируем в стандартный вывод
|
|
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
|
|
|
|
exporter := app.NewMetricsExporter()
|
|
|
|
// Используем кастомный реестр в обработчике /metrics
|
|
http.Handle("/metrics", promhttp.HandlerFor(app.CustomRegistry, promhttp.HandlerOpts{}))
|
|
http.HandleFunc("/update", exporter.JSONHandler) // Обработчик для приёма JSON
|
|
|
|
port := ":9101"
|
|
log.Printf("Starting server on port %s\n", port)
|
|
if err := http.ListenAndServe(port, nil); err != nil {
|
|
log.Fatalf("Error starting server: %s\n", err)
|
|
}
|
|
}
|
|
|
|
//TODO: сделать переменные окружения, настроить канал, дописать юнит тесты, добавить интеграционные тесты
|