Zabbix Documentation 2.4

3.04.04.4 (current)| In development:5.0 (devel)| Unsupported:1.82.02.22.43.23.44.2Guidelines

User Tools

Site Tools


Sidebar

manual:appendix:zabbix_sender_dll

In a Windows environment applications can send data to Zabbix server/proxy directly by using the Zabbix sender dynamic link library (zabbix_sender.dll) instead of having to launch an external process (zabbix_sender.exe).

The dynamic link library with the development files is located in bin\winXX\dev folders. To use it, include the zabbix_sender.h header file and link with the zabbix_sender.lib library. An example file with Zabbix sender API usage can be found in build\win32\examples\zabbix_sender folder.

The following functionality is provided by the Zabbix sender dynamic link library:

int zabbix_sender_send_values(const char *address, unsigned short port,
        const char *source, const zabbix_sender_value_t *values, int count,
        char **result);
Description
Sends an array of value structures to the proxy/server. A value structure contains host name, item key and item value.
Parameters
address - [in] the server/proxy address
port - [in] the trapper port on the server/proxy
source - [in] the source IP (optional)
values - [in] an array of values to send
count - [in] the number of items in values array
result - [out] the server response or an error message (optional)
Return value
0 - operation completed successfully
-1 - operation failed
Comments
If the result variable is specified this function allocates the necessary memory to store server response/error message. It must be always freed afterwards with zabbix_sender_free_result() function.
If operation was successful the result contains server response which can be parsed with zabbix_sender_parse_result() function. In the case of error the error message will be stored into result instead.
int zabbix_sender_parse_result(const char *result, int *response,
        zabbix_sender_info_t *info);
Description
Parses the result returned from zabbix_sender_send_values() function.
Parameters
result - [in] the result returned by zabbix_sender_send_values() function.
response - [out] the operation response: 0 - success, -1 failed.
info - [out] the detailed information about operation, optional.
Return value
0 - operation completed successfully
-1 - operation failed
Comments
If info parameter was specified, but the function failed to parse the result info field, then the info structure field total is set to -1.
void zabbix_sender_free_result(void *result);
Description
Frees data allocated by zabbix_sender_send_values() function.
Parameters
result - the result returned by zabbix_sender_send_values() function.

The following data structures are used by the Zabbix sender dynamic link library:

typedef struct
{
	/* host name, must match the name of target host in Zabbix */
	char	*host;
	/* the item key */
	char	*key;
	/* the item value */
	char	*value;
}
zabbix_sender_value_t;
 
typedef struct
{
	/* number of total values processed */
	int	total;
	/* number of failed values */
	int	failed;
	/* time in seconds the server spent processing the sent values */
	double	time_spent;
}
zabbix_sender_info_t;