204 lines
7.4 KiB
Transact-SQL
204 lines
7.4 KiB
Transact-SQL
if (select top 1 0 from sys.databases where name = 'NucelarMonitor') is null create database NucelarMonitor collate Latin1_General_100_CI_AS_SC_UTF8
|
|
go
|
|
use NucelarMonitor
|
|
|
|
if object_id(N'dbo.set_exception', N'P') is not null drop procedure dbo.set_exception
|
|
go
|
|
create procedure dbo.set_exception
|
|
@database varchar(64),
|
|
@procedure varchar(64),
|
|
@message varchar(128),
|
|
@parameters varchar(max) = null
|
|
as begin set nocount on
|
|
|
|
declare @procedure_id integer
|
|
declare @message_id integer
|
|
declare @exception_message varchar(max) = error_message()
|
|
declare @exception_message_id integer
|
|
declare @parameters_id integer
|
|
|
|
execute dbo.get_procedure @database, @procedure, @procedure_id output
|
|
execute dbo.get_big_data @exception_message, @exception_message_id output
|
|
execute dbo.get_big_data @parameters, @parameters_id output
|
|
execute dbo.get_message @message, @message_id output
|
|
|
|
insert into dbo.Exceptions([procedure], [message], [parameters], exception, [status], code) values
|
|
(@procedure_id, @message_id, @parameters_id, @exception_message_id, error_severity(), error_number())
|
|
|
|
end
|
|
go
|
|
|
|
if object_id(N'dbo.set_machine_data', N'P') is not null drop procedure dbo.set_machine_data
|
|
go
|
|
create procedure dbo.set_machine_data
|
|
@key varchar(32),
|
|
@candle_start datetime,
|
|
@candle_end datetime,
|
|
@candle_interations integer,
|
|
@ram_total bigint,
|
|
@ram_in bigint,
|
|
@ram_out bigint,
|
|
@ram_minimum bigint,
|
|
@ram_maximum bigint,
|
|
@ram_average bigint,
|
|
@cpu_in float,
|
|
@cpu_out float,
|
|
@cpu_minimum float,
|
|
@cpu_maximum float,
|
|
@cpu_average float
|
|
as begin set nocount on
|
|
|
|
declare @machine_id integer
|
|
declare @candle_time_id integer
|
|
declare @machine_ram_id integer
|
|
declare @machine_cpu_id integer
|
|
|
|
execute dbo.get_basic_data_ids
|
|
@key,
|
|
@candle_start,
|
|
@candle_end,
|
|
@candle_interations,
|
|
@machine_id output,
|
|
@candle_time_id output
|
|
|
|
insert into dbo.MachineRAM(machine, candle_time, total, [in], [out], minimum, maximum, average) values
|
|
(@machine_id, @candle_time_id, @ram_total, @ram_in, @ram_out, @ram_minimum, @ram_maximum, @ram_average)
|
|
set @machine_ram_id = scope_identity()
|
|
|
|
insert into dbo.MachineCPU(machine, candle_time, [in], [out], minimum, maximum, average) values
|
|
(@machine_id, @candle_time_id, @cpu_in, @cpu_out, @cpu_minimum, @cpu_maximum, @cpu_average)
|
|
set @machine_cpu_id = scope_identity()
|
|
|
|
if (select top 1 id from dbo.MachinePlain where
|
|
date_out is null and
|
|
machine = @machine_id
|
|
) is null
|
|
insert into dbo.MachinePlain([key], machine, candle_time, machine_ram, machine_cpu, ram_total, ram_in, ram_out, ram_minimum, ram_maximum, ram_average, cpu_in, cpu_out, cpu_minimum, cpu_maximum, cpu_average) values
|
|
(@key, @machine_id, @candle_time_id, @machine_ram_id, @machine_cpu_id, @ram_total, @ram_in, @ram_out, @ram_minimum, @ram_maximum, @ram_average, @cpu_in, @cpu_out, @cpu_minimum, @cpu_maximum, @cpu_average)
|
|
else
|
|
update dbo.MachinePlain set
|
|
candle_time = @candle_time_id,
|
|
machine_ram = @machine_ram_id,
|
|
machine_cpu = @machine_cpu_id,
|
|
ram_total = @ram_total,
|
|
ram_in = @ram_in,
|
|
ram_out = @ram_out,
|
|
ram_minimum = @ram_minimum,
|
|
ram_maximum = @ram_maximum,
|
|
ram_average = @ram_average,
|
|
cpu_in = @cpu_in,
|
|
cpu_out = @cpu_out,
|
|
cpu_minimum = @cpu_minimum,
|
|
cpu_maximum = @cpu_maximum,
|
|
cpu_average = @cpu_average
|
|
where
|
|
date_out is null and
|
|
[key] = @key
|
|
|
|
end
|
|
go
|
|
|
|
if object_id(N'dbo.set_machine_interface_data', N'P') is not null drop procedure dbo.set_machine_interface_data
|
|
go
|
|
create procedure dbo.set_machine_interface_data
|
|
@key varchar(32),
|
|
@name varchar(32),
|
|
@is_ipv6 bit,
|
|
@address varchar(45),
|
|
@mask tinyint,
|
|
@mounted bit,
|
|
@id integer output
|
|
as begin set nocount on
|
|
|
|
declare @machine_id integer
|
|
declare @interface_id integer
|
|
declare @plain_id integer
|
|
|
|
execute dbo.get_interface @name, @interface_id output
|
|
execute dbo.get_machine @key, @machine_id output
|
|
set @plain_id = (select top 1 id from dbo.MachinePlain where date_out is null and machine = @machine_id)
|
|
|
|
set @id = (
|
|
select top 1 id from dbo.MachineInterfaces where
|
|
date_out is null and
|
|
machine = @machine_id and
|
|
[interface] = @interface_id
|
|
)
|
|
|
|
if @id is null begin
|
|
insert into dbo.MachineInterfaces(machine, [interface], mounted, is_ipv6, [address], mask) values
|
|
(@machine_id, @interface_id, @mounted, @is_ipv6, @address, @mask)
|
|
set @id = scope_identity()
|
|
insert into dbo.MachineInterfacesPlain(plain, machine, [interface], machine_interface, mounted, is_ipv6, [address], mask) values
|
|
(@plain_id, @machine_id, @interface_id, @id, @mounted, @is_ipv6, @address, @mask)
|
|
end else if (
|
|
select top 1 0 from dbo.MachineInterfaces where
|
|
id = @id and
|
|
mounted = @mounted and
|
|
is_ipv6 = @is_ipv6 and
|
|
[address] = @address and
|
|
mask = @mask
|
|
) is null begin
|
|
insert into dbo.MachineInterfaces(machine, [interface], mounted, is_ipv6, [address], mask) values
|
|
(@machine_id, @interface_id, @mounted, @is_ipv6, @address, @mask)
|
|
set @id = scope_identity()
|
|
update dbo.MachineInterfacesPlain set
|
|
machine_interface = @id,
|
|
mounted = @mounted,
|
|
is_ipv6 = @is_ipv6,
|
|
[address] = @address,
|
|
mask = @mask
|
|
where
|
|
date_out is null and
|
|
plain = @plain_id and
|
|
[interface] = @interface_id
|
|
end
|
|
|
|
end
|
|
go
|
|
|
|
if object_id(N'dbo.set_machine_interface_traffic', N'P') is not null drop procedure dbo.set_machine_interface_traffic
|
|
go
|
|
create procedure dbo.set_machine_interface_traffic
|
|
@id integer,
|
|
@type varchar(32),
|
|
@candle_start datetime,
|
|
@candle_end datetime,
|
|
@candle_interations integer,
|
|
@bytes bigint,
|
|
@packages integer,
|
|
@errors integer
|
|
as begin set nocount on
|
|
|
|
declare @type_id integer
|
|
declare @candle_time_id integer
|
|
declare @plain_id integer
|
|
|
|
execute dbo.get_type @type, @type_id output
|
|
execute dbo.get_candle_time @candle_start, @candle_end, @candle_interations, @candle_time_id output
|
|
set @plain_id = (select top 1 id from dbo.MachineInterfacesPlain where date_out is null and machine_interface = @id)
|
|
|
|
insert into dbo.MachineInterfacesTraffic(machine_interface, [type], candle_time, bytes, packages, errors) values
|
|
(@id, @type_id, @candle_time_id, @bytes, @packages, @errors)
|
|
|
|
if (select top 1 0 from dbo.MachineInterfacesTrafficPlain where
|
|
date_out is null and
|
|
plain = @plain_id and
|
|
[type] = @type_id and
|
|
candle_time = @candle_time_id
|
|
) is null
|
|
insert into dbo.MachineInterfacesTrafficPlain(plain, candle_time, [type], bytes, packages, errors) values
|
|
(@plain_id, @candle_time_id, @type_id, @bytes, @packages, @errors)
|
|
else
|
|
update dbo.MachineInterfacesTrafficPlain set
|
|
bytes = @bytes,
|
|
packages = @packages,
|
|
errors = @errors
|
|
where
|
|
date_out is null and
|
|
plain = @plain_id and
|
|
[type] = @type_id and
|
|
candle_time = @candle_time_id
|
|
|
|
end
|
|
go |