Monitorando os Contadores do Perfmon, através do Power BI – Parte 3

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