nn_env(7)
==========


NAME
----
nn_env - nanomsg environment variables


DESCRIPTION
-----------

*This functionality is experimental and a subject to change at any time*

Following environment variables are used to turn on some debugging for any
nanomsg application. Please, do not try to parse output and do not
build business logic based on it.

NN_PRINT_ERRORS::
    If set to non-empty string nanomsg will print errors to stderr. Some errors
    will be resolved by nanomsg itself (e.g. if nanomsg can't establish
    connection it will retry again in a moment). Some depend on the
    environment (e.g. port that is bound by another process need to be
    released). In any case nanomsg will not repeat the error message until
    error is clear and appear again (e.g. connection established then broken
    again).

NN_PRINT_STATISTICS::
    If set to non-empty string nanomsg will print some statistics to stderr.
    That's statistics is intended for debugging purposes only.

NN_STATISTICS_SOCKET::
    The nanomsg address to send statistics to. Nanomsg opens NN_PUB socket
    and sends statistics there. The data is sent using ESTP protocol.


NOTES
-----

The output of both debugging facilities (NN_PRINT_ERRORS, NN_PRINT_STATISTICS)
is intended for reading by human and a subject for change at any time (even
after 1.0 release).

The NN_STATISTICS_SOCKET facility is intended to use by system administrators
to debug network and application issues. The ESTP format is stable. But the
nanomsg support of it is experimental and is subject to change or removal
until 1.0 release.

Anyway, there is *no excuse* for making application logic based on the data
described here.  And by application logic we mean any of the following:

* Load balancing
* Failover
* Routing requests
* Executing nn_connect/nn_bind

There are other ways for load-balancing and failover in nanomsg. If you feel
you can't do something, consider ask on the mailing list first.


SEE ALSO
--------
linknanomsg:nanomsg[7]

http://github.com/estp

http://github.com/estp/estp/blob/master/specification.rst


AUTHORS
-------
Paul Colomiets <paul@colomiets.name>

