2.8 KiB
2.8 KiB
CheckCle Microservice Operation
A Go-based microservice for service operations including ICMP ping, DNS resolution, and TCP connectivity testing.
Features
- ICMP Ping: Full ping functionality with packet statistics
- DNS Resolution: A, AAAA, MX, and TXT record lookups
- TCP Connectivity: Port connectivity testing
- SSL Certificate: SSL Certificate Check
- REST API endpoints
- Health check endpoint
- Configurable via environment variables
- Comprehensive operation statistics
API Endpoints
POST /operation
Perform various network operations (ping, dns, tcp).
Ping Request:
{
"type": "ping",
"host": "google.com",
"count": 4,
"timeout": 3
}
DNS Request:
{
"type": "dns",
"host": "google.com",
"query": "A",
"timeout": 3
}
TCP Request:
{
"type": "tcp",
"host": "google.com",
"port": 443,
"timeout": 3
}
Response:
{
"type": "ping",
"host": "google.com",
"success": true,
"response_time": "20ms",
"packets_sent": 4,
"packets_recv": 4,
"packet_loss": 0,
"min_rtt": "15ms",
"max_rtt": "25ms",
"avg_rtt": "20ms",
"rtts": ["15ms", "20ms", "25ms", "18ms"],
"start_time": "2023-12-01T10:00:00Z",
"end_time": "2023-12-01T10:00:03Z"
}
GET /operation/quick
Quick operation test with query parameters.
Examples:
/operation/quick?type=ping&host=google.com&count=1/operation/quick?type=dns&host=google.com&query=A/operation/quick?type=tcp&host=google.com&port=443
GET /health
Health check endpoint.
Legacy Endpoints
POST /ping- Legacy ping endpoint (backward compatibility)GET /ping/quick- Legacy quick ping endpoint
Operation Types
Ping (ICMP)
- Type:
ping - Parameters:
host,count,timeout - Features: Packet loss calculation, RTT statistics, multiple packets
DNS Resolution
- Type:
dns - Parameters:
host,query(A, AAAA, MX, TXT),timeout - Features: Multiple record types, resolution time tracking
TCP Connectivity
- Type:
tcp - Parameters:
host,port,timeout - Features: Connection testing, response time measurement
Configuration
Environment variables:
PORT- Service port (default: 8080)DEFAULT_COUNT- Default ping count (default: 4)DEFAULT_TIMEOUT- Default timeout (default: 3s)MAX_COUNT- Maximum ping count (default: 20)MAX_TIMEOUT- Maximum timeout (default: 30s)ENABLE_LOGGING- Enable logging (default: true)
Running
Local Development
go run main.go
Requirements
- Go 1.21+
- Root privileges for ICMP (on Linux)
Note
This service requires elevated privileges to send ICMP packets. Run with sudo on Linux systems or use capabilities:
sudo setcap cap_net_raw=+ep ./service-operation