@@ -168,6 +168,12 @@ class ZabbixSender(object):
168
168
:type timeout: int
169
169
:param timeout: Number of seconds before call to Zabbix server times out
170
170
Default: 10
171
+
172
+ :type agent_hostname: str
173
+ :param agent_hostname: Default metric host field if not specified in metric.
174
+ This corresponds to 'Hostname' agent configuration option.
175
+ Default: None
176
+
171
177
>>> from pyzabbix import ZabbixMetric, ZabbixSender
172
178
>>> metrics = []
173
179
>>> m = ZabbixMetric('localhost', 'cpu[usage]', 20)
@@ -182,16 +188,18 @@ def __init__(self,
182
188
use_config = None ,
183
189
chunk_size = 250 ,
184
190
socket_wrapper = None ,
185
- timeout = 10 ):
191
+ timeout = 10 ,
192
+ agent_hostname = None ):
186
193
187
194
self .chunk_size = chunk_size
188
195
self .timeout = timeout
189
196
190
197
self .socket_wrapper = socket_wrapper
191
198
if use_config :
192
- self .zabbix_uri = self ._load_from_config (use_config )
199
+ self .zabbix_uri , self . agent_hostname = self ._load_from_config (use_config )
193
200
else :
194
201
self .zabbix_uri = [(zabbix_server , zabbix_port )]
202
+ self .agent_hostname = agent_hostname
195
203
196
204
def __repr__ (self ):
197
205
"""Represent detailed ZabbixSender view."""
@@ -255,9 +263,14 @@ def _load_from_config(self, config_file):
255
263
server , port = serverport .split (':' )
256
264
serverport = (server , int (port ))
257
265
result .append (serverport )
258
- logger .debug ("Loaded params: %s" , result )
259
266
260
- return result
267
+ agent_hostname = None
268
+ if config .has_option ('root' , 'Hostname' ):
269
+ agent_hostname = config .get ('root' , 'Hostname' )
270
+
271
+ logger .debug ("Loaded params: %s, %s" , result , agent_hostname )
272
+
273
+ return result , agent_hostname
261
274
262
275
def _receive (self , sock , count ):
263
276
"""Reads socket to receive data from zabbix server.
@@ -293,6 +306,8 @@ def _create_messages(self, metrics):
293
306
294
307
# Fill the list of messages
295
308
for m in metrics :
309
+ if m .host is None or m .host == '-' :
310
+ m .host = self .agent_hostname
296
311
messages .append (str (m ))
297
312
298
313
logger .debug ('Messages: %s' , messages )
0 commit comments