Documentation
¶
Index ¶
- Constants
- Variables
- func DF_IPv4String(ip4 uint32) string
- func GetDNSExceptionDesc(errCode uint16) string
- func GetDubboExceptionDesc(errCode uint16) string
- func GetHTTPExceptionDesc(errCode uint16) string
- func GetKafkaExceptionDesc(errCode int16) string
- func GetMQTTV3ExceptionDesc(errCode uint16) string
- func GetMQTTV5ExceptionDesc(errCode uint16) string
- func IPIntToString(ipInt uint32) string
- func IsKafkaSupportedCommand(cmd string) bool
- func L4FlowLogColumns() []*ckdb.Column
- func L4PacketColumns() []*ckdb.Column
- func L7BaseColumns() []*ckdb.Column
- func L7FlowLogColumns() []*ckdb.Column
- func ReleaseL4FlowLog(l *L4FlowLog)
- func ReleaseL4Packet(l *L4Packet)
- func ReleaseL7FlowLog(l *L7FlowLog)
- type ApplicationLayer
- type DataLinkLayer
- type FlowInfo
- type Internet
- type KafakaCode
- type KnowledgeGraph
- func (k *KnowledgeGraph) FillL4(f *pb.Flow, isIPv6 bool, platformData *grpc.PlatformInfoTable)
- func (k *KnowledgeGraph) FillL7(l *pb.AppProtoLogsBaseInfo, platformData *grpc.PlatformInfoTable, ...)
- func (k *KnowledgeGraph) FillOTel(l *L7FlowLog, platformData *grpc.PlatformInfoTable)
- func (k *KnowledgeGraph) WriteBlock(block *ckdb.Block)
- type L4FlowLog
- func (l4 *L4FlowLog) DataSource() uint32
- func (l4 *L4FlowLog) EncodeTo(protocol config.ExportProtocol, utags *utag.UniversalTagsManager, ...) (interface{}, error)
- func (f *L4FlowLog) EndTime() time.Duration
- func (l7 *L4FlowLog) GetFieldValueByOffsetAndKind(offset uintptr, kind reflect.Kind, dataType utils.DataType) interface{}
- func (f *L4FlowLog) HitPcapPolicy() bool
- func (f *L4FlowLog) OrgID() uint16
- func (l4 *L4FlowLog) QueryUniversalTags(utags *utag.UniversalTagsManager) (*utag.UniversalTags, *utag.UniversalTags)
- func (f *L4FlowLog) Release()
- func (f *L4FlowLog) String() string
- func (l4 *L4FlowLog) TimestampUs() int64
- func (f *L4FlowLog) WriteBlock(block *ckdb.Block)
- type L4Packet
- type L7Base
- type L7FlowLog
- func (l7 *L7FlowLog) DataSource() uint32
- func (l7 *L7FlowLog) EncodeTo(protocol config.ExportProtocol, utags *utag.UniversalTagsManager, ...) (interface{}, error)
- func (l7 *L7FlowLog) EncodeToOtlp(utags *utag.UniversalTagsManager, dataTypeBits uint64) interface{}
- func (h *L7FlowLog) EndTime() time.Duration
- func (h *L7FlowLog) Fill(l *pb.AppProtoLogsData, platformData *grpc.PlatformInfoTable, ...)
- func (h *L7FlowLog) FillOTel(l *v1.Span, resAttributes []*v11.KeyValue, ...)
- func (h *L7FlowLog) GenerateNewFlowTags(cache *flow_tag.FlowTagCache)
- func (l7 *L7FlowLog) GetFieldValueByOffsetAndKind(offset uintptr, kind reflect.Kind, dataType utils.DataType) interface{}
- func (h *L7FlowLog) ID() uint64
- func (h *L7FlowLog) OrgID() uint16
- func (l7 *L7FlowLog) QueryUniversalTags(utags *utag.UniversalTagsManager) (*utag.UniversalTags, *utag.UniversalTags)
- func (h *L7FlowLog) Release()
- func (h *L7FlowLog) StartTime() time.Duration
- func (h *L7FlowLog) String() string
- func (l7 *L7FlowLog) TimestampUs() int64
- func (h *L7FlowLog) WriteBlock(block *ckdb.Block)
- type Metrics
- type NetworkLayer
- type TransportLayer
Constants ¶
View Source
const ( UNKNOWN_SERVER_ERROR = -1 NONE KafakaCode = 0 OFFSET_OUT_OF_RANGE = 1 CORRUPT_MESSAGE = 2 UNKNOWN_TOPIC_OR_PARTITION = 3 INVALID_FETCH_SIZE = 4 LEADER_NOT_AVAILABLE = 5 NOT_LEADER_OR_FOLLOWER = 6 REQUEST_TIMED_OUT = 7 BROKER_NOT_AVAILABLE = 8 REPLICA_NOT_AVAILABLE = 9 MESSAGE_TOO_LARGE = 10 STALE_CONTROLLER_EPOCH = 11 OFFSET_METADATA_TOO_LARGE = 12 NETWORK_EXCEPTION = 13 COORDINATOR_LOAD_IN_PROGRESS = 14 COORDINATOR_NOT_AVAILABLE = 15 NOT_COORDINATOR = 16 INVALID_TOPIC_EXCEPTION = 17 RECORD_LIST_TOO_LARGE = 18 NOT_ENOUGH_REPLICAS = 19 NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20 INVALID_REQUIRED_ACKS = 21 ILLEGAL_GENERATION = 22 INCONSISTENT_GROUP_PROTOCOL = 23 INVALID_GROUP_ID = 24 UNKNOWN_MEMBER_ID = 25 INVALID_SESSION_TIMEOUT = 26 REBALANCE_IN_PROGRESS = 27 INVALID_COMMIT_OFFSET_SIZE = 28 TOPIC_AUTHORIZATION_FAILED = 29 GROUP_AUTHORIZATION_FAILED = 30 CLUSTER_AUTHORIZATION_FAILED = 31 INVALID_TIMESTAMP = 32 UNSUPPORTED_SASL_MECHANISM = 33 ILLEGAL_SASL_STATE = 34 UNSUPPORTED_VERSION = 35 TOPIC_ALREADY_EXISTS = 36 INVALID_PARTITIONS = 37 INVALID_REPLICATION_FACTOR = 38 INVALID_REPLICA_ASSIGNMENT = 39 INVALID_CONFIG = 40 NOT_CONTROLLER = 41 INVALID_REQUEST = 42 UNSUPPORTED_FOR_MESSAGE_FORMAT = 43 POLICY_VIOLATION = 44 OUT_OF_ORDER_SEQUENCE_NUMBER = 45 DUPLICATE_SEQUENCE_NUMBER = 46 INVALID_PRODUCER_EPOCH = 47 INVALID_TXN_STATE = 48 INVALID_PRODUCER_ID_MAPPING = 49 INVALID_TRANSACTION_TIMEOUT = 50 CONCURRENT_TRANSACTIONS = 51 TRANSACTION_COORDINATOR_FENCED = 52 TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53 SECURITY_DISABLED = 54 OPERATION_NOT_ATTEMPTED = 55 KAFKA_STORAGE_ERROR = 56 LOG_DIR_NOT_FOUND = 57 SASL_AUTHENTICATION_FAILED = 58 UNKNOWN_PRODUCER_ID = 59 REASSIGNMENT_IN_PROGRESS = 60 DELEGATION_TOKEN_AUTH_DISABLED = 61 DELEGATION_TOKEN_NOT_FOUND = 62 DELEGATION_TOKEN_OWNER_MISMATCH = 63 DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64 DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65 DELEGATION_TOKEN_EXPIRED = 66 INVALID_PRINCIPAL_TYPE = 67 NON_EMPTY_GROUP = 68 GROUP_ID_NOT_FOUND = 69 FETCH_SESSION_ID_NOT_FOUND = 70 INVALID_FETCH_SESSION_EPOCH = 71 LISTENER_NOT_FOUND = 72 TOPIC_DELETION_DISABLED = 73 FENCED_LEADER_EPOCH = 74 UNKNOWN_LEADER_EPOCH = 75 UNSUPPORTED_COMPRESSION_TYPE = 76 STALE_BROKER_EPOCH = 77 OFFSET_NOT_AVAILABLE = 78 MEMBER_ID_REQUIRED = 79 PREFERRED_LEADER_NOT_AVAILABLE = 80 GROUP_MAX_SIZE_REACHED = 81 FENCED_INSTANCE_ID = 82 ELIGIBLE_LEADERS_NOT_AVAILABLE = 83 ELECTION_NOT_NEEDED = 84 NO_REASSIGNMENT_IN_PROGRESS = 85 GROUP_SUBSCRIBED_TO_TOPIC = 86 INVALID_RECORD = 87 UNSTABLE_OFFSET_COMMIT = 88 THROTTLING_QUOTA_EXCEEDED = 89 PRODUCER_FENCED = 90 RESOURCE_NOT_FOUND = 91 DUPLICATE_RESOURCE = 92 UNACCEPTABLE_CREDENTIAL = 93 INCONSISTENT_VOTER_SET = 94 INVALID_UPDATE_VERSION = 95 FEATURE_UPDATE_FAILED = 96 PRINCIPAL_DESERIALIZATION_FAILURE = 97 SNAPSHOT_NOT_FOUND = 98 POSITION_OUT_OF_RANGE = 99 UNKNOWN_TOPIC_ID = 100 DUPLICATE_BROKER_REGISTRATION = 101 BROKER_ID_NOT_REGISTERED = 102 INCONSISTENT_TOPIC_ID = 103 INCONSISTENT_CLUSTER_ID = 104 TRANSACTIONAL_ID_NOT_FOUND = 105 FETCH_SESSION_TOPIC_ID_ERROR = 106 )
View Source
const BLOCK_HEAD_SIZE = 16
View Source
const (
UNKNOWN_SERVER_ERROR_DESC = "The server experienced an unexpected error when processing the request."
)
View Source
const (
US_TO_S_DEVISOR = 1000000 // 微秒转化为秒的除数
)
Variables ¶
View Source
var ApplicationLayerColumns = []*ckdb.Column{ ckdb.NewColumn("l7_protocol", ckdb.UInt8).SetIndex(ckdb.IndexMinmax), }
View Source
var DataLinkLayerColumns = []*ckdb.Column{ ckdb.NewColumn("mac_0", ckdb.UInt64), ckdb.NewColumn("mac_1", ckdb.UInt64), ckdb.NewColumn("eth_type", ckdb.UInt16).SetIndex(ckdb.IndexSet), ckdb.NewColumn("vlan", ckdb.UInt16).SetIndex(ckdb.IndexSet), }
View Source
var FlowInfoColumns = []*ckdb.Column{ ckdb.NewColumn("time", ckdb.DateTime).SetComment("精度: 秒,等同end_time的秒精度"), ckdb.NewColumn("close_type", ckdb.UInt16).SetIndex(ckdb.IndexSet), ckdb.NewColumn("signal_source", ckdb.UInt16), ckdb.NewColumn("flow_id", ckdb.UInt64).SetIndex(ckdb.IndexMinmax), ckdb.NewColumn("capture_network_type_id", ckdb.UInt8), ckdb.NewColumn("nat_source", ckdb.UInt8), ckdb.NewColumn("capture_nic_type", ckdb.UInt8), ckdb.NewColumn("capture_nic", ckdb.UInt32), ckdb.NewColumn("observation_point", ckdb.LowCardinalityString), ckdb.NewColumn("agent_id", ckdb.UInt16).SetIndex(ckdb.IndexSet), ckdb.NewColumn("l2_end_0", ckdb.UInt8).SetIndex(ckdb.IndexNone), ckdb.NewColumn("l2_end_1", ckdb.UInt8).SetIndex(ckdb.IndexNone), ckdb.NewColumn("l3_end_0", ckdb.UInt8).SetIndex(ckdb.IndexNone), ckdb.NewColumn("l3_end_1", ckdb.UInt8).SetIndex(ckdb.IndexNone), ckdb.NewColumn("start_time", ckdb.DateTime64us).SetComment("精度: 微秒"), ckdb.NewColumn("end_time", ckdb.DateTime64us).SetComment("精度: 微秒"), ckdb.NewColumn("duration", ckdb.UInt64).SetComment("单位: 微秒"), ckdb.NewColumn("is_new_flow", ckdb.UInt8), ckdb.NewColumn("status", ckdb.UInt8).SetComment("状态 0:正常, 1:异常 ,2:不存在,3:服务端异常, 4:客户端异常"), ckdb.NewColumn("acl_gids", ckdb.ArrayUInt16), ckdb.NewColumn("gprocess_id_0", ckdb.UInt32), ckdb.NewColumn("gprocess_id_1", ckdb.UInt32), ckdb.NewColumn("nat_real_ip4_0", ckdb.IPv4), ckdb.NewColumn("nat_real_ip4_1", ckdb.IPv4), ckdb.NewColumn("nat_real_port_0", ckdb.UInt16), ckdb.NewColumn("nat_real_port_1", ckdb.UInt16), ckdb.NewColumn("direction_score", ckdb.UInt8).SetIndex(ckdb.IndexMinmax), ckdb.NewColumn("request_domain", ckdb.String).SetIndex(ckdb.IndexBloomfilter), }
View Source
var InternetColumns = []*ckdb.Column{ ckdb.NewColumn("province_0", ckdb.LowCardinalityString), ckdb.NewColumn("province_1", ckdb.LowCardinalityString), }
View Source
var KnowledgeGraphColumns = []*ckdb.Column{ ckdb.NewColumn("region_id_0", ckdb.UInt16), ckdb.NewColumn("region_id_1", ckdb.UInt16), ckdb.NewColumn("az_id_0", ckdb.UInt16), ckdb.NewColumn("az_id_1", ckdb.UInt16), ckdb.NewColumn("host_id_0", ckdb.UInt16), ckdb.NewColumn("host_id_1", ckdb.UInt16), ckdb.NewColumn("l3_device_type_0", ckdb.UInt8), ckdb.NewColumn("l3_device_type_1", ckdb.UInt8), ckdb.NewColumn("l3_device_id_0", ckdb.UInt32), ckdb.NewColumn("l3_device_id_1", ckdb.UInt32), ckdb.NewColumn("pod_node_id_0", ckdb.UInt32), ckdb.NewColumn("pod_node_id_1", ckdb.UInt32), ckdb.NewColumn("pod_ns_id_0", ckdb.UInt16), ckdb.NewColumn("pod_ns_id_1", ckdb.UInt16), ckdb.NewColumn("pod_group_id_0", ckdb.UInt32), ckdb.NewColumn("pod_group_id_1", ckdb.UInt32), ckdb.NewColumn("pod_id_0", ckdb.UInt32), ckdb.NewColumn("pod_id_1", ckdb.UInt32), ckdb.NewColumn("pod_cluster_id_0", ckdb.UInt16), ckdb.NewColumn("pod_cluster_id_1", ckdb.UInt16), ckdb.NewColumn("l3_epc_id_0", ckdb.Int32), ckdb.NewColumn("l3_epc_id_1", ckdb.Int32), ckdb.NewColumn("epc_id_0", ckdb.Int32), ckdb.NewColumn("epc_id_1", ckdb.Int32), ckdb.NewColumn("subnet_id_0", ckdb.UInt16), ckdb.NewColumn("subnet_id_1", ckdb.UInt16), ckdb.NewColumn("service_id_0", ckdb.UInt32), ckdb.NewColumn("service_id_1", ckdb.UInt32), ckdb.NewColumn("auto_instance_id_0", ckdb.UInt32), ckdb.NewColumn("auto_instance_type_0", ckdb.UInt8), ckdb.NewColumn("auto_service_id_0", ckdb.UInt32), ckdb.NewColumn("auto_service_type_0", ckdb.UInt8), ckdb.NewColumn("auto_instance_id_1", ckdb.UInt32), ckdb.NewColumn("auto_instance_type_1", ckdb.UInt8), ckdb.NewColumn("auto_service_id_1", ckdb.UInt32), ckdb.NewColumn("auto_service_type_1", ckdb.UInt8), ckdb.NewColumn("tag_source_0", ckdb.UInt8), ckdb.NewColumn("tag_source_1", ckdb.UInt8), ckdb.NewColumn("team_id", ckdb.UInt16), }
View Source
var L4FlowCounter uint32
View Source
var L7FlowLogCounter uint32
View Source
var MetricsColumns = []*ckdb.Column{ ckdb.NewColumn("packet_tx", ckdb.UInt64), ckdb.NewColumn("packet_rx", ckdb.UInt64), ckdb.NewColumn("byte_tx", ckdb.UInt64), ckdb.NewColumn("byte_rx", ckdb.UInt64), ckdb.NewColumn("l3_byte_tx", ckdb.UInt64), ckdb.NewColumn("l3_byte_rx", ckdb.UInt64), ckdb.NewColumn("l4_byte_tx", ckdb.UInt64), ckdb.NewColumn("l4_byte_rx", ckdb.UInt64), ckdb.NewColumn("total_packet_tx", ckdb.UInt64), ckdb.NewColumn("total_packet_rx", ckdb.UInt64), ckdb.NewColumn("total_byte_tx", ckdb.UInt64), ckdb.NewColumn("total_byte_rx", ckdb.UInt64), ckdb.NewColumn("l7_request", ckdb.UInt32), ckdb.NewColumn("l7_response", ckdb.UInt32), ckdb.NewColumn("l7_parse_failed", ckdb.UInt32), ckdb.NewColumn("rtt", ckdb.Float64).SetComment("单位: 微秒"), ckdb.NewColumn("rtt_client", ckdb.Float64).SetComment("单位: 微秒"), ckdb.NewColumn("rtt_server", ckdb.Float64).SetComment("单位: 微秒"), ckdb.NewColumn("tls_rtt", ckdb.Float64).SetComment("单位: 微秒"), ckdb.NewColumn("srt_sum", ckdb.Float64), ckdb.NewColumn("art_sum", ckdb.Float64), ckdb.NewColumn("rrt_sum", ckdb.Float64), ckdb.NewColumn("cit_sum", ckdb.Float64), ckdb.NewColumn("srt_count", ckdb.UInt64), ckdb.NewColumn("art_count", ckdb.UInt64), ckdb.NewColumn("rrt_count", ckdb.UInt64), ckdb.NewColumn("cit_count", ckdb.UInt64), ckdb.NewColumn("srt_max", ckdb.UInt32).SetComment("单位: 微秒"), ckdb.NewColumn("art_max", ckdb.UInt32).SetComment("单位: 微秒"), ckdb.NewColumn("rrt_max", ckdb.UInt32).SetComment("单位: 微秒"), ckdb.NewColumn("cit_max", ckdb.UInt32).SetComment("单位: 微秒"), ckdb.NewColumn("retrans_tx", ckdb.UInt32), ckdb.NewColumn("retrans_rx", ckdb.UInt32), ckdb.NewColumn("zero_win_tx", ckdb.UInt32), ckdb.NewColumn("zero_win_rx", ckdb.UInt32), ckdb.NewColumn("syn_count", ckdb.UInt32), ckdb.NewColumn("synack_count", ckdb.UInt32), ckdb.NewColumn("retrans_syn", ckdb.UInt32), ckdb.NewColumn("retrans_synack", ckdb.UInt32), ckdb.NewColumn("l7_client_error", ckdb.UInt32), ckdb.NewColumn("l7_server_error", ckdb.UInt32), ckdb.NewColumn("l7_server_timeout", ckdb.UInt32), ckdb.NewColumn("l7_error", ckdb.UInt32), }
View Source
var NetworkLayerColumns = []*ckdb.Column{ ckdb.NewColumn("ip4_0", ckdb.IPv4), ckdb.NewColumn("ip4_1", ckdb.IPv4), ckdb.NewColumn("ip6_0", ckdb.IPv6), ckdb.NewColumn("ip6_1", ckdb.IPv6), ckdb.NewColumn("is_ipv4", ckdb.UInt8).SetIndex(ckdb.IndexMinmax), ckdb.NewColumn("protocol", ckdb.UInt8), ckdb.NewColumn("tunnel_tier", ckdb.UInt8), ckdb.NewColumn("tunnel_type", ckdb.UInt16), ckdb.NewColumn("tunnel_tx_id", ckdb.UInt32), ckdb.NewColumn("tunnel_rx_id", ckdb.UInt32), ckdb.NewColumn("tunnel_tx_ip4_0", ckdb.IPv4), ckdb.NewColumn("tunnel_tx_ip4_1", ckdb.IPv4), ckdb.NewColumn("tunnel_rx_ip4_0", ckdb.IPv4), ckdb.NewColumn("tunnel_rx_ip4_1", ckdb.IPv4), ckdb.NewColumn("tunnel_tx_ip6_0", ckdb.IPv6), ckdb.NewColumn("tunnel_tx_ip6_1", ckdb.IPv6), ckdb.NewColumn("tunnel_rx_ip6_0", ckdb.IPv6), ckdb.NewColumn("tunnel_rx_ip6_1", ckdb.IPv6), ckdb.NewColumn("tunnel_is_ipv4", ckdb.UInt8).SetIndex(ckdb.IndexMinmax), ckdb.NewColumn("tunnel_tx_mac_0", ckdb.UInt32), ckdb.NewColumn("tunnel_tx_mac_1", ckdb.UInt32), ckdb.NewColumn("tunnel_rx_mac_0", ckdb.UInt32), ckdb.NewColumn("tunnel_rx_mac_1", ckdb.UInt32), }
View Source
var TransportLayerColumns = []*ckdb.Column{ ckdb.NewColumn("client_port", ckdb.UInt16), ckdb.NewColumn("server_port", ckdb.UInt16).SetIndex(ckdb.IndexSet), ckdb.NewColumn("tcp_flags_bit_0", ckdb.UInt16).SetIndex(ckdb.IndexNone), ckdb.NewColumn("tcp_flags_bit_1", ckdb.UInt16).SetIndex(ckdb.IndexNone), ckdb.NewColumn("syn_seq", ckdb.UInt32).SetComment("握手包的TCP SEQ序列号"), ckdb.NewColumn("syn_ack_seq", ckdb.UInt32).SetComment("握手回应包的TCP SEQ序列号"), ckdb.NewColumn("last_keepalive_seq", ckdb.UInt32), ckdb.NewColumn("last_keepalive_ack", ckdb.UInt32), }
Functions ¶
func DF_IPv4String ¶
func GetDNSExceptionDesc ¶
func GetDubboExceptionDesc ¶
func GetHTTPExceptionDesc ¶
func GetKafkaExceptionDesc ¶
func GetMQTTV3ExceptionDesc ¶
func GetMQTTV5ExceptionDesc ¶
func IPIntToString ¶
func IsKafkaSupportedCommand ¶
func L4FlowLogColumns ¶
func L4PacketColumns ¶
func L7BaseColumns ¶
func L7FlowLogColumns ¶
func ReleaseL4FlowLog ¶
func ReleaseL4FlowLog(l *L4FlowLog)
func ReleaseL4Packet ¶
func ReleaseL4Packet(l *L4Packet)
func ReleaseL7FlowLog ¶
func ReleaseL7FlowLog(l *L7FlowLog)
Types ¶
type ApplicationLayer ¶
type ApplicationLayer struct {
L7Protocol uint8 `json:"l7_protocol" category:"$tag" sub:"application_layer" enumfile:"l7_protocol"` // HTTP, DNS, others
}
func (*ApplicationLayer) Fill ¶
func (a *ApplicationLayer) Fill(f *pb.Flow)
func (*ApplicationLayer) WriteBlock ¶
func (a *ApplicationLayer) WriteBlock(block *ckdb.Block)
type DataLinkLayer ¶
type DataLinkLayer struct {
MAC0 uint64 `json:"mac_0" category:"$tag" sub:"data_link_layer" to_string:"MacString"`
MAC1 uint64 `json:"mac_1" category:"$tag" sub:"data_link_layer" to_string:"MacString"`
EthType uint16 `json:"eth_type" category:"$tag" sub:"data_link_layer"`
VLAN uint16 `json:"vlan" category:"$tag" sub:"data_link_layer"`
}
func (*DataLinkLayer) Fill ¶
func (d *DataLinkLayer) Fill(f *pb.Flow)
func (*DataLinkLayer) WriteBlock ¶
func (f *DataLinkLayer) WriteBlock(block *ckdb.Block)
type FlowInfo ¶
type FlowInfo struct {
Time uint32 `json:"time" category:"$tag" sub:"flow_info"` // s
CloseType uint16 `json:"close_type" category:"$tag" sub:"flow_info" enumfile:"close_type"`
SignalSource uint16 `json:"signal_source" category:"$tag" sub:"capture_info" enumfile:"l4_signal_source"`
FlowID uint64 `json:"flow_id" category:"$tag" sub:"flow_info"`
TapType uint8 `json:"capture_network_type_id" category:"$tag" sub:"capture_info"`
NatSource uint8 `json:"nat_source" category:"$tag" sub:"capture_info" enumfile:"nat_source"`
TapPortType uint8 `json:"capture_nic_type" category:"$tag" sub:"capture_info" enumfile:"capture_nic_type"` // 0: MAC, 1: IPv4, 2:IPv6, 3: ID
TapPort uint32 `json:"capture_nic" category:"$tag" sub:"capture_info"`
TapSide string `json:"observation_point" category:"$tag" sub:"capture_info" enumfile:"observation_point"`
VtapID uint16 `json:"agent_id" category:"$tag" sub:"capture_info"`
L2End0 bool `json:"l2_end_0" category:"$tag" sub:"capture_info"`
L2End1 bool `json:"l2_end_1" category:"$tag" sub:"capture_info"`
L3End0 bool `json:"l3_end_0" category:"$tag" sub:"capture_info"`
L3End1 bool `json:"l3_end_1" category:"$tag" sub:"capture_info"`
StartTime int64 `json:"start_time" category:"$tag" sub:"flow_info"` // us
EndTime int64 `json:"end_time" category:"$tag" sub:"flow_info"` // us
Duration uint64 `json:"duration" category:"$metrics" sub:"delay"` // us
IsNewFlow uint8 `json:"is_new_flow" category:"$tag" sub:"flow_info"`
Status uint8 `json:"status" category:"$tag" sub:"flow_info" enumfile:"status"`
AclGids []uint16
GPID0 uint32 `json:"gprocess_id_0" category:"$tag" sub:"universal_tag"`
GPID1 uint32 `json:"gprocess_id_1" category:"$tag" sub:"universal_tag"`
NatRealIP0 uint32 `json:"nat_real_ip_0" category:"$tag" sub:"capture_info" to_string:"IPv4String"`
NatRealIP1 uint32 `json:"nat_real_ip_1" category:"$tag" sub:"capture_info" to_string:"IPv4String"`
NatRealPort0 uint16 `json:"nat_real_port_0" category:"$tag" sub:"capture_info"`
NatRealPort1 uint16 `json:"nat_real_port_1" category:"$tag" sub:"capture_info"`
DirectionScore uint8 `json:"direction_score" category:"$metrics" sub:"l4_throughput"`
RequestDomain string `json:"request_domain" category:"$tag" sub:"application_layer"`
}
func (*FlowInfo) WriteBlock ¶
type Internet ¶
type Internet struct {
Province0 string `json:"province_0" category:"$tag" sub:"network_layer"`
Province1 string `json:"province_1" category:"$tag" sub:"network_layer"`
}
func (*Internet) WriteBlock ¶
type KafakaCode ¶
type KafakaCode int16
type KnowledgeGraph ¶
type KnowledgeGraph struct {
RegionID0 uint16 `json:"region_id_0" category:"$tag" sub:"universal_tag"`
RegionID1 uint16 `json:"region_id_1" category:"$tag" sub:"universal_tag"`
AZID0 uint16 `json:"az_id_0" category:"$tag" sub:"universal_tag"`
AZID1 uint16 `json:"az_id_1" category:"$tag" sub:"universal_tag"`
HostID0 uint16 `json:"host_id_0" category:"$tag" sub:"universal_tag"`
HostID1 uint16 `json:"host_id_1" category:"$tag" sub:"universal_tag"`
L3DeviceType0 uint8 `json:"l3_device_type_0" category:"$tag" sub:"universal_tag"`
L3DeviceType1 uint8 `json:"l3_device_type_1" category:"$tag" sub:"universal_tag"`
L3DeviceID0 uint32 `json:"l3_device_id_0" category:"$tag" sub:"universal_tag"`
L3DeviceID1 uint32 `json:"l3_device_id_1" category:"$tag" sub:"universal_tag"`
PodNodeID0 uint32 `json:"pod_node_id_0" category:"$tag" sub:"universal_tag"`
PodNodeID1 uint32 `json:"pod_node_id_1" category:"$tag" sub:"universal_tag"`
PodNSID0 uint16 `json:"pod_ns_id_0" category:"$tag" sub:"universal_tag"`
PodNSID1 uint16 `json:"pod_ns_id_1" category:"$tag" sub:"universal_tag"`
PodGroupID0 uint32 `json:"pod_group_id_0" category:"$tag" sub:"universal_tag"`
PodGroupID1 uint32 `json:"pod_group_id_1" category:"$tag" sub:"universal_tag"`
PodGroupType0 uint8 `json:"pod_group_type_0" category:"$tag" sub:"universal_tag" enumfile:"pod_group_type"` // no need to store
PodGroupType1 uint8 `json:"pod_group_type_1" category:"$tag" sub:"universal_tag" enumfile:"pod_group_type"` // no need to store
PodID0 uint32 `json:"pod_id_0" category:"$tag" sub:"universal_tag"`
PodID1 uint32 `json:"pod_id_1" category:"$tag" sub:"universal_tag"`
PodClusterID0 uint16 `json:"pod_cluster_id_0" category:"$tag" sub:"universal_tag"`
PodClusterID1 uint16 `json:"pod_cluster_id_1" category:"$tag" sub:"universal_tag"`
L3EpcID0 int32 `json:"l3_epc_id_0" category:"$tag" sub:"universal_tag"`
L3EpcID1 int32 `json:"l3_epc_id_1" category:"$tag" sub:"universal_tag"`
EpcID0 int32 `json:"epc_id_0" category:"$tag" sub:"universal_tag"`
EpcID1 int32 `json:"epc_id_1" category:"$tag" sub:"universal_tag"`
SubnetID0 uint16 `json:"subnet_id_0" category:"$tag" sub:"universal_tag"`
SubnetID1 uint16 `json:"subnet_id_1" category:"$tag" sub:"universal_tag"`
ServiceID0 uint32 `json:"service_id_0" category:"$tag" sub:"universal_tag"`
ServiceID1 uint32 `json:"service_id_1" category:"$tag" sub:"universal_tag"`
AutoInstanceID0 uint32 `json:"auto_instance_id_0" category:"$tag" sub:"universal_tag"`
AutoInstanceType0 uint8 `json:"auto_instance_type_0" category:"$tag" sub:"universal_tag" enumfile:"auto_instance_type"`
AutoServiceID0 uint32 `json:"auto_service_id_0" category:"$tag" sub:"universal_tag"`
AutoServiceType0 uint8 `json:"auto_service_type_0" category:"$tag" sub:"universal_tag" enumfile:"auto_service_type"`
AutoInstanceID1 uint32 `json:"auto_instance_id_1" category:"$tag" sub:"universal_tag"`
AutoInstanceType1 uint8 `json:"auto_instance_type_1" category:"$tag" sub:"universal_tag" enumfile:"auto_instance_type"`
AutoServiceID1 uint32 `json:"auto_service_id_1" category:"$tag" sub:"universal_tag"`
AutoServiceType1 uint8 `json:"auto_service_type_1" category:"$tag" sub:"universal_tag" enumfile:"auto_service_type"`
TagSource0 uint8
TagSource1 uint8
// Not stored, only determines which database to store in.
// When Orgid is 0 or 1, it is stored in database 'event', otherwise stored in '<OrgId>_event'.
OrgId uint16 `json:"org_id" category:"$tag"`
TeamID uint16 `json:"team_id" category:"$tag"`
}
func (*KnowledgeGraph) FillL4 ¶
func (k *KnowledgeGraph) FillL4(f *pb.Flow, isIPv6 bool, platformData *grpc.PlatformInfoTable)
func (*KnowledgeGraph) FillL7 ¶
func (k *KnowledgeGraph) FillL7(l *pb.AppProtoLogsBaseInfo, platformData *grpc.PlatformInfoTable, protocol layers.IPProtocol)
func (*KnowledgeGraph) FillOTel ¶
func (k *KnowledgeGraph) FillOTel(l *L7FlowLog, platformData *grpc.PlatformInfoTable)
func (*KnowledgeGraph) WriteBlock ¶
func (k *KnowledgeGraph) WriteBlock(block *ckdb.Block)
type L4FlowLog ¶
type L4FlowLog struct {
pool.ReferenceCount
DataLinkLayer
NetworkLayer
TransportLayer
ApplicationLayer
Internet
KnowledgeGraph
FlowInfo
Metrics
// contains filtered or unexported fields
}
func AcquireL4FlowLog ¶
func AcquireL4FlowLog() *L4FlowLog
func TaggedFlowToL4FlowLog ¶
func TaggedFlowToL4FlowLog(orgId, teamId uint16, f *pb.TaggedFlow, platformData *grpc.PlatformInfoTable) *L4FlowLog
func (*L4FlowLog) DataSource ¶
func (*L4FlowLog) EncodeTo ¶
func (l4 *L4FlowLog) EncodeTo(protocol config.ExportProtocol, utags *utag.UniversalTagsManager, cfg *config.ExporterCfg) (interface{}, error)
func (*L4FlowLog) GetFieldValueByOffsetAndKind ¶
func (*L4FlowLog) HitPcapPolicy ¶
func (*L4FlowLog) QueryUniversalTags ¶
func (l4 *L4FlowLog) QueryUniversalTags(utags *utag.UniversalTagsManager) (*utag.UniversalTags, *utag.UniversalTags)
func (*L4FlowLog) TimestampUs ¶
func (*L4FlowLog) WriteBlock ¶
type L4Packet ¶
type L4Packet struct {
StartTime int64
EndTime int64
FlowID uint64
VtapID uint16
// Not stored, only determines which database to store in.
// When Orgid is 0 or 1, it is stored in database 'flow_log', otherwise stored in '<OrgId>_flow_log'.
OrgId uint16
TeamID uint16
PacketCount uint32
PacketBatch []byte
}
func AcquireL4Packet ¶
func AcquireL4Packet() *L4Packet
func DecodePacketSequence ¶
func DecodePacketSequence(vtapID, orgId, teamId uint16, decoder *codec.SimpleDecoder) (*L4Packet, error)
func (*L4Packet) WriteBlock ¶
type L7Base ¶
type L7Base struct {
// 知识图谱
KnowledgeGraph
Time uint32 `json:"time" category:"$tag" sub:"flow_info"` // s
// 网络层
IP40 uint32 `json:"ip4_0" category:"$tag" sub:"network_layer" to_string:"IPv4String"`
IP41 uint32 `json:"ip4_1" category:"$tag" sub:"network_layer" to_string:"IPv4String"`
IP60 net.IP `json:"ip6_0" category:"$tag" sub:"network_layer" to_string:"IPv6String"`
IP61 net.IP `json:"ip6_1" category:"$tag" sub:"network_layer" to_string:"IPv6String"`
IsIPv4 bool `json:"is_ipv4" category:"$tag" sub:"network_layer"`
Protocol uint8 `json:"protocol" category:"$tag" sub:"network_layer" enumfile:"l7_ip_protocol"`
// 传输层
ClientPort uint16 `json:"client_port" category:"$tag" sub:"transport_layer" `
ServerPort uint16 `json:"server_port" category:"$tag" sub:"transport_layer"`
// 流信息
FlowID uint64 `json:"flow_id" category:"$tag" sub:"flow_info"`
TapType uint8 `json:"capture_network_type_id" category:"$tag" sub:"capture_info"`
NatSource uint8 `json:"nat_source" category:"$tag" sub:"capture_info" enumfile:"nat_source"`
TapPortType uint8 `json:"capture_nic_type category:"$tag" sub:"capture_info"`
SignalSource uint16 `json:"signal_source" category:"$tag" sub:"capture_info" enumfile:"l7_signal_source"`
TunnelType uint8 `json:"tunnel_type" category:"$tag" sub:"tunnel_info"`
TapPort uint32 `json:"capture_nic" category:"$tag" sub:"capture_info"`
TapSide string `json:"observation_point" category:"$tag" sub:"capture_info" enumfile:"observation_point"`
TapSideEnum uint8
VtapID uint16 `json:"agent_id" category:"$tag" sub:"capture_info"`
ReqTcpSeq uint32 `json:"req_tcp_seq" category:"$tag" sub:"transport_layer"`
RespTcpSeq uint32 `json:"resp_tcp_seq" category:"$tag" sub:"transport_layer"`
StartTime int64 `json:"start_time" category:"$tag" sub:"flow_info"` // us
EndTime int64 `json:"end_time" category:"$tag" sub:"flow_info"` // us
GPID0 uint32 `json:"gprocess_id_0" category:"$tag" sub:"universal_tag"`
GPID1 uint32 `json:"gprocess_id_1" category:"$tag" sub:"universal_tag"`
BizType uint8 `json:"biz_type" category:"$tag" sub:"capture_info"`
ProcessID0 uint32 `json:"process_id_0" category:"$tag" sub:"service_info"`
ProcessID1 uint32 `json:"process_id_1" category:"$tag" sub:"service_info"`
ProcessKName0 string `json:"process_kname_0" category:"$tag" sub:"service_info"`
ProcessKName1 string `json:"process_kname_1" category:"$tag" sub:"service_info"`
SyscallTraceIDRequest uint64 `json:"syscall_trace_id_request" category:"$tag" sub:"tracing_info"`
SyscallTraceIDResponse uint64 `json:"syscall_trace_id_response" category:"$tag" sub:"tracing_info"`
SyscallThread0 uint32 `json:"syscall_thread_0" category:"$tag" sub:"tracing_info"`
SyscallThread1 uint32 `json:"syscall_thread_1" category:"$tag" sub:"tracing_info"`
SyscallCoroutine0 uint64 `json:"syscall_coroutine_0" category:"$tag" sub:"tracing_info"`
SyscallCoroutine1 uint64 `json:"syscall_coroutine_1" category:"$tag" sub:"tracing_info"`
SyscallCapSeq0 uint32 `json:"syscall_cap_seq_0" category:"$tag" sub:"tracing_info"`
SyscallCapSeq1 uint32 `json:"syscall_cap_seq_1" category:"$tag" sub:"tracing_info"`
EncodedSpan []byte
}
func (*L7Base) Fill ¶
func (b *L7Base) Fill(log *pb.AppProtoLogsData, platformData *grpc.PlatformInfoTable)
func (*L7Base) WriteBlock ¶
type L7FlowLog ¶
type L7FlowLog struct {
pool.ReferenceCount
L7Base
L7Protocol uint8 `json:"l7_protocol" category:"$tag" sub:"application_layer" enumfile:"l7_protocol"`
L7ProtocolStr string `json:"l7_protocol_str" category:"$tag" sub:"application_layer"`
Version string `json:"version" category:"$tag" sub:"application_layer"`
Type uint8 `json:"type" category:"$tag" sub:"application_layer" enumfile:"l7_log_type"`
IsTLS uint8 `json:"is_tls" category:"$tag" sub:"application_layer"`
RequestType string `json:"request_type" category:"$tag" sub:"application_layer"`
RequestDomain string `json:"request_domain" category:"$tag" sub:"application_layer"`
RequestResource string `json:"request_resource" category:"$tag" sub:"application_layer"`
Endpoint string `json:"end_point" category:"$tag" sub:"service_info"`
// 数据库nullabled类型的字段, 需使用指针传值写入。如果值无意义,应传递nil.
RequestId *uint64 `json:"request_id" category:"$tag" sub:"application_layer" data_type:"*uint64"`
ResponseStatus uint8 `json:"response_status" category:"$tag" sub:"application_layer" enumfile:"response_status"`
ResponseCode *int32 `json:"response_code" category:"$tag" sub:"application_layer" data_type:"*int32"`
ResponseException string `json:"response_exception" category:"$tag" sub:"application_layer"`
ResponseResult string `json:"response_result" category:"$tag" sub:"application_layer"`
HttpProxyClient string `json:"http_proxy_client" category:"$tag" sub:"tracing_info"`
XRequestId0 string `json:"x_request_id_0" category:"$tag" sub:"tracing_info"`
XRequestId1 string `json:"x_request_id_1" category:"$tag" sub:"tracing_info"`
TraceId string `json:"trace_id" category:"$tag" sub:"tracing_info"`
TraceIdIndex uint64
SpanId string `json:"span_id" category:"$tag" sub:"tracing_info"`
ParentSpanId string `json:"parent_span_id" category:"$tag" sub:"tracing_info"`
SpanKind uint8
AppService string `json:"app_service" category:"$tag" sub:"service_info"`
AppInstance string `json:"app_instance" category:"$tag" sub:"service_info"`
ResponseDuration uint64 `json:"response_duration" category:"$metrics" sub:"delay"`
RequestLength *int64 `json:"request_length" category:"$metrics" sub:"throughput" data_type:"*int64"`
ResponseLength *int64 `json:"response_length" category:"$metrics" sub:"throughput" data_type:"*int64"`
SqlAffectedRows *uint64 `json:"sql_affected_rows" category:"$metrics" sub:"throughput" data_type:"*uint64"`
DirectionScore uint8 `json:"direction_score" category:"$metrics" sub:"l4_throughput"`
// For Packet signal sources, it represents the packet length captured by AF_PACKET, excluding the layer 4 headers; for eBPF signal sources, it indicates the number of bytes for a single system call, and note that when TCP stream reassembly is enabled, it represents the total number of bytes from multiple system calls.
CapturedRequestByte uint32 `json:"captured_request_byte" category:"$metrics" sub:"throughput"`
CapturedResponseByte uint32 `json:"captured_response_byte" category:"$metrics" sub:"throughput"`
AttributeNames []string `json:"attribute_names" category:"$tag" sub:"native_tag" data_type:"[]string"`
AttributeValues []string `json:"attribute_values" category:"$tag" sub:"native_tag" data_type:"[]string"`
MetricsNames []string `json:"metrics_names" category:"$metrics" data_type:"[]string"`
MetricsValues []float64 `json:"metrics_values" category:"$metrics" data_type:"[]float64"`
Events string `json:"events" category:"$tag" sub:"application_layer"`
// contains filtered or unexported fields
}
func AcquireL7FlowLog ¶
func AcquireL7FlowLog() *L7FlowLog
func OTelTracesDataToL7FlowLogs ¶
func OTelTracesDataToL7FlowLogs(vtapID, orgId, teamId uint16, l *v1.TracesData, platformData *grpc.PlatformInfoTable, cfg *flowlogCfg.Config) []*L7FlowLog
func ProtoLogToL7FlowLog ¶
func ProtoLogToL7FlowLog(orgId, teamId uint16, l *pb.AppProtoLogsData, platformData *grpc.PlatformInfoTable, cfg *flowlogCfg.Config) *L7FlowLog
func (*L7FlowLog) DataSource ¶
func (*L7FlowLog) EncodeTo ¶
func (l7 *L7FlowLog) EncodeTo(protocol config.ExportProtocol, utags *utag.UniversalTagsManager, cfg *config.ExporterCfg) (interface{}, error)
func (*L7FlowLog) EncodeToOtlp ¶
func (l7 *L7FlowLog) EncodeToOtlp(utags *utag.UniversalTagsManager, dataTypeBits uint64) interface{}
func (*L7FlowLog) Fill ¶
func (h *L7FlowLog) Fill(l *pb.AppProtoLogsData, platformData *grpc.PlatformInfoTable, cfg *flowlogCfg.Config)
func (*L7FlowLog) FillOTel ¶
func (h *L7FlowLog) FillOTel(l *v1.Span, resAttributes []*v11.KeyValue, platformData *grpc.PlatformInfoTable, cfg *flowlogCfg.Config)
func (*L7FlowLog) GenerateNewFlowTags ¶
func (h *L7FlowLog) GenerateNewFlowTags(cache *flow_tag.FlowTagCache)
func (*L7FlowLog) GetFieldValueByOffsetAndKind ¶
func (*L7FlowLog) QueryUniversalTags ¶
func (l7 *L7FlowLog) QueryUniversalTags(utags *utag.UniversalTagsManager) (*utag.UniversalTags, *utag.UniversalTags)
func (*L7FlowLog) TimestampUs ¶
func (*L7FlowLog) WriteBlock ¶
type Metrics ¶
type Metrics struct {
PacketTx uint64 `json:"packet_tx" category:"$metrics" sub:"l3_throughput"`
PacketRx uint64 `json:"packet_rx" category:"$metrics" sub:"l3_throughput"`
ByteTx uint64 `json:"byte_tx" category:"$metrics" sub:"l3_throughput"`
ByteRx uint64 `json:"byte_rx" category:"$metrics" sub:"l3_throughput"`
L3ByteTx uint64 `json:"l3_byte_tx" category:"$metrics" sub:"l3_throughput"`
L3ByteRx uint64 `json:"l3_byte_rx" category:"$metrics" sub:"l3_throughput"`
L4ByteTx uint64 `json:"l4_byte_tx" category:"$metrics" sub:"l4_throughput"`
L4ByteRx uint64 `json:"l4_byte_rx" category:"$metrics" sub:"l4_throughput"`
TotalPacketTx uint64 `json:"total_packet_tx" category:"$metrics" sub:"l3_throughput"`
TotalPacketRx uint64 `json:"total_packet_rx" category:"$metrics" sub:"l3_throughput"`
TotalByteTx uint64 `json:"total_byte_tx" category:"$metrics" sub:"l3_throughput"`
TotalByteRx uint64 `json:"total_byte_rx" category:"$metrics" sub:"l3_throughput"`
L7Request uint32 `json:"l7_request" category:"$metrics" sub:"application"`
L7Response uint32 `json:"l7_response" category:"$metrics" sub:"application"`
L7ParseFailed uint32 `json:"l7_parse_failed" category:"$metrics" sub:"application"`
RTT uint32 `json:"rtt" category:"$metrics" sub:"delay"` // us
RTTClient uint32 `json:"rtt_client" category:"$metrics" sub:"delay"` // us
RTTServer uint32 `json:"rtt_server" category:"$metrics" sub:"delay"` // us
TLSRTT uint32 `json:"tls_rtt" category:"$metrics" sub:"delay"` // us
SRTSum uint32 `json:"srt_sum" category:"$metrics" sub:"delay"`
ARTSum uint32 `json:"art_sum" category:"$metrics" sub:"delay"`
RRTSum uint64 `json:"rrt_sum" category:"$metrics" sub:"delay"`
CITSum uint32 `json:"cit_sum" category:"$metrics" sub:"delay"`
SRTCount uint32 `json:"srt_count" category:"$metrics" sub:"delay"`
ARTCount uint32 `json:"art_count" category:"$metrics" sub:"delay"`
RRTCount uint32 `json:"rrt_count" category:"$metrics" sub:"delay"`
CITCount uint32 `json:"cit_count" category:"$metrics" sub:"delay"`
SRTMax uint32 `json:"srt_max" category:"$metrics" sub:"delay"` // us
ARTMax uint32 `json:"art_max" category:"$metrics" sub:"delay"` // us
RRTMax uint32 `json:"rrt_max" category:"$metrics" sub:"delay"` // us
CITMax uint32 `json:"cit_max" category:"$metrics" sub:"delay"` // us
RetransTx uint32 `json:"retrans_tx" category:"$metrics" sub:"tcp_slow"`
RetransRx uint32 `json:"retrans_rx" category:"$metrics" sub:"tcp_slow"`
ZeroWinTx uint32 `json:"zero_win_tx" category:"$metrics" sub:"tcp_slow"`
ZeroWinRx uint32 `json:"zero_win_rx" category:"$metrics" sub:"tcp_slow"`
SynCount uint32 `json:"syn_count" category:"$metrics" sub:"l4_throughput"`
SynackCount uint32 `json:"synack_count" category:"$metrics" sub:"l4_throughput"`
RetransSyn uint32 `json:"retrans_syn" category:"$metrics" sub:"tcp_slow"`
RetransSynack uint32 `json:"retrans_synack" category:"$metrics" sub:"tcp_slow"`
L7ClientError uint32 `json:"l7_client_error" category:"$metrics" sub:"application"`
L7ServerError uint32 `json:"l7_server_error" category:"$metrics" sub:"application"`
L7ServerTimeout uint32 `json:"l7_server_timeout" category:"$metrics" sub:"application"`
L7Error uint32 `json:"l7_error" category:"$metrics" sub:"application"`
}
func (*Metrics) WriteBlock ¶
type NetworkLayer ¶
type NetworkLayer struct {
IP40 uint32 `json:"ip4_0" category:"$tag" sub:"network_layer" to_string:"IPv4String"`
IP41 uint32 `json:"ip4_1" category:"$tag" sub:"network_layer" to_string:"IPv4String"`
IP60 net.IP `json:"ip6_0" category:"$tag" sub:"network_layer"`
IP61 net.IP `json:"ip6_1" category:"$tag" sub:"network_layer"`
IsIPv4 bool `json:"is_ipv4" category:"$tag" sub:"network_layer"`
Protocol uint8 `json:"protocol" category:"$tag" sub:"network_layer" enumfile:"protocol" tranlate:"tunnel_tier"`
TunnelTier uint8 `json:"tunnel_tier" category:"$tag" sub:"tunnel_info" tranlate:"tunnel_type"`
TunnelType uint16 `json:"tunnel_type" category:"$tag" sub:"tunnel_info"`
TunnelTxID uint32 `json:"tunnel_tx_id" category:"$tag" sub:"tunnel_info"`
TunnelRxID uint32 `json:"tunnel_rx_id" category:"$tag" sub:"tunnel_info"`
TunnelTxIP40 uint32 `json:"tunnel_tx_ip4_0" category:"$tag" sub:"tunnel_info" to_string:"IPv4String"`
TunnelTxIP41 uint32 `json:"tunnel_tx_ip4_1" category:"$tag" sub:"tunnel_info" to_string:"IPv4String"`
TunnelRxIP40 uint32 `json:"tunnel_rx_ip4_0" category:"$tag" sub:"tunnel_info" to_string:"IPv4String"`
TunnelRxIP41 uint32 `json:"tunnel_rx_ip4_1" category:"$tag" sub:"tunnel_info" to_string:"IPv4String"`
TunnelTxIP60 net.IP `json:"tunnel_tx_ip6_0" category:"$tag" sub:"tunnel_info" to_string:"IPv6String"`
TunnelTxIP61 net.IP `json:"tunnel_tx_ip6_1" category:"$tag" sub:"tunnel_info" to_string:"IPv6String"`
TunnelRxIP60 net.IP `json:"tunnel_rx_ip6_0" category:"$tag" sub:"tunnel_info" to_string:"IPv6String"`
TunnelRxIP61 net.IP `json:"tunnel_rx_ip6_1" category:"$tag" sub:"tunnel_info" to_string:"IPv6String"`
TunnelIsIPv4 bool `json:"tunnel_is_ipv4" category:"$tag" sub:"tunnel_info"`
TunnelTxMac0 uint32 `json:"tunnel_tx_mac_0" category:"$tag" sub:"tunnel_info"`
TunnelTxMac1 uint32 `json:"tunnel_tx_mac_1" category:"$tag" sub:"tunnel_info"`
TunnelRxMac0 uint32 `json:"tunnel_rx_mac_0" category:"$tag" sub:"tunnel_info"`
TunnelRxMac1 uint32 `json:"tunnel_rx_mac_1" category:"$tag" sub:"tunnel_info"`
}
func (*NetworkLayer) WriteBlock ¶
func (n *NetworkLayer) WriteBlock(block *ckdb.Block)
type TransportLayer ¶
type TransportLayer struct {
ClientPort uint16 `json:"client_port" category:"$tag" sub:"transport_layer"`
ServerPort uint16 `json:"server_port" category:"$tag" sub:"transport_layer"`
TCPFlagsBit0 uint16 `json:"tcp_flags_bit_0" category:"$tag" sub:"transport_layer"`
TCPFlagsBit1 uint16 `json:"tcp_flags_bit_1" category:"$tag" sub:"transport_layer"`
SynSeq uint32 `json:"syn_seq" category:"$tag" sub:"transport_layer"`
SynAckSeq uint32 `json:"syn_ack_seq" category:"$tag" sub:"transport_layer"`
LastKeepaliveSeq uint32 `json:"last_keepalive_seq" category:"$tag" sub:"transport_layer"`
LastKeepaliveAck uint32 `json:"last_keepalive_ack" category:"$tag" sub:"transport_layer"`
}
func (*TransportLayer) Fill ¶
func (t *TransportLayer) Fill(f *pb.Flow)
func (*TransportLayer) WriteBlock ¶
func (t *TransportLayer) WriteBlock(block *ckdb.Block)
Source Files
¶
Click to show internal directories.
Click to hide internal directories.