public IEnumerable <QueryResult <T> > QueryAggregated(Action <IQueryBuilder <T> > query = null) { try { using (_metricsReporter.Report($"{_space}.Aggregate")) using (var connection = _connectionProvider.GetOpenConnection()) { return(connection .QueryAggregated <T>(q => { if (query != null) { query(new MoranbernateQueryBuilder <T>(q)); } }) .Select(x => new QueryResult <T> { Item = x.Item, RowCount = x.RowCount }) .ToList()); } } catch (Exception ex) { _perfLogger.Error("Error running aggregated query", ex); throw; } }
public IDbConnection ProvideConnection() { using (_metricsReporter.Report($"Storage.OpenConnection.{_schema}")) { var sqlConnection = new MySqlConnection(_connectionString); sqlConnection.Open(); return(sqlConnection); } }
public bool HandleError(Exception error) { var type = error.GetType(); _reporter.Report(new ExceptionReport() { MetricsReportType = MetricsReportTypes.Exception, ExceptionType = type.FullName, Message = error.Message, StackTrace = error.StackTrace }); return(true); }
public int Count(Action <IQueryBuilder <T> > queryManipulator) { using (_metricsReporter.Report($"{_space}.Count")) using (var conn = _connectionProvider.GetOpenConnection()) { var count = conn.Count <T>(restrictable => { if (queryManipulator != null) { queryManipulator(new MoranbernateRestrictions <T>(restrictable)); } }); return(Convert.ToInt32(count)); } }
public void Start(int timeout = 1000) { Task.Factory.StartNew(async(o) => { while (true) { var currentDateTime = DateTime.Now; _reporter.Report(new ApdexReport() { MetricsReportType = MetricsReportTypes.Apdex, Apdex = GetApdex(currentDateTime, 1, 500) }); await Task.Delay(timeout); } }, TaskCreationOptions.LongRunning, _cancellationTokenSource.Token); }
public void Start(int timeout = 1000) { var cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total"); var virtualMemoryCounter = new PerformanceCounter("Memory", "Available MBytes"); DriveInfo c = new DriveInfo(Path.GetPathRoot(Environment.SystemDirectory)); Task.Factory.StartNew(async(o) => { while (true) { _reporter.Report(new HealthCheckReport() { MetricsReportType = MetricsReportTypes.HealthCheck, CpuRate = cpuCounter.NextValue(), AvailableVirtualMemory = virtualMemoryCounter.NextValue(), AvailablePhysicalMemory = ((double)c.AvailableFreeSpace) / 1000000000 }); await Task.Delay(timeout); } }, TaskCreationOptions.LongRunning, _cancellationTokenSource.Token); }
public void Start(int timeout = 1000) { Task.Factory.StartNew(async(o) => { while (true) { var currentDateTime = DateTime.Now; var rate1m = GetRate(currentDateTime, 1); var rate5m = GetRate(currentDateTime, 5); var rate15m = GetRate(currentDateTime, 15); _reporter.Report(new RatesReport() { MetricsReportType = MetricsReportTypes.Rates, Rate1m = rate1m, Rate5m = rate5m, Rate15m = rate15m }); await Task.Delay(timeout); } }, TaskCreationOptions.LongRunning, _cancellationTokenSource.Token); }
public void AfterInvoke(object correlationState) { _reporter.Report(_callContextMetricsReport); }
public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState) { _stopwatch.Stop(); _paramatersInspectorMetricsReport.ProcessingTime = _stopwatch.ElapsedMilliseconds; _reporter.Report(_paramatersInspectorMetricsReport); }