protected virtual void AcceptHeartbeat(MessageEventArgs message) { try { HeartbeatResponse response = message.Data.FromJson <HeartbeatResponse>(); if (response.ResponseStatus == null) { _heartbeatStatus.AddEvent("null"); } else { _heartbeatStatus.AddEvent(response.ResponseStatus.Status); } _acceptHeartbeatLatency.AddValue(DateTimeUtils.CurrentTimeInMilliseconds - _heartbeatAcceptStartTime); if (response.ResponseStatus.IsServiceDown()) { _sessionContext.Markdown(); } if (response.ResponseStatus.IsFail()) { _log.Warn("heartbeat failed: " + response.ResponseStatus.Message); } else if (response.ResponseStatus.isPartialFail()) { _log.Info("heartbeat partial failed: " + response.ResponseStatus.Message); } Register(response.FailedInstances); } catch (Exception e) { _log.Warn("handle heartbeat message failed", e); } }
protected void LogEvent(ResponseStatus status, string service, string operation) { string metricId = _distributionMetricName + "|" + service + "|" + operation; Dictionary <string, string> metadata = new Dictionary <string, string>() { { "metric_name_distribution", _distributionMetricName }, { "service", service }, { "operation", operation } }; IEventMetric metric = _eventMetricManager.GetMetric(metricId, new MetricConfig(metadata)); if (status == null) { metric.AddEvent("null"); } else { metric.AddEvent(status.ErrorCode); } }
private void Metric(string changeType, bool updated, Instance instance) { if (string.IsNullOrWhiteSpace(changeType) || instance == null) { return; } string metricId = "service-discovery." + changeType + "." + updated + "." + instance; Dictionary <string, string> metadata = new Dictionary <string, string>(); metadata["metric_name_distribution"] = _serviceDiscoveryMetricName; metadata["regionId"] = instance.RegionId; metadata["zoneId"] = instance.ZoneId; metadata["serviceId"] = instance.ServiceId; metadata["updated"] = updated ? "true" : "false"; metadata["instanceId"] = instance.InstanceId; IEventMetric metric = _eventMetricManager.GetMetric(metricId, new MetricConfig(metadata)); metric.AddEvent(changeType); }