Implement CheckCle Microservice Operation
A Go-based microservice for service operations including ICMP ping, DNS resolution, and TCP connectivity
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"service-operation/types"
|
||||
)
|
||||
|
||||
func getStatusString(success bool) string {
|
||||
if success {
|
||||
return "up"
|
||||
}
|
||||
return "down"
|
||||
}
|
||||
|
||||
func formatResultDetails(result *types.OperationResult) string {
|
||||
details := map[string]interface{}{
|
||||
"type": result.Type,
|
||||
"response_time": result.ResponseTime,
|
||||
"start_time": result.StartTime,
|
||||
"end_time": result.EndTime,
|
||||
}
|
||||
|
||||
// Add type-specific details
|
||||
switch result.Type {
|
||||
case types.OperationPing:
|
||||
details["packets_sent"] = result.PacketsSent
|
||||
details["packets_recv"] = result.PacketsRecv
|
||||
details["packet_loss"] = result.PacketLoss
|
||||
details["avg_rtt"] = result.AvgRTT
|
||||
case types.OperationHTTP:
|
||||
details["status_code"] = result.HTTPStatusCode
|
||||
details["method"] = result.HTTPMethod
|
||||
details["content_length"] = result.ContentLength
|
||||
case types.OperationTCP:
|
||||
details["tcp_connected"] = result.TCPConnected
|
||||
case types.OperationDNS:
|
||||
details["dns_records"] = result.DNSRecords
|
||||
details["dns_type"] = result.DNSType
|
||||
}
|
||||
|
||||
jsonData, _ := json.Marshal(details)
|
||||
return string(jsonData)
|
||||
}
|
||||
Reference in New Issue
Block a user