No post Monitorando os Contadores do Perfmon, através do Power BI – Parte 2, foi explicado como fazer a importação dos dados coletados pelos contadores do perfmon, através do Relog, para o SQL Server.
Nesse post, vamos pegar os dados contidos nas tabelas: CounterData e CounterDetails, que sejam relevantes para o nosso cenário (Quais dados pegar, fica a critério de cada um) e inseri-los em uma única tabela (que será criada).
Algumas etapas a serem feitas:
- Criando da Tabela Manipula_Cont
CREATE TABLE [dbo].[Manipula_Cont] ( [ID] [int] IDENTITY (1, 1) NOT NULL, [Data] [datetime] NULL, [Servidor] [varchar](35) NOT NULL, [CouterName] [varchar](35) NOT NULL, [Media] [float] NOT NULL, [Total] [float] NOT NULL, PRIMARY KEY CLUSTERED ( [ID] ASC ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
- Visualização da tabela acima criada
SELECT * FROM Manipula_Cont
- Inserção dos dados contindos nas tabelas CounterData e CounterDetails na tabela na Manipula_Cont.
INSERT Manipula_Cont(Servidor,CouterName,Data,Media,Total) SELECT MachineName, CounterName, DATEADD(MINUTE, CAST(SUBSTRING(CounterDateTime, 12, 2) AS INT) * 60 + CAST(SUBSTRING(CounterDateTime, 15, 2) AS INT), CAST(CAST(CONVERT(VARCHAR(10), CounterDateTime) AS DATE) AS DATETIME)) AS [Data], (SUM(CounterValue)/2) Media, SUM(CounterValue) Total FROM CounterData C1 JOIN dbo.CounterDetails C2 on C2.CounterID = C1.CounterID GROUP BY DATEADD(MINUTE, CAST(SUBSTRING(CounterDateTime, 12, 2) AS INT) * 60 + CAST(SUBSTRING(CounterDateTime, 15, 2) AS INT), CAST(CAST(CONVERT(VARCHAR(10), CounterDateTime) AS DATE) AS DATETIME)), CounterName, MachineName,ObjectName ORDER BY 1 ASC
- Visualização dos dados Tabela Manipula_Cont
SELECT * FROM Manipula_Cont
Nessa etapa, vamos separar os contadores(os que foram configurados) por categorias, e inseri-los em uma nova tabela, que será criada abaixo: CREATE TABLE Class_Mani_Cont( CouterType varchar(50), CouterName varchar(50), )
Para essa série de posts, foram configuradas no perfmon as categorias abaixo:
- System
- Processor
- Network
- Memory
- LogicalDisk
Inserção das Categorias e os Contadores na Tabela Class_Mani_Cont
- Categoria System
INSERT INTO Class_Mani_Cont VALUES (‘System’,’System Calls/sec’), (‘System’,’Exception Dispatches/sec’), (‘System’,’Processor Queue Length’), (‘System’,’Context Switches/sec’)
- Categoria Processor
INSERT INTO Class_Mani_Cont VALUES (‘Processor’,’% Processor Time’), (‘Processor’,’% Privileged Time’)
- Categoria Network Interface
INSERT INTO Class_Mani_Cont VALUES (‘Network Interface’,’Bytes Received/sec’), (‘Network Interface’,’Bytes Sent/sec’), (‘Network Interface’,’Bytes Total/sec’)
- Categoria Memory
INSERT INTO Class_Mani_Cont VALUES (‘Memory’,’Pool Paged Bytes’), (‘Memory’,’Pool Nonpaged Bytes’), (‘Memory’,’% Committed Bytes In Use’), (‘Memory’,’% Available MBytes’), (‘Memory’,’Free System Page Table Entries’), (‘Memory’,’Committed Bytes’)
- Categoria LogicalDisk
INSERT INTO Class_Mani_Cont VALUES (‘LogicalDisk’,’Disk Reads/sec’), (‘LogicalDisk’,’Disk Read Bytes/sec’), (‘LogicalDisk’,’Avg. Disk sec/Read’), (‘LogicalDisk’,’Disk Writes/sec’), (‘LogicalDisk’,’Current Disk Queue Length’), (‘LogicalDisk’,’Avg. Disk sec/Write’), (‘LogicalDisk’,’Disk Bytes/sec’), (‘LogicalDisk’,’Disk Write Bytes/sec’), (‘LogicalDisk’,’Disk Transfers/sec’), (‘LogicalDisk’,’Avg. Disk sec/Transfer’)
- Visualização dos dados inseridos na Tabela Class_Mani_Cont
SELECT * FROM Class_Mani_Cont
Esse post, explicou como unir os dados relevantes das duas tabelas(CounterData e CounterDetails) em uma única tabela(Manipula_Cont), como também a separação dos contadores por categoria na tabela ( Tabela Class_Mani_Cont).
No próximo post, vamos criar no Power BI o dashboard para o monitorando dos contadores do Perfmon.
Obs: Deixando bem claro que existe várias formas de fazer tanto a importação dos dados para o sql server, como também o tratamento dos dados no sql server ou no Power BI.
Nessa série de post optei por fazer a importação dos dados via relog e o tratamento dos dados no sql server.
Monitorando os Contadores do Perfmon, através do Power BI – Parte 4 – Final, em Breve!
Script disponível no GitHub