forked from elastic/beats
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.go
114 lines (100 loc) · 2.41 KB
/
config.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package config
import (
"github.com/elastic/libbeat/common/droppriv"
"github.com/elastic/libbeat/logp"
"github.com/elastic/libbeat/outputs"
"github.com/elastic/libbeat/publisher"
"github.com/elastic/packetbeat/procs"
)
type Config struct {
Interfaces InterfacesConfig
Protocols Protocols
Output map[string]outputs.MothershipConfig
Shipper publisher.ShipperConfig
Procs procs.ProcsConfig
RunOptions droppriv.RunOptions
Logging logp.Logging
Filter map[string]interface{}
}
type InterfacesConfig struct {
Device string
Type string
File string
With_vlans bool
Bpf_filter string
Snaplen int
Buffer_size_mb int
TopSpeed bool
Dumpfile string
OneAtATime bool
Loop int
}
type Protocols struct {
Dns Dns
Http Http
Memcache Memcache
Mysql Mysql
Mongodb Mongodb
Pgsql Pgsql
Redis Redis
Thrift Thrift
}
type ProtocolCommon struct {
Ports []int `yaml:"ports"`
SendRequest *bool `yaml:"send_request"`
SendResponse *bool `yaml:"send_response"`
TransactionTimeout *int `yaml:"transaction_timeout"`
}
type Dns struct {
ProtocolCommon `yaml:",inline"`
Include_authorities *bool
Include_additionals *bool
}
type Http struct {
ProtocolCommon `yaml:",inline"`
Send_all_headers *bool
Send_headers []string
Split_cookie *bool
Real_ip_header *string
Include_body_for []string
Hide_keywords []string
Redact_authorization *bool
}
type Memcache struct {
ProtocolCommon `yaml:",inline"`
MaxValues int
MaxBytesPerValue int
UdpTransactionTimeout *int
ParseUnknown bool
}
type Mysql struct {
ProtocolCommon `yaml:",inline"`
Max_row_length *int
Max_rows *int
}
type Mongodb struct {
ProtocolCommon `yaml:",inline"`
Max_doc_length *int
Max_docs *int
}
type Pgsql struct {
ProtocolCommon `yaml:",inline"`
Max_row_length *int
Max_rows *int
}
type Thrift struct {
ProtocolCommon `yaml:",inline"`
String_max_size *int
Collection_max_size *int
Drop_after_n_struct_fields *int
Transport_type *string
Protocol_type *string
Capture_reply *bool
Obfuscate_strings *bool
Idl_files []string
}
type Redis struct {
ProtocolCommon `yaml:",inline"`
}
// Config Singleton
var ConfigSingleton Config