Exemple #1
0
		RunningServiceHandle OnStart(CloudService service)
		{
			var process = Process.GetCurrentProcess();
			var handle = new RunningServiceHandle
				{
					Service = service,
					TotalProcessorTime = process.TotalProcessorTime,
					UserProcessorTime = process.UserProcessorTime,
					StartDate = DateTimeOffset.UtcNow
				};

			return handle;
		}
Exemple #2
0
		void OnStop(RunningServiceHandle handle)
		{
			var timestamp = DateTimeOffset.UtcNow;
			var process = Process.GetCurrentProcess();
			var serviceName = handle.Service.Name;
			var totalCpuTime = process.TotalProcessorTime - handle.TotalProcessorTime;
			var userCpuTime = process.UserProcessorTime - handle.UserProcessorTime;
			var absoluteTime = timestamp - handle.StartDate;

			lock (_updatesSync)
			{
				_updates.Add(new ServiceStatisticUpdate
					{
						TimeSegment = TimeSegments.Day(timestamp),
						ServiceName = serviceName,
						TimeStamp = timestamp,
						TotalCpuTime = totalCpuTime,
						UserCpuTime = userCpuTime,
						AbsoluteTime = absoluteTime,
						MaxAbsoluteTime = absoluteTime,
						Count = 1
					});

				_updates.Add(new ServiceStatisticUpdate
					{
						TimeSegment = TimeSegments.Month(timestamp),
						ServiceName = serviceName,
						TimeStamp = timestamp,
						TotalCpuTime = totalCpuTime,
						UserCpuTime = userCpuTime,
						AbsoluteTime = absoluteTime,
						MaxAbsoluteTime = absoluteTime,
						Count = 1
					});
			}
		}