@@ -53,6 +53,7 @@ type Metrics struct {
5353 JMX * protocol.JMXProtocol `json:"jmx,omitempty"`
5454 Redis * protocol.RedisProtocol `json:"redis,omitempty"`
5555 MongoDB * protocol.MongoDBProtocol `json:"mongodb,omitempty"`
56+ Milvus * protocol.MilvusProtocol `json:"milvus,omitempty"`
5657}
5758
5859// Field represents a metric field
@@ -169,6 +170,119 @@ type ValueRow struct {
169170
170171// Protocol specific types
171172
173+ // HTTPProtocol represents HTTP protocol configuration
174+ type HTTPProtocol struct {
175+ URL string `json:"url"`
176+ Method string `json:"method"`
177+ Headers map [string ]string `json:"headers"`
178+ Params map [string ]string `json:"params"`
179+ Body string `json:"body"`
180+ ParseScript string `json:"parseScript"`
181+ ParseType string `json:"parseType"`
182+ Keyword string `json:"keyword"`
183+ Timeout string `json:"timeout"`
184+ SSL string `json:"ssl"`
185+ Authorization * Authorization `json:"authorization"`
186+ }
187+
188+ // Authorization represents HTTP authorization configuration
189+ type Authorization struct {
190+ Type string `json:"type"`
191+ BasicAuthUsername string `json:"basicAuthUsername"`
192+ BasicAuthPassword string `json:"basicAuthPassword"`
193+ DigestAuthUsername string `json:"digestAuthUsername"`
194+ DigestAuthPassword string `json:"digestAuthPassword"`
195+ BearerTokenToken string `json:"bearerTokenToken"`
196+ }
197+
198+ // SSHProtocol represents SSH protocol configuration
199+ type SSHProtocol struct {
200+ Host string `json:"host"`
201+ Port string `json:"port"`
202+ Username string `json:"username"`
203+ Password string `json:"password"`
204+ PrivateKey string `json:"privateKey"`
205+ PrivateKeyPassphrase string `json:"privateKeyPassphrase"`
206+ Script string `json:"script"`
207+ ParseType string `json:"parseType"`
208+ ParseScript string `json:"parseScript"`
209+ Timeout string `json:"timeout"`
210+ ReuseConnection string `json:"reuseConnection"`
211+ UseProxy string `json:"useProxy"`
212+ ProxyHost string `json:"proxyHost"`
213+ ProxyPort string `json:"proxyPort"`
214+ ProxyUsername string `json:"proxyUsername"`
215+ ProxyPassword string `json:"proxyPassword"`
216+ ProxyPrivateKey string `json:"proxyPrivateKey"`
217+ }
218+
219+ // JDBCProtocol represents JDBC protocol configuration
220+ type JDBCProtocol struct {
221+ Host string `json:"host"`
222+ Port string `json:"port"`
223+ Platform string `json:"platform"`
224+ Username string `json:"username"`
225+ Password string `json:"password"`
226+ Database string `json:"database"`
227+ Timeout string `json:"timeout"`
228+ QueryType string `json:"queryType"`
229+ SQL string `json:"sql"`
230+ URL string `json:"url"`
231+ ReuseConnection string `json:"reuseConnection"`
232+ SSHTunnel * protocol.SSHTunnel `json:"sshTunnel,omitempty"`
233+ }
234+
235+ // SNMPProtocol represents SNMP protocol configuration
236+ type SNMPProtocol struct {
237+ Host string `json:"host"`
238+ Port int `json:"port"`
239+ Version string `json:"version"`
240+ Community string `json:"community"`
241+ Username string `json:"username"`
242+ AuthType string `json:"authType"`
243+ AuthPasswd string `json:"authPasswd"`
244+ PrivType string `json:"privType"`
245+ PrivPasswd string `json:"privPasswd"`
246+ ContextName string `json:"contextName"`
247+ Timeout int `json:"timeout"`
248+ Operation string `json:"operation"`
249+ OIDs string `json:"oids"`
250+ }
251+
252+ // JMXProtocol represents JMX protocol configuration
253+ type JMXProtocol struct {
254+ Host string `json:"host"`
255+ Port int `json:"port"`
256+ Username string `json:"username"`
257+ Password string `json:"password"`
258+ Protocol string `json:"protocol"`
259+ URL string `json:"url"`
260+ Timeout int `json:"timeout"`
261+ }
262+
263+ // RedisProtocol represents Redis protocol configuration
264+ type RedisProtocol struct {
265+ Host string `json:"host"`
266+ Port string `json:"port"`
267+ Username string `json:"username"`
268+ Password string `json:"password"`
269+ Pattern string `json:"pattern"`
270+ Timeout string `json:"timeout"`
271+ SSHTunnel * protocol.SSHTunnel `json:"sshTunnel,omitempty"`
272+ }
273+
274+ // MongoDBProtocol represents MongoDB protocol configuration
275+ type MongoDBProtocol struct {
276+ Host string `json:"host"`
277+ Port int `json:"port"`
278+ Username string `json:"username"`
279+ Password string `json:"password"`
280+ Database string `json:"database"`
281+ AuthDatabase string `json:"authDatabase"`
282+ Command string `json:"command"`
283+ Timeout int `json:"timeout"`
284+ }
285+
172286// GetInterval returns the interval for the metric, using default if not set
173287func (m * Metrics ) GetInterval () time.Duration {
174288 if m .Interval > 0 {
0 commit comments