refactor: move models to their own package to use the same as in the importer
This commit is contained in:
parent
553a85562b
commit
9aa1b7384d
14 changed files with 170 additions and 152 deletions
254
models/models.go
Normal file
254
models/models.go
Normal file
|
|
@ -0,0 +1,254 @@
|
|||
package models
|
||||
|
||||
import "time"
|
||||
|
||||
type ESDocument struct {
|
||||
Index string `json:"_index"`
|
||||
Type string `json:"_type,omitempty"`
|
||||
ID string `json:"_id,omitempty"`
|
||||
Log LogMessage `json:"log"`
|
||||
}
|
||||
|
||||
type SystemResources struct {
|
||||
Timestamp time.Time `json:"@timestamp"`
|
||||
Type string `json:"type"`
|
||||
Host string `json:"host"`
|
||||
CPUPercent float64 `json:"cpu_percent,omitempty"`
|
||||
MemoryUsed uint64 `json:"memory_used,omitempty"`
|
||||
MemoryTotal uint64 `json:"memory_total,omitempty"`
|
||||
MemoryPercent float64 `json:"memory_percent,omitempty"`
|
||||
DiskUsage map[string]DiskUsage `json:"disk_usage,omitempty"`
|
||||
NetworkStats map[string]NetworkStat `json:"network_stats,omitempty"`
|
||||
LoadAverage []float64 `json:"load_average,omitempty"`
|
||||
Uptime uint64 `json:"uptime,omitempty"`
|
||||
TopProcesses []ProcessInfo `json:"top_processes"`
|
||||
OpenFileDescriptors int32 `json:"open_file_descriptors"`
|
||||
DiskIOStats map[string]DiskIOStat `json:"disk_io_stats,omitempty"`
|
||||
NetworkLatency map[string]LatencyInfo `json:"network_latency,omitempty"`
|
||||
BandwidthUtilization map[string]BandwidthInfo `json:"bandwidth_utilization,omitempty"`
|
||||
NetworkConnections ConnectionStats `json:"network_connections"`
|
||||
TCPStats TCPStatistics `json:"tcp_stats"`
|
||||
SystemLimits SystemLimitInfo `json:"system_limits"`
|
||||
}
|
||||
|
||||
type DiskIOStat struct {
|
||||
ReadBytes uint64 `json:"read_bytes"`
|
||||
WriteBytes uint64 `json:"write_bytes"`
|
||||
ReadOps uint64 `json:"read_ops"`
|
||||
WriteOps uint64 `json:"write_ops"`
|
||||
ReadTime uint64 `json:"read_time"`
|
||||
WriteTime uint64 `json:"write_time"`
|
||||
IOUtilization float64 `json:"io_utilization"`
|
||||
AvgReadLatency float64 `json:"avg_read_latency"`
|
||||
AvgWriteLatency float64 `json:"avg_write_latency"`
|
||||
}
|
||||
|
||||
type LatencyInfo struct {
|
||||
Host string `json:"host"`
|
||||
MinLatency time.Duration `json:"min_latency"`
|
||||
MaxLatency time.Duration `json:"max_latency"`
|
||||
AvgLatency time.Duration `json:"avg_latency"`
|
||||
PacketLoss float64 `json:"packet_loss"`
|
||||
Jitter time.Duration `json:"jitter"`
|
||||
}
|
||||
|
||||
type BandwidthInfo struct {
|
||||
Interface string `json:"interface"`
|
||||
CurrentThroughputIn float64 `json:"current_throughput_in_mbps"`
|
||||
CurrentThroughputOut float64 `json:"current_throughput_out_mbps"`
|
||||
PeakThroughputIn float64 `json:"peak_throughput_in_mbps"`
|
||||
PeakThroughputOut float64 `json:"peak_throughput_out_mbps"`
|
||||
UtilizationPercent float64 `json:"utilization_percent"`
|
||||
}
|
||||
|
||||
type ConnectionStats struct {
|
||||
TotalConnections int32 `json:"total_connections"`
|
||||
EstablishedTCP int32 `json:"established_tcp"`
|
||||
ListeningTCP int32 `json:"listening_tcp"`
|
||||
TimeWaitTCP int32 `json:"time_wait_tcp"`
|
||||
TransferConnections int32 `json:"transfer_connections"`
|
||||
ConnectionsByState map[string]int32 `json:"connections_by_state"`
|
||||
}
|
||||
|
||||
type LoadAverageInfo struct {
|
||||
Load1 float64 `json:"load_1min"`
|
||||
Load5 float64 `json:"load_5min"`
|
||||
Load15 float64 `json:"load_15min"`
|
||||
}
|
||||
|
||||
type TCPStatistics struct {
|
||||
RetransmitRate float64 `json:"retransmit_rate"`
|
||||
OutOfOrderPackets uint64 `json:"out_of_order_packets"`
|
||||
LostPackets uint64 `json:"lost_packets"`
|
||||
CongestionWindow uint64 `json:"congestion_window"`
|
||||
TCPMemoryUsage uint64 `json:"tcp_memory_usage"`
|
||||
}
|
||||
|
||||
type SystemLimitInfo struct {
|
||||
MaxOpenFiles uint64 `json:"max_open_files"`
|
||||
CurrentOpenFiles uint64 `json:"current_open_files"`
|
||||
MaxProcesses uint64 `json:"max_processes"`
|
||||
CurrentProcesses uint64 `json:"current_processes"`
|
||||
MaxTCPConnections uint64 `json:"max_tcp_connections"`
|
||||
CurrentTCPConnections uint64 `json:"current_tcp_connections"`
|
||||
FileDescriptorUsage float64 `json:"file_descriptor_usage_percent"`
|
||||
}
|
||||
|
||||
type DiskUsage struct {
|
||||
Used uint64 `json:"used"`
|
||||
Total uint64 `json:"total"`
|
||||
UsedPercent float64 `json:"used_percent"`
|
||||
Free uint64 `json:"free"`
|
||||
}
|
||||
|
||||
type ProcessInfo struct {
|
||||
PID int32 `json:"pid"`
|
||||
Name string `json:"name"`
|
||||
CPUPercent float64 `json:"cpu_percent"`
|
||||
MemoryMB float32 `json:"memory_mb"`
|
||||
Status string `json:"status"`
|
||||
CreateTime int64 `json:"create_time"`
|
||||
}
|
||||
|
||||
type NetworkStat struct {
|
||||
BytesSent uint64 `json:"bytes_sent"`
|
||||
BytesRecv uint64 `json:"bytes_recv"`
|
||||
PacketsSent uint64 `json:"packets_sent"`
|
||||
PacketsRecv uint64 `json:"packets_recv"`
|
||||
}
|
||||
|
||||
type LogMessage struct {
|
||||
Service string `json:"service,omitempty"`
|
||||
Timestamp time.Time `json:"timestamp"`
|
||||
Type string `json:"type"`
|
||||
Host string `json:"host"`
|
||||
Tool string `json:"tool,omitempty"`
|
||||
LogLevel string `json:"log_level"`
|
||||
LogMessage string `json:"log_message,omitempty"`
|
||||
ServiceInformation any `json:"service_info,omitempty"`
|
||||
SystemMetrics any `json:"system-metrics,omitempty"`
|
||||
ToolInformation any `json:"tool_info,omitempty"`
|
||||
Raw string `json:"raw,omitempty"`
|
||||
Priority string `json:"priority,omitempty"`
|
||||
PriorityName string `json:"priority_name,omitempty"`
|
||||
Unit string `json:"unit,omitempty"`
|
||||
PID int `json:"pid,omitempty"`
|
||||
BootID string `json:"boot_id,omitempty"`
|
||||
MachineID string `json:"machine_id,omitempty"`
|
||||
Fields map[string]any `json:"fields,omitempty"`
|
||||
// SyslogInfo SyslogFields `json:"syslog_information,omitempty"`
|
||||
}
|
||||
|
||||
// type LogMessage struct {
|
||||
// Service string `json:"service"`
|
||||
// Timestamp time.Time `json:"timestamp"`
|
||||
// LogLevel string `json:"log_level"`
|
||||
// LogMessage string `json:"log_message"`
|
||||
// SyslogInfo SyslogFields `json:"syslog_information"`
|
||||
// ServiceInformation any `json:"service_info,omitempty"`
|
||||
// }
|
||||
|
||||
type SyslogFields struct {
|
||||
SysLogTimestamp time.Time `json:"syslog_timestamp"`
|
||||
Hostname string `json:"hostname"`
|
||||
ProcessInfo string `json:"process_info"`
|
||||
}
|
||||
|
||||
type AMBaseInfo struct {
|
||||
ProcessID string `json:"process_id"`
|
||||
ThreadID string `json:"thread_id"`
|
||||
LoggerName string `json:"logger_name"`
|
||||
}
|
||||
|
||||
type TCCBaseInfo struct {
|
||||
ProcessID string `json:"process_id"`
|
||||
ThreadID string `json:"thread_id"`
|
||||
LoggerName string `json:"logger_name"`
|
||||
}
|
||||
|
||||
type TSTransferInfo struct {
|
||||
TransferID string `json:"transfer_identifier,omitempty"`
|
||||
Lane int `json:"lane,omitempty"`
|
||||
StartTime time.Time `json:"start_time"`
|
||||
EndTime time.Time `json:"end_time"`
|
||||
Buffers int `json:"buffers,omitempty"`
|
||||
Streams int `json:"streams,omitempty"`
|
||||
ChunkSize int `json:"chunksize,omitempty"`
|
||||
TransferLane string `json:"transfer_lane,omitempty"`
|
||||
FileCount int `json:"file_count,omitempty"`
|
||||
FileSizeMB float64 `json:"file_size_mb,omitempty"`
|
||||
DataRateMBs float64 `json:"datarate_mbs,omitempty"`
|
||||
TargetDatarate float64 `json:"target_datarate,omitempty"`
|
||||
Protocoll string `json:"protocoll,omitempty"`
|
||||
Target string `json:"transfer_target,omitempty"`
|
||||
Dest string `json:"destination,omitempty"`
|
||||
Src string `json:"source,omitempty"`
|
||||
SenderID string `json:"sender_id,omitempty"`
|
||||
Receiver string `json:"receiver,omitempty"`
|
||||
BytesProcessed int64 `json:"bytes_processed,omitempty"`
|
||||
Direction string `json:"direction,omitempty"`
|
||||
Duration time.Duration `json:"duration_seconds,omitempty"`
|
||||
TheoreticalRate float64 `json:"theoretical_rate_mbs,omitempty"`
|
||||
Efficiency float64 `json:"efficiency_percent,omitempty"`
|
||||
Status string `json:"status,omitempty"`
|
||||
Hostname string `json:"hostname"`
|
||||
}
|
||||
|
||||
type TJMTransferInfo struct {
|
||||
TransferID string `json:"transfer_identifier,omitempty"`
|
||||
TransferName string `json:"transfer_name,omitempty"`
|
||||
ProcessID string `json:"process_id,omitempty"`
|
||||
Username string `json:"username,omitempty"`
|
||||
CorrelationID string `json:"correlation_id,omitempty"`
|
||||
ThreadID string `json:"thread_id,omitempty"`
|
||||
JavaClass string `json:"java_class,omitempty"`
|
||||
StartTime time.Time `json:"start_time"`
|
||||
EndTime time.Time `json:"end_time"`
|
||||
TransferLane string `json:"transfer_lane,omitempty"`
|
||||
Dest string `json:"destination,omitempty"`
|
||||
Src string `json:"source,omitempty"`
|
||||
SenderID string `json:"sender_id,omitempty"`
|
||||
Receiver string `json:"receiver,omitempty"`
|
||||
Direction string `json:"direction,omitempty"`
|
||||
Worker string `json:"worker,omitempty"`
|
||||
Duration time.Duration `json:"duration,omitempty"`
|
||||
DataRateMBs float64 `json:"datarate_mbs,omitempty"`
|
||||
BytesProcessed int64 `json:"bytes_processed,omitempty"`
|
||||
FileSizeMB float64 `json:"file_size_mb,omitempty"`
|
||||
Hostname string `json:"hostname"`
|
||||
}
|
||||
|
||||
type NGinXBaseInfo struct {
|
||||
ClientIP string `json:"client_ip"`
|
||||
RemoteUser string `json:"remote_user"`
|
||||
Request string `json:"request"`
|
||||
StatusCode int `json:"status_code"`
|
||||
BytesSend int `json:"bytes_sent"`
|
||||
Referer string `json:"referer"`
|
||||
UserAgent string `json:"user_agent"`
|
||||
HTTPMethod string `json:"http_method"`
|
||||
RequestURI string `json:"request_uri"`
|
||||
HTTPVersion string `json:"http_version"`
|
||||
Route string `json:"route"`
|
||||
}
|
||||
|
||||
func NewLogMessage(entryType, hostname string) LogMessage {
|
||||
return LogMessage{
|
||||
Timestamp: time.Now(),
|
||||
Type: entryType,
|
||||
Host: hostname,
|
||||
}
|
||||
}
|
||||
|
||||
func NewSystemResources(hostname string) SystemResources {
|
||||
return SystemResources{
|
||||
Timestamp: time.Now(),
|
||||
Type: "system_metrics",
|
||||
Host: hostname,
|
||||
DiskUsage: make(map[string]DiskUsage),
|
||||
DiskIOStats: make(map[string]DiskIOStat),
|
||||
NetworkStats: make(map[string]NetworkStat),
|
||||
NetworkLatency: make(map[string]LatencyInfo),
|
||||
BandwidthUtilization: make(map[string]BandwidthInfo),
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue