47 lines
832 B
Go
47 lines
832 B
Go
package controller
|
|
|
|
import (
|
|
"net/http"
|
|
"strconv"
|
|
|
|
perfmetrics "github.com/QuantumNous/new-api/pkg/perf_metrics"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func GetPerfMetrics(c *gin.Context) {
|
|
modelName := c.Query("model")
|
|
if modelName == "" {
|
|
c.JSON(http.StatusBadRequest, gin.H{
|
|
"success": false,
|
|
"message": "model is required",
|
|
})
|
|
return
|
|
}
|
|
|
|
hours := 24
|
|
if rawHours := c.Query("hours"); rawHours != "" {
|
|
if parsed, err := strconv.Atoi(rawHours); err == nil {
|
|
hours = parsed
|
|
}
|
|
}
|
|
|
|
result, err := perfmetrics.Query(perfmetrics.QueryParams{
|
|
Model: modelName,
|
|
Group: c.Query("group"),
|
|
Hours: hours,
|
|
})
|
|
if err != nil {
|
|
c.JSON(http.StatusInternalServerError, gin.H{
|
|
"success": false,
|
|
"message": err.Error(),
|
|
})
|
|
return
|
|
}
|
|
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"success": true,
|
|
"data": result,
|
|
})
|
|
}
|