public static void FailedToQueryAllPeople(this MonitoringEvents monitoringEvents, string activity, Exception ex)
        {
            monitoringEvents.Logger.Error(activity, ex);
            var tags = Tags.Failure;

            monitoringEvents.Metrics.IncrementCounter(activity, tags);
        }
        public static void VersionMismatch(this MonitoringEvents monitoringEvents, string activity, Exception ex)
        {
            monitoringEvents.Logger.Error(activity, ex);
            var tags = Tags.Failure;

            monitoringEvents.Metrics.IncrementCounter(activity, tags);
        }
        public static void AbortBecausePersonExists(this MonitoringEvents monitoringEvents, string activity, Exception ex)
        {
            monitoringEvents.Logger.Error(activity, ex);
            var tags = Tags.Failure;

            monitoringEvents.Metrics.IncrementCounter(activity, tags);
        }
        public static void CreatedAdult(this MonitoringEvents monitoringEvents, string activity)
        {
            var tags = Tags.Success
                       .WithTag("as", "adult");

            monitoringEvents.Metrics.IncrementCounter(activity, tags);
        }
Ejemplo n.º 5
0
        public long RecordEvent(MonitoringEventsDto dto)
        {
            var entity = new MonitoringEvents();

            entity.InjectFrom(dto);

            if (entity.EventEnd != DateTime.MinValue)
            {
                Logger.Trace("Removing existing Event record");

                var all = Repo.GetAll();
                Logger.Trace("We have all events count: {0}", all.Count());

                var startNotification = all.FirstOrDefault(x => x.EventStart == entity.EventStart);
                if (startNotification != null)
                {
                    Logger.Trace("We have found the old event to delete id: {0}", startNotification.Id);

                    Repo.Delete(startNotification);
                }
            }

            Logger.Trace("Inserting new event: Name: {0} | Type: {1}", entity.EventName, entity.EventType);
            return(Repo.Insert(entity));
        }
        public static void FailedToCreateAdult(this MonitoringEvents monitoringEvents, string activity, Exception ex)
        {
            monitoringEvents.Logger.Error(activity, ex);
            var tags = Tags.Failure
                       .WithTag("as", "adult");

            monitoringEvents.Metrics.IncrementCounter(activity, tags);
        }
        public static void SkippedCreatePersonAsAdult(this MonitoringEvents monitoringEvents, string activity)
        {
            var tags = Tags.Failure
                       .WithTag(failReason(activity), "dependency_unavailable")
                       .WithTag("as", "adult");

            monitoringEvents.Metrics.IncrementCounter(activity, tags);
        }
Ejemplo n.º 8
0
        private void ConfigureLoggingAndMetrics()
        {
            ConfigureSerilog();
            ConfigureDatadog();

            _monitoringEvents = new MonitoringEvents(_logger, new DatadogMetrics());

            _monitoringEvents.ApplicationStart();
        }
Ejemplo n.º 9
0
        public static void HttpRequestStarted(this MonitoringEvents monitoringEvents, HttpContext context)
        {
            monitoringEvents.LogContext.PushProperties(
                new LogContextProperty("CorrelationId", CorrelationContext.CorrelationId),
                new LogContextProperty("IncomingAttemptId", CorrelationContext.AttemptId),
                new LogContextProperty("HttpMethod", context.Request.Method),
                new LogContextProperty("HttpUri", context.Request.Path + context.Request.QueryString),
                new LogContextProperty("HttpRemoteHost", context.Connection.RemoteIpAddress));

            monitoringEvents.Logger.Information("HTTP request: {HttpMethod} {HttpUri} from {HttpRemoteHost}",
                                                context.Request.Method,
                                                context.Request.Path + context.Request.QueryString,
                                                context.Connection.RemoteIpAddress);
        }
Ejemplo n.º 10
0
 public static void HttpRequestCompleted(this MonitoringEvents monitoringEvents,
                                         HttpContext context,
                                         TimeSpan elapsedTime)
 {
     monitoringEvents.Logger.Information("HTTP request complete: {HttpStatusCode} {HttpMimeType} after " +
                                         "{RequestElapsedTime} ms",
                                         context.Response.StatusCode,
                                         context.Response.ContentType,
                                         elapsedTime.TotalMilliseconds);
     monitoringEvents.Metrics.Timer("httprequest.elapsed",
                                    elapsedTime,
                                    "method:" + context.Request.Method,
                                    "status:" + context.Response.StatusCode);
 }
Ejemplo n.º 11
0
        public static void ExecutedOracleQuery(this MonitoringEvents monitoringEvents, string queryType,
                                               TimeSpan?duration)
        {
            monitoringEvents.Metrics.IncrementCounter("persistence.oracle.execute_query", "success:true",
                                                      "type:" + queryType);

            if (duration.HasValue)
            {
                monitoringEvents.Metrics.Timer(
                    "persistence.oracle.execute_query.duration",
                    duration.Value,
                    "success:true",
                    "type:" + queryType
                    );
            }
        }
Ejemplo n.º 12
0
        public static void ErrorExecutingOracleQuery(this MonitoringEvents monitoringEvents, Exception ex,
                                                     string queryType, TimeSpan?duration)
        {
            monitoringEvents.Logger.Error(ex, "Error executing Oracle query");
            monitoringEvents.Metrics.IncrementCounter("persistence.oracle.execute_query", "success:false",
                                                      "type:" + queryType);

            if (duration.HasValue)
            {
                monitoringEvents.Metrics.Timer(
                    "persistence.oracle.execute_query.duration",
                    duration.Value,
                    "success:false",
                    "type:" + queryType
                    );
            }
        }
 public PersistenceAdapter(PersistenceAdapterSettings settings, MonitoringEvents monitoringEvents)
 {
     _settings        = settings ?? throw new ArgumentNullException(nameof(settings));
     _monitoringEvent = monitoringEvents;
 }
Ejemplo n.º 14
0
 public static void LogProcessSubstep(this MonitoringEvents MonitoringEvents, string processName,
                                      string processId, string newState, string substepName)
 {
     MonitoringEvents.Logger.Information("Process [{name:id}] has entered state {state} for substep: {substep}.",
                                         processName, processId, newState, substepName);
 }
Ejemplo n.º 15
0
 public static void UnhandledException(this MonitoringEvents monitoringEvents, Exception exception)
 {
     monitoringEvents.Logger.Error(exception, "Unhandled exception in application.");
 }
Ejemplo n.º 16
0
 public static void UnexpectedExceptionReturnedByUseCase(this MonitoringEvents monitoringEvents,
                                                         Exception ex)
 {
     monitoringEvents.Logger.Warning(ex, "Unexpected exception returned by use case.");
 }
 public ExceptionHandlingMiddleware(MonitoringEvents monitoringEvents, bool respondOnError = false)
 {
     _monitoringEvents = monitoringEvents;
     _respondOnError   = respondOnError;
 }
Ejemplo n.º 18
0
 public static void ApplicationStart(this MonitoringEvents monitoringEvents)
 {
     monitoringEvents.Logger.Information("Starting Structured Logging Workshop, version {Version}",
                                         Reflect.OnTypes.GetAssembly(typeof(MonitoringEventsExtensions)).GetName().Version);
 }
Ejemplo n.º 19
0
 public static void ErrorTestingOracleConnectivity(this MonitoringEvents monitoringEvents, Exception ex)
 {
     monitoringEvents.Logger.Error(ex, "Error testing Oracle connectivity");
 }