Exemple #1
0
        public void PublishCheckResult(JObject check)
        {
            var payload = new JObject();

            payload["check"]  = check;
            payload["client"] = _sensuClientConfigurationReader.SensuClientConfig.Client.Name;
            if (_sensuClientConfigurationReader.SensuClientConfig.Client.MailTo != null && _sensuClientConfigurationReader.SensuClientConfig.Client.MailTo.Count > 0)
            {
                payload["check"]["mail_to"] = string.Join(",", _sensuClientConfigurationReader.SensuClientConfig.Client.MailTo);
            }
            payload["check"]["executed"] = SensuClientHelper.CreateTimeStamp();
            payload["check"]["issued"]   = payload["check"]["executed"];

            try
            {
                PublishResult(payload);

                if (_sensuClientConfigurationReader.SensuClientConfig.Client.SendMetricWithCheck && ((string)check["type"]).Equals("standard"))
                {
                    // publish the same result as metric too
                    payload["check"]["type"] = "metric";
                    PublishResult(payload);
                }
            } catch (Exception e)
            {
                Log.Warn(e, "Error publishing check Result");
            }
        }
Exemple #2
0
        private void PublishKeepAlive(IModel ch)
        {
            var keepAlive = _sensuClientConfigurationReader.Configuration.Config["client"];

            keepAlive["timestamp"] = SensuClientHelper.CreateTimeStamp();
            keepAlive["version"]   = Version; // Undocumented stuff to send the client version
            keepAlive["plugins"]   = "";

            List <string> redactlist = null;

            redactlist = SensuClientHelper.GetRedactlist((JObject)keepAlive);

            var payload = SensuClientHelper.RedactSensitiveInformaton(keepAlive, redactlist);

            Log.Debug("Publishing keepalive");
            var properties = new BasicProperties
            {
                ContentType  = "application/octet-stream",
                Priority     = 0,
                DeliveryMode = 1
            };

            try
            {
                ch.BasicPublish("", "keepalives", properties, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(payload)));
            }
            catch (Exception)
            {
                Log.Error("Lost MQ connection when trying to publish keepalives!");
            }
        }