{"id":278358,"date":"2016-04-15T12:40:02","date_gmt":"2016-04-15T08:40:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=278358"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=278358","title":{"rendered":"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 Riemann: \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437 \u0441\u043e\u0431\u044b\u0442\u0438\u0439"},"content":{"rendered":"<p>       <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/c7b\/23c\/069\/c7b23c069ab32cbca7f9a9b125dd3423.png\" alt=\"Riemann\" width=\"100%\" height=\"100%\"\/><\/p>\n<p>  \u0412&nbsp;\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u043c\u044b&nbsp;\u0443\u0436\u0435 \u043d\u0435&nbsp;\u0440\u0430\u0437 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0442\u0438\u043a\u0443 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430, \u0441\u0431\u043e\u0440\u0430 \u0438 <br \/>  \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u0440\u0438\u043a (\u0441\u043c., \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/blog.selectel.ru\/time-series-metriki-i-statistika-vvedenie-v-influxdb\/\">\u0437\u0434\u0435\u0441\u044c<\/a> \u0438&nbsp;<a href=\"https:\/\/blog.selectel.ru\/monitoring-servisov-s-prometheus\/\">\u0437\u0434\u0435\u0441\u044c<\/a>). \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b&nbsp;\u0445\u043e\u0442\u0435\u043b\u0438&nbsp;\u0431\u044b \u0441\u043d\u043e\u0432\u0430 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a&nbsp;\u044d\u0442\u043e\u0439 \u0442\u0435\u043c\u0435 \u0438&nbsp;\u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e&nbsp;\u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u043c, \u043d\u043e&nbsp;\u0432\u0435\u0441\u044c\u043c\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0435&nbsp;&mdash; <a href=\"http:\/\/riemann.io\" rel=\"nofollow\">Riemann<\/a>.<br \/>  <a name=\"habracut\"><\/a><\/p>\n<p>  \u041f\u043e&nbsp;\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441&nbsp;\u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043e\u043d&nbsp;\u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u043d\u043e\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e, <br \/>  \u0438&nbsp;\u0432&nbsp;\u0442\u043e&nbsp;\u0436\u0435 \u0432\u0440\u0435\u043c\u044f&nbsp;&mdash; \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c\u044e \u0438&nbsp;\u043e\u0442\u043a\u0430\u0437\u043e\u0443c\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c\u044e. \u041d\u0430&nbsp;\u043f\u0440\u043e\u0441\u0442\u043e\u0440\u0430\u0445 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u043d\u0430\u043c \u0434\u043e\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0442\u044c \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0433\u0434\u0435 Riemann \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0437\u0443\u044e\u0442 \u043a\u0430\u043a \u00ab\u0441\u0430\u043c\u0443\u044e \u0433\u0438\u0431\u043a\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0432&nbsp;\u043c\u0438\u0440\u0435\u00bb. Riemann \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0432\u044b\u0441\u043e\u043a\u043e\u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>  \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0432&nbsp;\u0441\u0442\u0440\u043e\u0433\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435 Riemann \u043d\u0435&nbsp;\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u0431\u044b\u043b\u043e&nbsp;\u0431\u044b \u0435\u0433\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 (event processor). <br \/>  \u041e\u043d&nbsp;\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e&nbsp;\u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0445 \u0441&nbsp;\u0445\u043e\u0441\u0442\u043e\u0432 \u0438&nbsp;\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432&nbsp;\u043f\u043e\u0442\u043e\u043a \u0438&nbsp;\u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0438\u0445&nbsp;\u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u043b\u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f. \u0422\u0430\u043a\u0436\u0435 Riemann \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0438&nbsp;\u0440\u0430\u0441\u0441\u044b\u043b\u0430\u0442\u044c \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>  Riemann \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u043f\u043e&nbsp;\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 <a href=\"https:\/\/github.com\/aphyr\/riemann\/blob\/master\/LICENSE\" rel=\"nofollow\">Eclipse<\/a>. \u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u041a\u0430\u0439\u043b\u043e\u043c \u041a\u0438\u043d\u0433\u0441\u0431\u0435\u0440\u0438, \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u043c \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0434 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u043e\u043c <a href=\"https:\/\/aphyr.com\/\">Aphyr<\/a> (\u043a\u0441\u0442\u0430\u0442\u0438, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0433\u043e \u0431\u043b\u043e\u0433: \u0442\u0430\u043c \u0447\u0430\u0441\u0442\u043e \u0431\u044b\u0432\u0430\u044e\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b).<\/p>\n<h2>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0432&nbsp;\u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/h2>\n<p>  \u0420\u043e\u0441\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u043a&nbsp;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0442\u0438\u043a\u0435 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430, \u0441\u0431\u043e\u0440\u0430, \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438&nbsp;\u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043c\u0435\u0442\u0440\u0438\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b&nbsp;\u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c \u0432&nbsp;\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f, \u0432\u043f\u043e\u043b\u043d\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u043c: \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0432\u0441\u0451 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0438&nbsp;\u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u043c\u0438. \u0412&nbsp;\u0441\u043b\u0443\u0447\u0430\u0435 \u0441&nbsp;\u0432\u044b\u0441\u043e\u043a\u043e\u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 \u043e\u0441\u043e\u0431\u0443\u044e \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0432&nbsp;\u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, Riemann \u0438&nbsp;\u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443.<\/p>\n<p>  \u0418\u0434\u0435\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0432&nbsp;\u0440\u0435\u0436\u0438\u043c\u0435, \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u043d\u043e\u043c \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0435&nbsp;\u043d\u043e\u0432\u0430: \u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0435\u0451&nbsp;\u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u044c \u0435\u0449\u0451 \u0432&nbsp;\u043a\u043e\u043d\u0446\u0435 1980-\u0445 \u0433\u043e\u0434\u043e\u0432. \u0412&nbsp;\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Active_database\" rel=\"nofollow\">Active Database Systems <\/a>(\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u0435 \u0432&nbsp;\u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u043d\u0430\u0431\u043e\u0440\u0443 \u0443\u0441\u043b\u043e\u0432\u0438\u0439. <\/p>\n<p>  \u0412&nbsp;1990-\u0445 \u0433\u043e\u0434\u0430\u0445 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Data_stream_management_system\">Data Stream Management Systems<\/a>), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u043c\u043e\u0433\u043b\u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432&nbsp;\u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0438&nbsp;\u0441\u0438\u0441\u0442\u0435\u043c\u044b <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D1%8B%D1%85_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9\" rel=\"nofollow\">\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439<\/a> (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Complex_event_processing\" rel=\"nofollow\">Complex Event Processing<\/a>, \u0441\u043e\u043a\u0440\u0430\u0449\u0451\u043d\u043d\u043e CEP). \u0422\u0430\u043a\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u043a\u0430\u043a \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043d\u0430&nbsp;\u043e\u0441\u043d\u043e\u0432\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438&nbsp;\u0437\u0430\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u043b\u043e\u0433\u0438\u043a\u0438, \u0442\u0430\u043a \u0438&nbsp;\u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0437\u0430&nbsp;\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0438\u043e\u0434 \u0432\u0440\u0435\u043c\u0435\u043d\u0438).<\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043c\u043e\u0433\u0443\u0442 \u0441\u043b\u0443\u0436\u0438\u0442\u044c, \u0432&nbsp;\u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, <a href=\"http:\/\/storm.apache.org\/\" rel=\"nofollow\">Storm<\/a> (\u0441\u043c. \u0442\u0430\u043a\u0436\u0435 <a href=\"http:\/\/www.ibm.com\/developerworks\/ru\/library\/os-twitterstorm\/\" rel=\"nofollow\">\u0441\u0442\u0430\u0442\u044c\u044e \u043e&nbsp;\u043d\u0451\u043c \u043d\u0430&nbsp;\u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435<\/a>) \u0438&nbsp;<a href=\"http:\/\/www.espertech.com\/esper\/\" rel=\"nofollow\">Esper<\/a>. \u041e\u043d\u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043d\u0430&nbsp;\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0435\u0437 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f. Riemann&nbsp;&mdash; \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0442\u0430\u043a\u043e\u0433\u043e&nbsp;\u0436\u0435 \u043a\u043b\u0430\u0441\u0441\u0430. \u0412&nbsp;\u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442&nbsp;\u0442\u043e\u0433\u043e&nbsp;\u0436\u0435 Storm \u043e\u043d&nbsp;\u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442 \u0438&nbsp;\u043b\u043e\u0433\u0438\u0447\u0435\u043d: \u0432c\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0432&nbsp;\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435. <br \/>  \u041c\u043d\u043e\u0433\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0432-\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0432 \u044d\u0442\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043c\u043e\u0436\u0435\u0442 \u0438&nbsp;\u043e\u0442\u043f\u0443\u0433\u043d\u0443\u0442\u044c: \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043f\u043e&nbsp;\u0441\u0443\u0442\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043a\u043e\u0434 \u043d\u0430&nbsp;\u044f\u0437\u044b\u043a\u0435 <a href=\"http:\/\/clojure.org\" rel=\"nofollow\">Clojure<\/a>, \u043d\u043e&nbsp;\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0438&nbsp;Riemann.<\/p>\n<p>  Clojure \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a&nbsp;\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c (\u0430&nbsp;\u0433\u043e\u0432\u043e\u0440\u044f \u0435\u0449\u0451 \u0442\u043e\u0447\u043d\u0435\u0435&nbsp;&mdash; \u043b\u0438\u0441\u043f\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u043c) \u044f\u0437\u044b\u043a\u0430\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0447\u0442\u043e \u0441\u0430\u043c\u043e \u043f\u043e&nbsp;\u0441\u0435\u0431\u0435 \u0443\u0436\u0435 \u043d\u0430\u0441\u0442\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u0435\u0442. \u041e\u0434\u043d\u0430\u043a\u043e \u0432&nbsp;\u044d\u0442\u043e\u043c \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u0442\u0440\u0430\u0448\u043d\u043e\u0433\u043e: \u043f\u0440\u0438 \u0432\u0441\u0451\u043c \u0441\u0432\u043e\u0451\u043c \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u0438\u0438 Clojure \u043d\u0435&nbsp;\u0442\u0430\u043a \u0441\u043b\u043e\u0436\u0435\u043d, \u043a\u0430\u043a \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0430&nbsp;\u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e.<\/p>\n<h2>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043e&nbsp;Clojure<\/h2>\n<p>  Clojure \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430&nbsp;\u0431\u0430\u0437\u0435 LISP. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u043d\u0430&nbsp;Clojure, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430&nbsp;\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u0435 JVM. \u041f\u0435\u0440\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432&nbsp;2007&nbsp;\u0433\u043e\u0434\u0443. \u0421\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0432\u044b\u0448\u043b\u0430 \u0432&nbsp;\u0441\u0432\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043d\u0430&nbsp;\u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0438\u0439 \u0434\u0435\u043d\u044c \u0432\u0435\u0440\u0441\u0438\u044f&nbsp;&mdash; 1.8.0.<\/p>\n<p>  Clojure \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432&nbsp;\u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0442\u0430\u043a\u0438\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439, \u043a\u0430\u043a Facebook, Spotify, SoundCloud, Amazon \u0438&nbsp;\u0434\u0440\u0443\u0433\u0438\u0445 (\u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a&nbsp;\u0441\u043c. \u043d\u0430&nbsp;<a href=\"http:\/\/clojure.org\/community\/companies\" rel=\"nofollow\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u0430\u0439\u0442\u0435<\/a>). <\/p>\n<p>  \u0412&nbsp;\u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442&nbsp;\u0434\u0440\u0443\u0433\u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 LISP \u0434\u043b\u044f JVM (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, ABCL \u0438\u043b\u0438 Kawa), Clojure \u043d\u0435&nbsp;\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0438&nbsp;\u0441&nbsp;Common Lisp, \u043d\u0438&nbsp;\u0441\u043e&nbsp;Scheme, \u043e\u0434\u043d\u0430\u043a\u043e \u0438\u0437&nbsp;\u044d\u0442\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u0432&nbsp;\u043d\u0451\u043c \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043e. \u0415\u0441\u0442\u044c \u0432&nbsp;Clojure \u0438&nbsp;\u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u0442 \u0432&nbsp;\u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0434\u0438\u0430\u043b\u0435\u043a\u0442\u0430\u0445 LISP: \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u0442\u043d\u043e\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u0438&nbsp;\u0442.\u043f. <\/p>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a Clojure \u0431\u044b\u043b \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441&nbsp;JVM, \u0432&nbsp;\u043d\u0451\u043c \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441&nbsp;\u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b. \u0412\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441&nbsp;Java \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0432&nbsp;\u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u0434, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f Java. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u0438\u0437&nbsp;Java \u0438&nbsp;\u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u043d\u0430&nbsp;\u0431\u0430\u0437\u0435 JVM&nbsp;&mdash; \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f Scala. \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e&nbsp;Clojure \u0438&nbsp;\u0435\u0433\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432&nbsp;<a href=\"http:\/\/alexott.net\/ru\/clojure\/clojure-intro\/index.html\" rel=\"nofollow\">\u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>, \u0430&nbsp;\u0442\u0430\u043a\u0436\u0435 <a href=\"http:\/\/riemann.io\/clojure.html\" rel=\"nofollow\">\u043d\u0430&nbsp;\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u0430\u0439\u0442\u0435 Riemann<\/a>. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u0442\u0430\u043a\u0436\u0435 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0435\u0449\u0451 \u0441&nbsp;\u043e\u0434\u043d\u0438\u043c \u043a\u0440\u0430\u0442\u043a\u0438\u043c, \u043d\u043e&nbsp;\u0432\u0435\u0441\u044c\u043c\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u044b\u043c <a href=\"https:\/\/adambard.com\/blog\/clojure-in-15-minutes\/\" rel=\"nofollow\"> \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u0432&nbsp;Clojure<\/a>.<\/p>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438&nbsp;\u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a<\/h2>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441&nbsp;Riemann, \u043d\u0430\u043c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435<br \/>  \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438: Java \u0438&nbsp;Ruby (\u043d\u0430&nbsp;\u043d\u0451\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u043e&nbsp;\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0435\u0447\u044c \u0435\u0449\u0451 \u043f\u043e\u0439\u0434\u0451\u0442 \u043d\u0438\u0436\u0435):<\/p>\n<pre><code class=\"bash\">$ sudo apt-get -y install default-jre ruby-dev build-essential <\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u0438&nbsp;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e Riemann:<\/p>\n<pre><code class=\"bash\">$ wget https:\/\/aphyr.com\/riemann\/riemann-0.2.10_all.deb $ dpkg -i riemann-0.2.10_all.deb <\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c:<\/p>\n<pre><code class=\"bash\">$ sudo service riemann start <\/code><\/pre>\n<p>  \u0414\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0442\u0430\u043a\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u043d\u0430&nbsp;Ruby \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0438&nbsp;\u043c\u0435\u0442\u0440\u0438\u043a:<\/p>\n<pre><code class=\"bash\">$ gem install riemann-client riemann-tools  <\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u0438&nbsp;\u0432\u0441\u0451. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441&nbsp;Riemann \u0432\u0441\u0451 \u0433\u043e\u0442\u043e\u0432\u043e. \u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a&nbsp;\u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u0438, \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0442\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u0438&nbsp;\u043f\u0440\u043e\u044f\u0441\u043d\u0438\u043c \u0441\u043c\u044b\u0441\u043b \u0432\u0430\u0436\u043d\u0435\u0439\u0448\u0438\u0445 \u043f\u043e\u043d\u044f\u0442\u0438\u0439: \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u043f\u043e\u0442\u043e\u043a\u0438 \u0438&nbsp;\u0438\u043d\u0434\u0435\u043a\u0441.<\/p>\n<h2>\u0421\u043e\u0431\u044b\u0442\u0438\u044f, \u043f\u043e\u0442\u043e\u043a\u0438 \u0438&nbsp;\u0438\u043d\u0434\u0435\u043a\u0441<\/h2>\n<p>  \u0411\u0430\u0437\u043e\u0432\u044b\u043c \u043f\u043e\u043d\u044f\u0442\u0438\u0435\u043c \u0432&nbsp;Riemann \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0435. \u0421\u043e\u0431\u044b\u0442\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c, \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c, \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438&nbsp;\u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432&nbsp;\u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0421\u043e\u0431\u044b\u0442\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">{:host riemann, :service riemann streams rate, :state ok, :description nil, :metric 0.0, :tags [riemann], :time 355740372471\/250, :ttl 20} <\/code><\/pre>\n<p>  \u041f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437&nbsp;\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u043b\u0435\u0439:<\/p>\n<ul>\n<li>:host&nbsp;&mdash; \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430;<\/li>\n<li>:service&nbsp;&mdash; \u0438\u043c\u044f \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430;<\/li>\n<li>:state&nbsp;&mdash; \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f (ok, warning, critical);<\/li>\n<li>:tags&nbsp;&mdash; \u043c\u0435\u0442\u043a\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f;<\/li>\n<li>:time&nbsp;&mdash; \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432&nbsp;\u0444\u043e\u0440\u043c\u0430\u0442\u0435 Unix Timestamp;<\/li>\n<li>:description&nbsp;&mdash; \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432&nbsp;\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435;<\/li>\n<li>:metric&nbsp;&mdash; \u043c\u0435\u0442\u0440\u0438\u043a\u0430, \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0441&nbsp;\u0441\u043e\u0431\u044b\u0442\u0438\u0435\u043c;<\/li>\n<li>:ttl&nbsp;&mdash; \u0432\u0440\u0435\u043c\u044f \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f (\u0432&nbsp;\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445).<\/li>\n<\/ul>\n<p>  \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u0442\u044c \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0430\u043a&nbsp;\u0432\u043e&nbsp;\u0432\u0440\u0435\u043c\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f, \u0442\u0430\u043a \u0438&nbsp;\u0432\u043e&nbsp;\u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u043b\u044f \u0441&nbsp;\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c\u0438).<br \/>  \u0412\u0441\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0432&nbsp;\u043f\u043e\u0442\u043e\u043a\u0438. \u041f\u043e\u0442\u043e\u043a&nbsp;&mdash; \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0435. <\/p>\n<p>  \u0412\u044b&nbsp;\u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432. \u0421\u043e\u0431\u044b\u0442\u0438\u044f \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u0442\u043e\u043a\u0438, \u043d\u043e&nbsp;\u043d\u0435&nbsp;\u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432&nbsp;\u043d\u0438\u0445. \u041e\u0434\u043d\u0430\u043a\u043e \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439&nbsp;&mdash; \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443\u0442\u0440\u0430\u0442\u0438\u043b\u0438 \u043e\u043d\u0438 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u043b\u0438 \u043d\u0435\u0442. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u043d\u0434\u0435\u043a\u0441&nbsp;&mdash; \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439. \u0412&nbsp;\u0438\u043d\u0434\u0435\u043a\u0441\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u043e&nbsp;\u0433\u0440\u0443\u043f\u043f\u0430\u043c \u043f\u043e&nbsp;\u0445\u043e\u0441\u0442\u0443 \u0438&nbsp;\u043f\u043e&nbsp;\u0441\u0435\u0440\u0432\u0438\u0441\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"bash\">:host www, :service apache connections, :state nil, :description nil, :metric 100.0, :tags [www], :time 466741572492, :ttl 20 <\/code><\/pre>\n<p>  \u042d\u0442\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0435, \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0435\u0434\u0448\u0435\u0435 \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 www \u0432 \u0441\u0435\u0440\u0432\u0438\u0441\u0435 apache connections. \u0412 \u0438\u043d\u0434\u0435\u043a\u0441\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u0435. \u041a \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0438\u0437 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0438 \u0434\u0430\u0436\u0435 \u0438\u0437 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432. <\/p>\n<p>  \u041c\u044b \u0443\u0436\u0435 \u0432\u0438\u0434\u0435\u043b\u0438, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u043b\u0435 TTL (time to live). TTL \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c. \u0412 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 TTL \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 20 \u0441\u0435\u043a\u0443\u043d\u0434. \u0412 \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432\u0441\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 :host www \u0438 :service apache connections. \u0415\u0441\u043b\u0438 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 20 \u0441\u0435\u043a\u0443\u043d\u0434 \u0442\u0430\u043a\u0438\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043e \u043d\u043e\u0432\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c expired \u0432 \u043f\u043e\u043b\u0435 state. \u0417\u0430\u0442\u0435\u043c \u043e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0432 \u043f\u043e\u0442\u043e\u043a. <\/p>\n<h2>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h2>\n<p>  \u041f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u043e\u0442 \u0442\u0435\u043e\u0440\u0438\u0438 \u043a \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0438 \u0437\u0430\u0439\u043c\u0451\u043c\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c Riemann. \u041e\u0442\u043a\u0440\u043e\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \/etc\/riemann\/riemann.config. \u041e\u043d \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043d\u0430 Clojure \u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code>; -*- mode: clojure; -*- ; vim: filetype=clojure  (logging\/init {:file &quot;\/var\/log\/riemann\/riemann.log&quot;})  ; Listen on the local interface over TCP (5555), UDP (5555), and websockets ; (5556) (let [host &quot;127.0.0.1&quot;]   (tcp-server {:host host})   (udp-server {:host host})   (ws-server  {:host host}))  ; Expire old events from the index every 5 seconds. (periodically-expire 5)  (let [index (index)]   ; Inbound events will be passed to these streams:   (streams     (default :ttl 60       ; Index all events immediately.       index        ; Log expired events.       (expired         (fn [event] (info &quot;expired&quot; event))))))  <\/code><\/pre>\n<p>  \u042d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d \u043d\u0430&nbsp;\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441&nbsp;\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u043c\u043e\u0433\u043e, \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0432&nbsp;Clojure, \u0442\u043e\u0447\u043a\u043e\u0439 \u0441&nbsp;\u0437\u0430\u043f\u044f\u0442\u043e\u0439 (;).<\/p>\n<p>  \u0412&nbsp;\u043f\u0435\u0440\u0432\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u0443\u043a\u0430\u0437\u0430\u043d \u0444\u0430\u0439\u043b, \u0432&nbsp;\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043b\u043e\u0433\u0438. \u0414\u0430\u043b\u0435\u0435 \u0438\u0434\u0451\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u0441&nbsp;\u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432. \u041e\u0431\u044b\u0447\u043d\u043e Riemann \u0441\u043b\u0443\u0448\u0430\u0435\u0442 \u043d\u0430&nbsp;TCP-, UDP- \u0438&nbsp;\u0432\u0435\u0431\u0441\u043e\u043a\u0435\u0442-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435. \u041f\u043e&nbsp;\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u0441\u0435 \u043e\u043d\u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u044b \u043a&nbsp;\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0445\u043e\u0441\u0442\u0443 (127.0.0.1). <\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0434\u0435\u043b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0438&nbsp;\u0438\u043d\u0434\u0435\u043a\u0441\u0430:<\/p>\n<pre><code>(periodically-expire 5)  (let [index (index)]   ; Inbound events will be passed to these streams:   (streams     (default :ttl 60       ; Index all events immediately.       index <\/code><\/pre>\n<p>  \u041f\u0435\u0440\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f (periodically-expire) \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0438\u0437&nbsp;\u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0432\u0441\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0443&nbsp;\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0441\u0442\u0451\u043a \u043f\u0435\u0440\u0438\u043e\u0434 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0438&nbsp;\u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442 \u0438\u043c&nbsp;\u0441\u0442\u0430\u0442\u0443\u0441 expired. \u041e\u0447\u0438\u0441\u0442\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u0436\u0434\u044b\u0435 5&nbsp;\u0441\u0435\u043a\u0443\u043d\u0434.<\/p>\n<p>  \u041f\u043e&nbsp;\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e Riemann \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u0432&nbsp;\u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0441&nbsp;\u0438\u0441\u0442\u0451\u043a\u0448\u0438\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u044f :service \u0438 :host. \u041c\u043e\u0436\u043d\u043e \u0441&nbsp;\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438&nbsp;\u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u043b\u044f; \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0441&nbsp;\u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 periodically-expired \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u044e :key-keys. \u0412\u043e\u0442 \u0442\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u044b&nbsp;\u043c\u043e\u0436\u0435\u043c \u0434\u0430\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043d\u0435&nbsp;\u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430 \u0438&nbsp;\u0438\u043c\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430, \u043d\u043e&nbsp;\u0435\u0449\u0451 \u0438&nbsp;\u0442\u044d\u0433\u0438:<\/p>\n<pre><code>(periodically-expire 5 {:keep-keys [:host :service :tags]}) <\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f, \u0432&nbsp;\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b&nbsp;\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0441\u0438\u043c\u0432\u043e\u043b \u0441&nbsp;\u0438\u043c\u0435\u043d\u0435\u043c index. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430&nbsp;&mdash; index, \u0442.\u0435. \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432&nbsp;\u0438\u043d\u0434\u0435\u043a\u0441. \u041e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c Riemann, \u043a\u043e\u0433\u0434\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e&nbsp;\u0438\u043b\u0438 \u0438\u043d\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435. <\/p>\n<p>  \u0421&nbsp;\u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 streams \u043c\u044b&nbsp;\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u0442\u043e\u043a\u0438. \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0443\u044e \u0432&nbsp;\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0435. \u0424\u0443\u043d\u043a\u0446\u0438\u044f streams \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 Riemann: \u00ab\u0432\u043e\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439\u00bb. \u0412\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u044b&nbsp;\u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c TTL \u0434\u043b\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0439&nbsp;&mdash; 60&nbsp;\u0441\u0435\u043a\u0443\u043d\u0434. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b&nbsp;\u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 default, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0435\u0440\u0451\u0442 \u043f\u043e\u043b\u0435 \u0438\u0437&nbsp;\u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0438&nbsp;\u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e&nbsp;\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0421\u043e\u0431\u044b\u0442\u0438\u044f, \u0443&nbsp;\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u0442 TTL, \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 expired. <\/p>\n<p>  \u0417\u0430\u0442\u0435\u043c \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0438\u043c\u0432\u043e\u043b index. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u0441\u0435 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432&nbsp;\u0438\u043d\u0434\u0435\u043a\u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438.<\/p>\n<p>  \u0417\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u043b\u043e\u0433\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0441\u043e&nbsp;\u0441\u0442\u0430\u0442\u0443\u0441\u043e\u043c expired:<\/p>\n<pre><code>; Log expired events.       (expired         (fn [event] (info &quot;expired&quot; event)))))) <\/code><\/pre>\n<p>  \u0412\u043d\u0435\u0441\u0451\u043c \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435, \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d\u043d\u043e\u043c \u0441\u0435\u0442\u0435\u0432\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043c, \u0437\u0430\u043c\u0435\u043d\u0438\u043c 127.0.0.1 \u043d\u0430 0.0.0.0, \u0447\u0442\u043e\u0431\u044b Riemann \u043c\u043e\u0433 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0441 \u043b\u044e\u0431\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430.<\/p>\n<p>  \u0412 \u0441\u0430\u043c\u044b\u0439 \u043a\u043e\u043d\u0435\u0446 \u0444\u0430\u0439\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u043c:<\/p>\n<pre><code>;print events to the log (streams   prn    #(info %)) <\/code><\/pre>\n<p>  \u042d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f prn, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432 \u043b\u043e\u0433\u0438 \u0438 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u0432\u043d\u0435\u0441\u0451\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c Riemann.<\/p>\n<p>  \u0412&nbsp;\u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435&nbsp;\u043e\u0431\u0449\u0438\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0430&nbsp;\u0446\u0435\u043b\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0441&nbsp;\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 (\u0441\u043c. \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u0432 <a href=\"https:\/\/the-arm.com\/2014\/01\/27\/riemann-learnings\/\" rel=\"nofollow\">\u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>).<\/p>\n<p>  \u0421 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0435\u0439 \u043f\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f <a href=\"https:\/\/github.com\/jdmaturen\/reimann\/blob\/master\/riemann.config.guide\" rel=\"nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>. <\/p>\n<h2>\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432&nbsp;Riemann<\/h2>\n<p>  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432&nbsp;Riemann. \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c riemann-health, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432&nbsp;\u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u0440\u0430\u043d\u0435\u0435 \u043f\u0430\u043a\u0435\u0442 riemann-tools. \u041e\u0442\u043a\u0440\u043e\u0435\u043c \u0435\u0449\u0451 \u043e\u0434\u043d\u0443 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u0438&nbsp;\u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c:<\/p>\n<pre><code class=\"bash\">$ riemann-health <\/code><\/pre>\n<p>  \u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 Riemann \u0434\u0430\u043d\u043d\u044b\u0435 \u043e&nbsp;\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0445\u043e\u0441\u0442\u0430 (\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 CPU, \u043e\u0431\u044a\u0451\u043c \u0437\u0430\u043d\u044f\u0442\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430, \u043e\u0431\u044a\u0451\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438).<br \/>  Riemann \u043d\u0430\u0447\u043d\u0451\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f. \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u044d\u0442\u0438\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0445 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0444\u0430\u0439\u043b \/var\/log\/riemann\/riemann.log. \u041e\u043d\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0432\u0438\u0434\u0435:<\/p>\n<pre><code>#riemann.codec.Event{:host &quot;cs25706&quot;, :service &quot;disk \/&quot;, :state &quot;ok&quot;, :description &quot;8% used&quot;, :metric 0.08, :tags nil, :time 1456470139, :ttl 10.0} INFO [2016-02-26 10:02:19,571] defaultEventExecutorGroup-2-1 - riemann.config - #riemann.codec.Event{:host cs25706, :service disk \/, :state ok, :description 8% used, :metric 0.08, :tags nil, :time 1456470139, :ttl 10.0} #riemann.codec.Event{:host &quot;cs25706&quot;, :service &quot;load&quot;, :state &quot;ok&quot;, :description &quot;1-minute load average\/core is 0.02&quot;, :metric 0.02, :tags nil, :time 1456470139, :ttl 10.0} <\/code><\/pre>\n<p>  Riemann-health&nbsp;&mdash; \u044d\u0442\u043e \u043b\u0438\u0448\u044c \u043e\u0434\u043d\u0430 \u0438\u0437&nbsp;\u0443\u0442\u0438\u043b\u0438\u0442 \u0432&nbsp;\u043f\u0430\u043a\u0435\u0442\u0435 riemann-tools. \u0412&nbsp;\u043d\u0435\u0433\u043e \u0432\u0445\u043e\u0434\u0438\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0442\u0438\u043b\u0438\u0442 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u0440\u0438\u043a: riemann-net (\u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432), riemann-diskstats (\u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430), riemann-proc (\u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0432&nbsp;Linux) \u0438&nbsp;\u0434\u0440\u0443\u0433\u0438\u0435. \u0421 \u043f\u043e\u043b\u043d\u044b\u043c \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0443\u0442\u0438\u043b\u0438\u0442 \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f <a href=\"https:\/\/github.com\/riemann\/riemann-tools\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<h2>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443<\/h2>\n<p>  \u0418\u0442\u0430\u043a, Riemann \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0438 \u0437\u0430\u043f\u0443\u0449\u0435\u043d. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443. \u041e\u0442\u043a\u0440\u043e\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0438&nbsp;\u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432&nbsp;\u043d\u0435\u0433\u043e \u0442\u0430\u043a\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438:<\/p>\n<pre><code>(let [index (index)]    (streams      (default :ttl 60        index     ;#(info %)     (where (and (service &quot;disk \/&quot;) (&gt; metric 0.10))      #(info &quot;Disk space on \/ is over 10%!&quot; %))   <\/code><\/pre>\n<p>  \u041f\u0435\u0440\u0435\u0434 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 (#info) \u0441\u0442\u043e\u0438\u0442 \u0437\u043d\u0430\u043a \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f&nbsp;&mdash; \u0442\u043e\u0447\u043a\u0430 \u0441&nbsp;\u0437\u0430\u043f\u044f\u0442\u043e\u0439 (;). \u042d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e, \u0447\u0442\u043e\u0431\u044b Riemann \u043d\u0435&nbsp;\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u043a\u0430\u0436\u0434\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0432&nbsp;\u043b\u043e\u0433. \u0414\u0430\u043b\u0435\u0435 \u043c\u044b&nbsp;\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u0442\u043e\u043a where. \u0412&nbsp;\u043d\u0435\u0433\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044e. \u0412&nbsp;\u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0442\u0430\u043a\u0438\u0445 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432 \u0434\u0432\u0430:<\/p>\n<ul>\n<li>\u043f\u043e\u043b\u0435 :service \u0434\u043e\u043b\u0436\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 disk \/;<\/li>\n<li>\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044f :metric \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 0.10 \u0438\u043b\u0438 10%.<\/li>\n<\/ul>\n<p>  \u0417\u0430\u0442\u0435\u043c \u043e\u043d\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432&nbsp;\u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0439 \u043f\u043e\u0442\u043e\u043a \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412&nbsp;\u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e&nbsp;\u0442\u0430\u043a\u0438\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0445 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432&nbsp;\u0444\u0430\u0439\u043b \/var\/log\/riemann\/riemann.log. <\/p>\n<h2>\u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f: \u043a\u0440\u0430\u0442\u043a\u0430\u044f \u0441\u043f\u0440\u0430\u0432\u043a\u0430<\/h2>\n<p>  \u0411\u0435\u0437 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 c&nbsp;Riemann \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e&nbsp;\u043d\u0435\u0439 \u0441\u0442\u043e\u0438\u0442 \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e. <\/p>\n<p>  \u041d\u0430\u0447\u043d\u0451\u043c \u0441&nbsp;\u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0441&nbsp;\u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u0430 where:<\/p>\n<pre><code>where (service #\u201d^nginx\u201d))  <\/code><\/pre>\n<p>  \u0412&nbsp;Clojure \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442\u0441\u044f \u0437\u043d\u0430\u043a\u043e\u043c # \u0438&nbsp;\u0437\u0430\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0432&nbsp;\u0434\u0432\u043e\u0439\u043d\u044b\u0435 \u043a\u0430\u0432\u044b\u0447\u043a\u0438. \u0412&nbsp;\u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432&nbsp;\u043f\u043e\u0442\u043e\u043a where \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0443&nbsp;\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0438\u043c\u044f nginx \u0432&nbsp;\u043f\u043e\u043b\u0435 :service.<\/p>\n<p>  \u0421\u043e\u0431\u044b\u0442\u0438\u044f \u0432&nbsp;\u043f\u043e\u0442\u043e\u043a\u0435 where \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u0441&nbsp;\u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432:<\/p>\n<pre><code>(where (and (tagged &quot;www&quot;) (state &quot;ok&quot;)))  <\/code><\/pre>\n<p>  \u0412&nbsp;\u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432&nbsp;\u043f\u043e\u0442\u043e\u043a where \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0441&nbsp;\u0442\u044d\u0433\u043e\u043c www \u0438&nbsp;\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c ok&nbsp;\u0432&nbsp;\u043f\u043e\u043b\u0435 state. \u041e\u043d\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0441&nbsp;\u0441\u043e\u0431\u044b\u0442\u0438\u044f\u043c\u0438 \u0438\u0437&nbsp;\u043f\u043e\u0442\u043e\u043a\u0430 tagged. <br \/>  Tagged&nbsp;&mdash; \u044d\u0442\u043e \u0441\u043e\u043a\u0440\u0430\u0449\u0451\u043d\u043d\u043e\u0435 \u0438\u043c\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 tagged-all, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0432\u0441\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0441&nbsp;\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0442\u044d\u0433\u0430\u043c\u0438. \u0415c\u0442\u044c \u0435\u0449\u0451 \u0444\u0443\u043d\u043a\u0446\u0438\u044f tagged-any&nbsp;&mdash; \u043e\u043d\u0430 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0432&nbsp;\u043f\u043e\u0442\u043e\u043a \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0435 \u043e\u0434\u043d\u0438\u043c \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0438\u0437&nbsp;\u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0442\u044d\u0433\u043e\u0432:<\/p>\n<pre><code>(tagged-any [&quot;www&quot; &quot;app1&quot;] #(info %))  <\/code><\/pre>\n<p>  \u0412&nbsp;\u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432&nbsp;\u043f\u043e\u0442\u043e\u043a tagged \u043f\u043e\u043f\u0430\u0434\u0443\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0435 \u0442\u044d\u0433\u0430\u043c\u0438 www \u0438&nbsp;app1. <\/p>\n<p>  \u041f\u043e&nbsp;\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a&nbsp;\u0441\u043e\u0431\u044b\u0442\u0438\u044f\u043c \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code>(where (and (tagged &quot;www&quot;) (&gt;= (* metric 10) 5))) <\/code><\/pre>\n<p>  \u0412&nbsp;\u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0441&nbsp;\u0442\u044d\u0433\u043e\u043c www, \u0443&nbsp;\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044f :metric, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u043d\u0430&nbsp;10, \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 5. <br \/>  \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0443&nbsp;\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432&nbsp;\u043f\u043e\u043b\u0435 :metric \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432&nbsp;\u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d:<\/p>\n<pre><code>(where (and (tagged &quot;www&quot;) (&lt; 5 metric 10)))  <\/code><\/pre>\n<p>  \u0412&nbsp;\u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432&nbsp;\u043f\u043e\u0442\u043e\u043a where \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0441&nbsp;\u0442\u044d\u0433\u043e\u043c www, \u0443&nbsp;\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044f :metric \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432&nbsp;\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 5&nbsp;&mdash;10.<\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439<\/h2>\n<p>  Riemann \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u0441\u044b\u043b\u0430\u0442\u044c \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0432&nbsp;\u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a. \u041d\u0430\u0447\u043d\u0451\u043c \u0441&nbsp;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043f\u043e&nbsp;\u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u0435. \u0412&nbsp;Riemann \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f email:<\/p>\n<p>  [<\/p>\n<pre><code>(def email (mailer {:from &quot;riemann@example.com&quot;}))  (let [index (index)] ; Inbound events will be passed to these streams: (streams   (default :ttl 60     ; Index all events immediately.     index      (changed-state {:init &quot;ok&quot;}       (email &quot;andrei@example.com&quot;))))) <\/code><\/pre>\n<p>  \u0420\u0430\u0441\u0441\u044b\u043b\u043a\u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u0432&nbsp;Riemann \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430&nbsp;\u0431\u0430\u0437\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043d\u0430&nbsp;Clojure&nbsp;&mdash; <a href=\"https:\/\/github.com\/drewr\/postal\">Postal<\/a>. \u041f\u043e&nbsp;\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440.<br \/>  \u0412\u0441\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441&nbsp;\u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u0438\u0434\u0430 riemann@example.com. <\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435&nbsp;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d, Riemann \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431&nbsp;\u043e\u0448\u0438\u0431\u043a\u0435 \u0432\u0438\u0434\u0430:<\/p>\n<pre><code class=\"java\">riemann.email$mailer$make_stream threw java.lang.NullPointerException <\/code><\/pre>\n<p>  \u0412&nbsp;\u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u043c \u0432\u044b\u0448\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043a\u043e\u0434\u0430 \u043c\u044b&nbsp;\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u044f\u0440\u043b\u044b\u043a changed-state \u0438&nbsp;\u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0443\u043a\u0430\u0437\u0430\u043b\u0438, \u0447\u0442\u043e Riemann \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 init \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 Riemann, \u043a\u0430\u043a\u0438\u043c \u0431\u044b\u043b\u043e \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f. \u0412\u0441\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c \u0441&nbsp;ok&nbsp;\u043d\u0430&nbsp;\u043a\u0430\u043a\u043e\u0435-\u043b\u0438\u0431\u043e \u0434\u0440\u0443\u0433\u043e\u0435, \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 email. \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e&nbsp;\u0442\u0430\u043a\u0438\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0445 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0430&nbsp;\u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b.<br \/>  \u0421&nbsp;\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0432&nbsp;<a href=\"https:\/\/kartar.net\/2015\/03\/custom-emails-with-riemann\/\">\u0441\u0442\u0430\u0442\u044c\u0435 \u0414\u0436\u0435\u0439\u043c\u0441\u0430 \u0422\u0435\u0440\u043d\u0431\u0443\u043b\u043b\u0430<\/a>, \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437&nbsp;\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 Riemann.<\/p>\n<h2>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0435\u0442\u0440\u0438\u043a: riemann-dash<\/h2>\n<p>  \u0412&nbsp;Riemann \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0435\u0442\u0440\u0438\u043a \u0438&nbsp;\u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u0432&nbsp;&mdash; riemann-dash. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">$ git clone git:\/\/github.com\/aphyr\/riemann-dash.git $ cd riemann-dash $ bundle <\/code><\/pre>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f riemann-dash \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/p>\n<pre><code class=\"bash\">$ riemann-dash <\/code><\/pre>\n<p>  \u0414\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 riemann-dash \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432&nbsp;\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u043f\u043e&nbsp;\u0430\u0434\u0440\u0435\u0441\u0443 [ip-a\u0434\u0440\u0435\u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430]:4567:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/blog.selectel.ru\/wp-content\/uploads\/2016\/04\/Riemann-dash1.png\" alt=\"riemann-dash\" width=\"100%\" height=\"100%\"\/><\/p>\n<p>  \u041f\u043e\u0434\u0432\u0435\u0434\u0451\u043c \u043a&nbsp;\u0447\u0451\u0440\u043d\u043e\u0439 \u043d\u0430\u0434\u043f\u0438\u0441\u0438 Riemann \u0432&nbsp;\u0441\u0430\u043c\u043e\u043c \u0446\u0435\u043d\u0442\u0440\u0435, \u043d\u0430\u0436\u043c\u0451\u043c \u043a\u043b\u0430\u0432\u0438\u0448\u0443 Ctrl (\u043d\u0430&nbsp;Mac&nbsp;&mdash; cmd) \u0438&nbsp;\u043a\u043b\u0438\u043a\u043d\u0435\u043c \u043f\u043e&nbsp;\u043d\u0435\u0439. \u041d\u0430\u0434\u043f\u0438\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0430 \u0441\u0435\u0440\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u043c. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0436\u043c\u0451\u043c \u043d\u0430&nbsp;\u043a\u043b\u0430\u0432\u0438\u0448\u0443&nbsp;E, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a&nbsp;\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.selectel.ru\/wp-content\/uploads\/2016\/04\/riemann-dash-2.png\" alt=\"riemann-dash\" width=\"438\" height=\"439\"\/><\/p>\n<p>  \u0412&nbsp;\u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0435\u043c \u043c\u0435\u043d\u044e title \u0432\u044b\u0431\u0435\u0440\u0435\u043c \u043f\u0443\u043d\u043a\u0442 Grid, \u0430&nbsp;\u0432&nbsp;\u043f\u043e\u043b\u0435 query \u043d\u0430\u043f\u0438\u0448\u0435\u043c true:<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.selectel.ru\/wp-content\/uploads\/2016\/04\/riemann-dash-3.png\" alt=\"riemann-dash\" width=\"434\" height=\"438\"\/><\/p>\n<p>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0432 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u043d\u0430\u0436\u043c\u0451\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 Apply:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/blog.selectel.ru\/wp-content\/uploads\/2016\/04\/riemann-dash-4.png\" alt=\"riemann-dash\" width=\"100%\" height=\"100%\"\/><\/p>\n<p>  \u0414\u0430\u0448\u0431\u043e\u0440\u0434 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u044d\u0441\u0442\u0435\u0442\u0438\u0447\u043d\u044b\u0439 \u0438 \u0443\u0434\u043e\u0431\u043d\u044b\u0439, \u043d\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0439. \u041d\u0435\u0443\u0434\u043e\u0431\u0441\u0442\u0432\u043e, \u043e\u0434\u043d\u0430\u043a\u043e, \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0442\u0435\u043c, \u0447\u0442\u043e \u0441 Riemann \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, d \u0432 \u0447\u0430\u0441\u0442\u043e\u0441\u0442\u0438 Graphite \u0438 Grafana &mdash; \u0437\u0430\u0438\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u0431\u0435\u0437 \u0442\u0440\u0443\u0434\u0430 \u0441\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0439\u0442\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435. \u0410 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0432\u044f\u0437\u043a\u0438 Riemann+InfluxDB+Grafana \u043c\u044b \u043e\u043f\u0438\u0448\u0435\u043c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435.<\/p>\n<h2>\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 InfluxDB<\/h2>\n<p>  \u041d\u0435\u0441\u043e\u043c\u043d\u0435\u043d\u043d\u044b\u043c \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u043c Riemann \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0448\u0438\u0440\u043e\u043a\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438. \u0421\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0441&nbsp;\u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0432&nbsp;\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430. \u041d\u0438\u0436\u0435 \u043c\u044b&nbsp;\u043f\u043e\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c Riemann c&nbsp;<a href=\"https:\/\/blog.selectel.ru\/time-series-metriki-i-statistika-vvedenie-v-influxdb\/\">InfluxDB<\/a> \u0438&nbsp;\u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445 \u0441&nbsp;\u043f\u043e\u043c\u043e\u0449\u044c\u044e Grafana. <\/p>\n<p>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c InfluxDB:<\/p>\n<pre><code class=\"bash\">$ wget https:\/\/s3.amazonaws.com\/influxdb\/influxdb_0.9.6.1_amd64.deb $ sudo dpkg -i influxdb_0.9.6.1_amd64.deb <\/code><\/pre>\n<p>  \u041e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438\u0438 InfluxDB \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 <a href=\"https:\/\/docs.influxdata.com\/influxdb\/\" rel=\"nofollow\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432 <a href=\"https:\/\/habrahabr.ru\/company\/selectel\/blog\/245515\/\">\u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439<\/a>.<\/p>\n<p>  \u041f\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">$ sudo \/etc\/init.d\/influxdb start <\/code><\/pre>\n<p>  \u0417\u0430\u0442\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0431\u0430\u0437\u0443 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437&nbsp;Riemann:<\/p>\n<pre><code class=\"bash\">$ sudo influx  &gt;CREATE DATABASE riemann <\/code><\/pre>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0431\u0430\u0437\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438&nbsp;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044c:<\/p>\n<pre><code class=\"bash\">&gt;CREATE USER riemann WITH PASSWORD \u2018\u043f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f riemann\u2019 &gt;GRANT ALL ON riemann TO riemann <\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u0438&nbsp;\u0432\u0441\u0451, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438&nbsp;\u0431\u0430\u0437\u043e\u0432\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 InfluxDB \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u044b. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432&nbsp;\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 Riemann (\u043a\u043e\u0434 \u0432\u0437\u044f\u0442 <a href=\"http:\/\/tensor.readthedocs.org\/en\/stable\/examples.html\" rel=\"nofollow\">\u043e\u0442\u0441\u044e\u0434\u0430<\/a> \u0438&nbsp;\u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d):<\/p>\n<pre><code>; -*- mode: clojure; -*- ; vim: filetype=clojure  ;\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c capacitor, \u043a\u043b\u0438\u0435\u043d\u0442 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 InfluxDB (require 'capacitor.core) (require 'capacitor.async) (require 'clojure.core.async)  (defn make-async-influxdb-client [opts]     (let [client (capacitor.core\/make-client opts)           events-in (capacitor.async\/make-chan)           resp-out (capacitor.async\/make-chan)]         (capacitor.async\/run! events-in resp-out client 100 10000)         (fn [series payload]             (let [p (merge payload {                     :series series                     :time   (* 1000 (:time payload)) ;; s \u2192 ms                 })]                 (clojure.core.async\/put! events-in p)))))  (def influx (make-async-influxdb-client {         :host     &quot;localhost&quot;         :port     8086         :username &quot;riemann&quot;         :password &quot;\u043f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f riemann&quot;         :db       &quot;riemann&quot;     }))  (logging\/init {:file &quot;\/var\/log\/riemann\/riemann.log&quot;})   (let [host &quot;0.0.0.0&quot;]   (tcp-server {:host host})   (udp-server {:host host})   (ws-server  {:host host}))  (periodically-expire 60)  (let [index (index)]   (streams         index          (fn [event]             (let [series (format &quot;%s.%s&quot; (:host event) (:service event))]                 (influx series {                     :time  (:time event)                     :value (:metric event)                 }))))) <\/code><\/pre>\n<p>  \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u0432\u043d\u0435\u0441\u0451\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438&nbsp;\u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c Riemann.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c Grafana:<\/p>\n<pre><code class=\"bash\">$ wget https:\/\/grafanarel.s3.amazonaws.com\/builds\/grafana_2.6.0_amd64.deb $ sudo dpkg -i grafana_2.6.0_amd64.deb <\/code><\/pre>\n<p>  \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043f\u043e&nbsp;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 Grafana \u043c\u044b&nbsp;\u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0435&nbsp;\u0431\u0443\u0434\u0435\u043c, \u0434\u0430&nbsp;\u0432&nbsp;\u044d\u0442\u043e\u043c \u0438&nbsp;\u043d\u0435\u0442 \u043e\u0441\u043e\u0431\u043e\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438: \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u0435\u0437 \u0442\u0440\u0443\u0434\u0430 \u043d\u0430\u0439\u0442\u0438 \u0432&nbsp;\u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435.<\/p>\n<p>  \u0414\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 Grafana \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432&nbsp;\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u043f\u043e&nbsp;\u0430\u0434\u0440\u0435\u0441\u0443 http:\/\/[IP-\u0430\u0434\u0440\u0435\u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430]:3000. \u0414\u0430\u043b\u0435\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445 (InfluxDB) \u0438&nbsp;\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u0430\u0448\u0431\u043e\u0440\u0434.<\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>  \u0412&nbsp;\u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b&nbsp;\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 Riemann. \u041c\u044b&nbsp;\u0437\u0430\u0442\u0440\u043e\u043d\u0443\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0435\u043c\u044b:<\/p>\n<ul>\n<li>\u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u044f\u0437\u044b\u043a\u0430 Clojure;<\/li>\n<li>\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438&nbsp;\u043f\u0435\u0440\u0432\u0438\u0447\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Riemann;<\/li>\n<li>\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0438&nbsp;\u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0435\u0433\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430;<\/li>\n<li>\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a;<\/li>\n<li>\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439;<\/li>\n<li>\u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0435\u0442\u0440\u0438\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e riemann-dash<\/li>\n<li>\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f Riemann c&nbsp;InfluxDB \u0438&nbsp;\u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0435\u0442\u0440\u0438\u043a \u0441&nbsp;\u043f\u043e\u043c\u043e\u0449\u044c\u044e Grafana<\/li>\n<\/ul>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043c\u044b&nbsp;\u0443\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0432\u0430\u0436\u043d\u044b\u0435 \u0434\u0435\u0442\u0430\u043b\u0438&nbsp;&mdash; \u043d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u043d\u0430\u043c, \u0438&nbsp;\u043c\u044b&nbsp;\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u043c \u043e\u0431\u0437\u043e\u0440. \u0410&nbsp;\u0435\u0441\u043b\u0438 \u0432\u044b&nbsp;\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 Riemann \u043d\u0430&nbsp;\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435, \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u0435\u043c \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c \u0432&nbsp;\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e \u0442\u0435\u043c \u0438\u043b\u0438 \u0438\u043d\u044b\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0437\u0434\u0435\u0441\u044c &mdash; \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/blog.selectel.ru\/kratkoe-vvedenie-v-riemann-monitoring-i-analiz-sobytij\/\">\u0432 \u043d\u0430\u0448 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0431\u043b\u043e\u0433<\/a>.               <\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habrahabr.ru\/post\/281651\/\"> https:\/\/habrahabr.ru\/post\/281651\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>       <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/c7b\/23c\/069\/c7b23c069ab32cbca7f9a9b125dd3423.png\" alt=\"Riemann\" width=\"100%\" height=\"100%\"\/><\/p>\n<p>  \u0412&nbsp;\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u043c\u044b&nbsp;\u0443\u0436\u0435 \u043d\u0435&nbsp;\u0440\u0430\u0437 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0442\u0438\u043a\u0443 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430, \u0441\u0431\u043e\u0440\u0430 \u0438 <br \/>  \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u0440\u0438\u043a (\u0441\u043c., \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/blog.selectel.ru\/time-series-metriki-i-statistika-vvedenie-v-influxdb\/\">\u0437\u0434\u0435\u0441\u044c<\/a> \u0438&nbsp;<a href=\"https:\/\/blog.selectel.ru\/monitoring-servisov-s-prometheus\/\">\u0437\u0434\u0435\u0441\u044c<\/a>). \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b&nbsp;\u0445\u043e\u0442\u0435\u043b\u0438&nbsp;\u0431\u044b \u0441\u043d\u043e\u0432\u0430 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a&nbsp;\u044d\u0442\u043e\u0439 \u0442\u0435\u043c\u0435 \u0438&nbsp;\u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e&nbsp;\u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u043c, \u043d\u043e&nbsp;\u0432\u0435\u0441\u044c\u043c\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0435&nbsp;&mdash; <a href=\"http:\/\/riemann.io\" rel=\"nofollow\">Riemann<\/a>.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-278358","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/278358","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=278358"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/278358\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=278358"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=278358"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=278358"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}