mirror of
https://github.com/stefanprodan/podinfo.git
synced 2026-04-19 09:16:40 +00:00
71 lines
1.7 KiB
Go
71 lines
1.7 KiB
Go
package grpc
|
|
|
|
import (
|
|
"context"
|
|
"go.uber.org/zap"
|
|
"log"
|
|
"runtime"
|
|
"strconv"
|
|
|
|
pb "github.com/stefanprodan/podinfo/pkg/api/grpc/info"
|
|
"github.com/stefanprodan/podinfo/pkg/version"
|
|
)
|
|
|
|
type infoServer struct {
|
|
pb.UnimplementedInfoServiceServer
|
|
config *Config
|
|
logger *zap.Logger
|
|
}
|
|
|
|
func (s *infoServer) Info(ctx context.Context, message *pb.InfoRequest) (*pb.InfoResponse, error) {
|
|
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
log.Println("Recovered from panic:", r)
|
|
}
|
|
}()
|
|
|
|
data := RuntimeResponse{
|
|
Hostname: s.config.Hostname,
|
|
Version: version.VERSION,
|
|
Revision: version.REVISION,
|
|
Color: s.config.UIColor,
|
|
Logo: s.config.UILogo,
|
|
Message: s.config.UIMessage,
|
|
Goos: runtime.GOOS,
|
|
Goarch: runtime.GOARCH,
|
|
Runtime: runtime.Version(),
|
|
Numgoroutine: strconv.FormatInt(int64(runtime.NumGoroutine()), 10),
|
|
Numcpu: strconv.FormatInt(int64(runtime.NumCPU()), 10),
|
|
}
|
|
|
|
return &pb.InfoResponse{
|
|
Hostname: data.Hostname,
|
|
Version: data.Version,
|
|
Revision: data.Revision,
|
|
Color: data.Color,
|
|
Logo: data.Logo,
|
|
Message: data.Message,
|
|
Goos: data.Goos,
|
|
Goarch: data.Goarch,
|
|
Runtime: data.Runtime,
|
|
Numgoroutine: data.Numgoroutine,
|
|
Numcpu: data.Numcpu,
|
|
}, nil
|
|
|
|
}
|
|
|
|
type RuntimeResponse struct {
|
|
Hostname string `json:"hostname"`
|
|
Version string `json:"version"`
|
|
Revision string `json:"revision"`
|
|
Color string `json:"color"`
|
|
Logo string `json:"logo"`
|
|
Message string `json:"message"`
|
|
Goos string `json:"goos"`
|
|
Goarch string `json:"goarch"`
|
|
Runtime string `json:"runtime"`
|
|
Numgoroutine string `json:"num_goroutine"`
|
|
Numcpu string `json:"num_cpu"`
|
|
}
|